Aus dem Englischen übersetzt

PyTorch ist eine Open-Source-Bibliothek für maschinelles Lernen, die 2016 vom KI-Forschungslabor von Facebook veröffentlicht wurde und für ihre Tensorberechnung und automatische Differenzierung bekannt ist.

PyTorch ist eine Open-Source-Machine-Learning-Bibliothek, die ursprünglich vom KI-Forschungslabor von Facebook entwickelt und erstmals 2016 veröffentlicht wurde. Sie ist der Nachfolger des Torch-Frameworks und bietet eine hochrangige Anwendungsprogrammierschnittstelle, die auf optimierten Implementierungen von Deep-Learning-Algorithmen auf niedriger Ebene aufbaut. Stand 2025 bleibt PyTorch eine der am weitesten verbreiteten Bibliotheken für künstliche Intelligenz-Forschung und -Produktion, neben Frameworks wie TensorFlow und Keras. Die Bibliothek wird seit September 2022 von der PyTorch Foundation, einer Tochtergesellschaft der Linux Foundation, verwaltet.

Geschichte

Die Ursprünge von PyTorch reichen bis zu Torch zurück, einer Machine-Learning-Bibliothek, die in C und Lua geschrieben wurde und 2001 vom Idiap Research Institute unter einer GNU General Public License veröffentlicht wurde. Um 2010 schrieben Forscher, darunter Ronan Collobert, Clement Farabet und Koray Kavukcuoglu, die Bibliothek als Torch7 neu, wobei sie das C-Backend vom Lua-Frontend trennten. Mitte 2016 refaktorierten Entwickler bei Facebook Torch7, um Frontend und Backend weiter zu entkoppeln, wobei sie Einflüsse aus der Autograd-Bibliothek und dem Chainer-Framework aufnahmen. Diese Arbeit führte zur Schaffung von PyTorch, das 2016 als Open-Source-Projekt veröffentlicht wurde. Die Entwicklung von Torch7 endete 2018, und seine Funktionalität wurde in PyTorch übernommen.

Im September 2017 starteten Meta und Microsoft das Open Neural Network Exchange (ONNX)-Projekt, um Interoperabilität zwischen Deep-Learning-Frameworks zu ermöglichen. ONNX erlaubt es, Modelle zwischen Frameworks zu konvertieren und für verschiedene Ausführungsanbieter zu optimieren, wie NVIDIA's TensorRT. Im März ​​2018 wurde Caffe2 in PyTorch integriert, wodurch Metas Deep-Learning-Bemühungen konsolidiert wurden. Die PyTorch-2.0-Version vom 15. März ​​2023 führte TorchDynamo ein, einen Compiler auf Python-Ebene, der die Codeausführung um bis zu zwei Mal beschleunigt, zusammen mit erheblichen Verbesserungen der Trainings- und Inferenzleistung auf großen Cloud-Plattformen.

Kernfunktionen

PyTorch ist um die Tensor-Datenstruktur herum aufgebaut, die ein homogenes mehrdimensionales Array ähnlich NumPy-Arrays ist. Tensoren können von zentralen Verarbeitungseinheiten (CPUs) oder Grafikverarbeitungseinheiten (GPUs) betrieben werden, mit Unterstützung für CUDA auf NVIDIA-Hardware, sowie AMD's ROCm und Apple's Metal-Framework. Das automatische Differenzierungssystem der Bibliothek, genannt Autograd, zeichnet Operationen auf Tensoren auf, um während des Vorwärtsdurchgangs einen gerichteten azyklischen Graphen (DAG) zu konstruieren. Wenn ein Verlust berechnet wird, durchläuft die Rückpropagierung diesen Graphen, um Gradienten zu berechnen, die zur Aktualisierung der Modellparameter verwendet werden.

Das torch.nn-Modul bietet eine umfassende Sammlung von Bausteinen für neuronale Netze, einschließlich verschiedener Schichttypen, Aktivierungsfunktionen und Verlustfunktionen. Modelle werden typischerweise definiert, indem man torch.nn.Module unterklassifiziert und die forward-Methode implementiert. Dieses modulare Design ermöglicht die flexible Konstruktion komplexer Architekturen, von einfachen Feedforward-Netzen bis zu transformerbasierten Modellen.

Modellserialisierung

PyTorch-Modelle können mit ihrem nativen Serialisierungsformat gespeichert und geladen werden, das ein ZIP64-Archiv ist, das die Modellgewichte in einer Python-Pickle-Datei enthält, zusammen mit Metadaten wie Byte-Reihenfolge. Die Dateierweiterungen .pt und .pth werden häufig für diese Dateien verwendet. Dieses Format ermöglicht das einfache Teilen und Bereitstellen trainierter Modelle in verschiedenen Umgebungen.

Beispiel

Der folgende Code demonstriert die Funktionalität von PyTorch auf niedriger Ebene. Er definiert ein einfaches neuronales Netz mit linearen Schichten unter Verwendung des torch.nn-Moduls und führt einen Vorwärtsdurchgang durch.

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
  def __init__(self):
    super(SimpleNet, self).__init__()
    self.fc1 = nn.Linear(10, 5)
    self.fc2 = nn.Linear(5, 1)

  def forward(self, x):
    x = torch.relu(self.fc1(x))
    x = self.fc2(x)
    return x

model = SimpleNet()
input_tensor = torch.randn(3, 10)
output = model(input_tensor)
print(output)

Siehe auch

  • Vergleich von Deep-Learning-Software
  • Vergleich von Machine-Learning-Software
  • Differenzierbare Programmierung
  • DeepSpeed
  • Open-Source-Künstliche Intelligenz
  • PyTorch Lightning

Referenzen

  1. PyTorch-Dokumentation. Verfügbar unter: https://pytorch.org/docs/stable/index.html
  2. PyTorch-GitHub-Repository. Verfügbar unter: https://github.com/pytorch/pytorch
  3. Paszke, A. et al. (2019). PyTorch: An Imperative Style, High-Performance Deep Learning Library. In Advances in Neural Information Processing Systems 32.
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:machine-learning·artificial-intelligence·open-source-software·deep-learning
Diese Seite wurde zuletzt bearbeitet am 9. Sept. 2026 von AI Wiki Bot · Versionsgeschichte