Heim Backend-Entwicklung Python-Tutorial So verwenden Sie PyTorch für das Training neuronaler Netzwerke

So verwenden Sie PyTorch für das Training neuronaler Netzwerke

Aug 02, 2023 pm 05:10 PM
神经网络 训练 pytorch

So verwenden Sie PyTorch für das Training neuronaler Netzwerke

Einführung:
PyTorch ist ein Open-Source-Framework für maschinelles Lernen, das auf Python basiert. Seine Flexibilität und Einfachheit machen es zur ersten Wahl vieler Forscher und Ingenieure. In diesem Artikel erfahren Sie, wie Sie PyTorch für das Training neuronaler Netzwerke verwenden, und stellen entsprechende Codebeispiele bereit.

1. PyTorch installieren
Bevor Sie beginnen, müssen Sie zuerst PyTorch installieren. Sie können mithilfe der Installationsanleitung auf der offiziellen Website (https://pytorch.org/) die für Ihr Betriebssystem und Ihre Hardware geeignete Version zur Installation auswählen. Nach der Installation können Sie die PyTorch-Bibliothek in Python importieren und mit dem Schreiben von Code beginnen.

2. Erstellen Sie ein neuronales Netzwerkmodell
Bevor Sie PyTorch zum Trainieren eines neuronalen Netzwerks verwenden, müssen Sie zunächst ein geeignetes Modell erstellen. PyTorch stellt eine Klasse namens torch.nn.Module bereit, die Sie erben können, um Ihr eigenes neuronales Netzwerkmodell zu definieren. torch.nn.Module的类,您可以通过继承该类来定义自己的神经网络模型。

下面是一个简单的例子,展示了如何使用PyTorch构建一个包含两个全连接层的神经网络模型:

import torch
import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(in_features=784, out_features=256)
        self.fc2 = nn.Linear(in_features=256, out_features=10)
    
    def forward(self, x):
        x = x.view(x.size(0), -1)
        x = self.fc1(x)
        x = torch.relu(x)
        x = self.fc2(x)
        return x

net = Net()
Nach dem Login kopieren

在上面的代码中,我们首先定义了一个名为Net的类,并继承了torch.nn.Module类。在__init__方法中,我们定义了两个全连接层fc1fc2。然后,我们通过forward方法定义了数据在模型中前向传播的过程。最后,我们创建了一个Net的实例。

三、定义损失函数和优化器
在进行训练之前,我们需要定义损失函数和优化器。PyTorch提供了丰富的损失函数和优化器的选择,可以根据具体情况进行选择。

下面是一个示例,展示了如何定义一个使用交叉熵损失函数和随机梯度下降优化器的训练过程:

loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01)
Nach dem Login kopieren

在上面的代码中,我们将交叉熵损失函数和随机梯度下降优化器分别赋值给了loss_fnoptimizer变量。net.parameters()表示我们要优化神经网络模型中的所有可学习参数,lr参数表示学习率。

四、准备数据集
在进行神经网络训练之前,我们需要准备好训练数据集和测试数据集。PyTorch提供了一些实用的工具类,可以帮助我们加载和预处理数据集。

下面是一个示例,展示了如何加载MNIST手写数字数据集并进行预处理:

import torchvision
import torchvision.transforms as transforms

transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,)),
])

train_set = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_set, batch_size=32, shuffle=True)

test_set = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
test_loader = torch.utils.data.DataLoader(test_set, batch_size=32, shuffle=False)
Nach dem Login kopieren

在上面的代码中,我们首先定义了一个transform变量,用于对数据进行预处理。然后,我们使用torchvision.datasets.MNIST类加载MNIST数据集,并使用train=Truetrain=False参数指定了训练数据集和测试数据集。最后,我们使用torch.utils.data.DataLoader类将数据集转换成一个可以迭代的数据加载器。

五、开始训练
准备好数据集后,我们就可以开始进行神经网络的训练。在一个训练循环中,我们需要依次完成以下步骤:将输入数据输入到模型中,计算损失函数,反向传播更新梯度,优化模型。

下面是一个示例,展示了如何使用PyTorch进行神经网络训练:

for epoch in range(epochs):
    running_loss = 0.0
    for i, data in enumerate(train_loader):
        inputs, labels = data
        
        optimizer.zero_grad()
        
        outputs = net(inputs)
        loss = loss_fn(outputs, labels)
        
        loss.backward()
        optimizer.step()
        
        running_loss += loss.item()
        
        if (i+1) % 100 == 0:
            print('[%d, %5d] loss: %.3f' % (epoch+1, i+1, running_loss/100))
            running_loss = 0.0
Nach dem Login kopieren

在上面的代码中,我们首先使用enumerate函数遍历了训练数据加载器,得到了输入数据和标签。然后,我们将梯度清零,将输入数据输入到模型中,计算预测结果和损失函数。接着,我们通过backward方法计算梯度,再通过step方法更新模型参数。最后,我们累加损失,并根据需要进行打印。

六、测试模型
训练完成后,我们还需要测试模型的性能。我们可以通过计算模型在测试数据集上的准确率来评估模型的性能。

下面是一个示例,展示了如何使用PyTorch测试模型的准确率:

correct = 0
total = 0

with torch.no_grad():
    for data in test_loader:
        inputs, labels = data
        outputs = net(inputs)
        _, predicted = torch.max(outputs.data, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

accuracy = 100 * correct / total
print('Accuracy: %.2f %%' % accuracy)
Nach dem Login kopieren

在上面的代码中,我们首先定义了两个变量correcttotal,用于计算正确分类的样本和总样本数。接着,我们使用torch.no_grad()

Das Folgende ist ein einfaches Beispiel, das zeigt, wie man mit PyTorch ein neuronales Netzwerkmodell mit zwei vollständig verbundenen Schichten erstellt:

rrreee
Im obigen Code definieren wir zunächst eine Klasse mit dem Namen Net und erben von torch.nn. Modul-Klasse. In der Methode __init__ definieren wir zwei vollständig verbundene Schichten fc1 und fc2. Anschließend definieren wir den Prozess der Vorwärtsweitergabe von Daten im Modell über die Methode forward. Schließlich erstellen wir eine Instanz von Net.

3. Definieren Sie die Verlustfunktion und den Optimierer

Vor dem Training müssen wir die Verlustfunktion und den Optimierer definieren. PyTorch bietet eine umfangreiche Auswahl an Verlustfunktionen und Optimierern, die je nach spezifischen Umständen ausgewählt werden können.
  1. Hier ist ein Beispiel, das zeigt, wie ein Trainingsprozess mithilfe der Kreuzentropieverlustfunktion und des stochastischen Gradientenabstiegsoptimierers definiert wird:
  2. rrreee
  3. Im obigen Code weisen wir die Kreuzentropieverlustfunktion und den stochastischen Gradientenabstiegsoptimierer zu Separat werden die Variablen loss_fn und optimizer angegeben. net.parameters() gibt an, dass wir alle lernbaren Parameter im neuronalen Netzwerkmodell optimieren möchten, und der Parameter lr gibt die Lernrate an.
4. Bereiten Sie den Datensatz vor🎜Bevor wir das neuronale Netzwerk trainieren, müssen wir den Trainingsdatensatz und den Testdatensatz vorbereiten. PyTorch bietet einige praktische Toolklassen, die uns beim Laden und Vorverarbeiten von Datensätzen helfen können. 🎜🎜Hier ist ein Beispiel, das zeigt, wie der MNIST-Datensatz handgeschriebener Ziffern geladen und vorverarbeitet wird: 🎜rrreee🎜Im obigen Code definieren wir zunächst eine transform-Variable, um die Datenvorverarbeitung zu transformieren. Anschließend haben wir den MNIST-Datensatz mithilfe der Klasse torchvision.datasets.MNIST geladen und die Trainingsdaten mithilfe der Parameter train=True und train=False angegeben Datensatz festlegen und testen. Schließlich verwenden wir die Klasse torch.utils.data.DataLoader, um den Datensatz in einen iterierbaren Datenlader zu konvertieren. 🎜🎜5. Beginnen Sie mit dem Training🎜Nachdem wir den Datensatz vorbereitet haben, können wir mit dem Training des neuronalen Netzwerks beginnen. In einer Trainingsschleife müssen wir die folgenden Schritte nacheinander ausführen: Eingabedaten in das Modell eingeben, Verlustfunktion berechnen, den aktualisierten Gradienten rückwärts verbreiten und das Modell optimieren. 🎜🎜Hier ist ein Beispiel, das zeigt, wie PyTorch für das Training neuronaler Netzwerke verwendet wird: 🎜rrreee🎜Im obigen Code durchlaufen wir zunächst den Trainingsdatenlader mit der Funktion enumerate, um die Eingabedaten und die Beschriftung zu erhalten. Anschließend setzen wir die Gradienten auf Null, geben die Eingabedaten in das Modell ein und berechnen die Vorhersagen und die Verlustfunktion. Als nächstes berechnen wir den Gradienten mit der Methode backward und aktualisieren dann die Modellparameter mit der Methode step. Schließlich akkumulieren wir die Verluste und drucken sie nach Bedarf aus. 🎜🎜 6. Testen Sie das Modell 🎜Nachdem das Training abgeschlossen ist, müssen wir noch die Leistung des Modells testen. Wir können die Leistung des Modells bewerten, indem wir seine Genauigkeit anhand des Testdatensatzes berechnen. 🎜🎜Hier ist ein Beispiel, das zeigt, wie man die Genauigkeit eines Modells mit PyTorch testet: 🎜rrreee🎜Im obigen Code definieren wir zunächst zwei Variablen correct und total, used um die Anzahl der korrekt klassifizierten Proben und die Gesamtzahl der Proben zu berechnen. Als Nächstes verwenden wir den Kontextmanager torch.no_grad(), um Gradientenberechnungen zu deaktivieren und so den Speicherverbrauch zu reduzieren. Anschließend berechnen wir nacheinander die Vorhersageergebnisse, aktualisieren die Anzahl der korrekt klassifizierten Stichproben und die Gesamtzahl der Stichproben. Abschließend wird die Genauigkeit anhand der Anzahl der korrekt klassifizierten Proben und der Gesamtzahl der gedruckten Proben berechnet. 🎜🎜Zusammenfassung: 🎜Durch die Einleitung dieses Artikels haben Sie die grundlegenden Schritte zur Verwendung von PyTorch für das Training neuronaler Netzwerke verstanden und gelernt, wie Sie ein neuronales Netzwerkmodell erstellen, Verlustfunktionen und Optimierer definieren, Datensätze vorbereiten und mit dem Training beginnen und Testen des Modells. Ich hoffe, dieser Artikel kann Ihnen bei Ihrer Arbeit und Ihrem Studium zur Verwendung von PyTorch für das Training neuronaler Netze hilfreich sein. 🎜🎜Referenzen: 🎜🎜🎜Offizielle PyTorch-Website: https://pytorch.org/🎜🎜PyTorch-Dokumentation: https://pytorch.org/docs/stable/index.html🎜🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PyTorch für das Training neuronaler Netzwerke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Open Source! Jenseits von ZoeDepth! DepthFM: Schnelle und genaue monokulare Tiefenschätzung! Open Source! Jenseits von ZoeDepth! DepthFM: Schnelle und genaue monokulare Tiefenschätzung! Apr 03, 2024 pm 12:04 PM

0.Was bewirkt dieser Artikel? Wir schlagen DepthFM vor: ein vielseitiges und schnelles generatives monokulares Tiefenschätzungsmodell auf dem neuesten Stand der Technik. Zusätzlich zu herkömmlichen Tiefenschätzungsaufgaben demonstriert DepthFM auch hochmoderne Fähigkeiten bei nachgelagerten Aufgaben wie dem Tiefen-Inpainting. DepthFM ist effizient und kann Tiefenkarten innerhalb weniger Inferenzschritte synthetisieren. Lassen Sie uns diese Arbeit gemeinsam lesen ~ 1. Titel der Papierinformationen: DepthFM: FastMonocularDepthEstimationwithFlowMatching Autor: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Die perfekte Kombination aus PyCharm und PyTorch: detaillierte Installations- und Konfigurationsschritte Die perfekte Kombination aus PyCharm und PyTorch: detaillierte Installations- und Konfigurationsschritte Feb 21, 2024 pm 12:00 PM

PyCharm ist eine leistungsstarke integrierte Entwicklungsumgebung (IDE) und PyTorch ist ein beliebtes Open-Source-Framework im Bereich Deep Learning. Im Bereich maschinelles Lernen und Deep Learning kann die Verwendung von PyCharm und PyTorch für die Entwicklung die Entwicklungseffizienz und Codequalität erheblich verbessern. In diesem Artikel wird detailliert beschrieben, wie PyTorch in PyCharm installiert und konfiguriert wird, und es werden spezifische Codebeispiele angehängt, um den Lesern zu helfen, die leistungsstarken Funktionen dieser beiden besser zu nutzen. Schritt 1: Installieren Sie PyCharm und Python

YOLO ist unsterblich! YOLOv9 wird veröffentlicht: Leistung und Geschwindigkeit SOTA~ YOLO ist unsterblich! YOLOv9 wird veröffentlicht: Leistung und Geschwindigkeit SOTA~ Feb 26, 2024 am 11:31 AM

Heutige Deep-Learning-Methoden konzentrieren sich darauf, die am besten geeignete Zielfunktion zu entwerfen, damit die Vorhersageergebnisse des Modells der tatsächlichen Situation am nächsten kommen. Gleichzeitig muss eine geeignete Architektur entworfen werden, um ausreichend Informationen für die Vorhersage zu erhalten. Bestehende Methoden ignorieren die Tatsache, dass bei der schichtweisen Merkmalsextraktion und räumlichen Transformation der Eingabedaten eine große Menge an Informationen verloren geht. Dieser Artikel befasst sich mit wichtigen Themen bei der Datenübertragung über tiefe Netzwerke, nämlich Informationsengpässen und umkehrbaren Funktionen. Darauf aufbauend wird das Konzept der programmierbaren Gradienteninformation (PGI) vorgeschlagen, um die verschiedenen Änderungen zu bewältigen, die tiefe Netzwerke zur Erreichung mehrerer Ziele erfordern. PGI kann vollständige Eingabeinformationen für die Zielaufgabe zur Berechnung der Zielfunktion bereitstellen und so zuverlässige Gradienteninformationen zur Aktualisierung der Netzwerkgewichte erhalten. Darüber hinaus wird ein neues, leichtgewichtiges Netzwerk-Framework entworfen

Hallo, elektrischer Atlas! Der Boston Dynamics-Roboter erwacht wieder zum Leben, seltsame 180-Grad-Bewegungen machen Musk Angst Hallo, elektrischer Atlas! Der Boston Dynamics-Roboter erwacht wieder zum Leben, seltsame 180-Grad-Bewegungen machen Musk Angst Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas tritt offiziell in die Ära der Elektroroboter ein! Gestern hat sich der hydraulische Atlas einfach „unter Tränen“ von der Bühne der Geschichte zurückgezogen. Heute gab Boston Dynamics bekannt, dass der elektrische Atlas im Einsatz ist. Es scheint, dass Boston Dynamics im Bereich kommerzieller humanoider Roboter entschlossen ist, mit Tesla zu konkurrieren. Nach der Veröffentlichung des neuen Videos wurde es innerhalb von nur zehn Stunden bereits von mehr als einer Million Menschen angesehen. Die alten Leute gehen und neue Rollen entstehen. Das ist eine historische Notwendigkeit. Es besteht kein Zweifel, dass dieses Jahr das explosive Jahr der humanoiden Roboter ist. Netizens kommentierten: Die Weiterentwicklung der Roboter hat dazu geführt, dass die diesjährige Eröffnungsfeier wie Menschen aussieht, und der Freiheitsgrad ist weitaus größer als der von Menschen. Aber ist das wirklich kein Horrorfilm? Zu Beginn des Videos liegt Atlas ruhig auf dem Boden, scheinbar auf dem Rücken. Was folgt, ist atemberaubend

Einführung in fünf Stichprobenmethoden bei Aufgaben zur Generierung natürlicher Sprache und bei der Implementierung von Pytorch-Code Einführung in fünf Stichprobenmethoden bei Aufgaben zur Generierung natürlicher Sprache und bei der Implementierung von Pytorch-Code Feb 20, 2024 am 08:50 AM

Bei Aufgaben zur Generierung natürlicher Sprache ist die Stichprobenmethode eine Technik, um eine Textausgabe aus einem generativen Modell zu erhalten. In diesem Artikel werden fünf gängige Methoden erläutert und mit PyTorch implementiert. 1. GreedyDecoding Bei der Greedy-Decodierung sagt das generative Modell die Wörter der Ausgabesequenz basierend auf der Eingabesequenz Zeit Schritt für Zeit voraus. In jedem Zeitschritt berechnet das Modell die bedingte Wahrscheinlichkeitsverteilung jedes Wortes und wählt dann das Wort mit der höchsten bedingten Wahrscheinlichkeit als Ausgabe des aktuellen Zeitschritts aus. Dieses Wort wird zur Eingabe für den nächsten Zeitschritt und der Generierungsprozess wird fortgesetzt, bis eine Abschlussbedingung erfüllt ist, beispielsweise eine Sequenz mit einer bestimmten Länge oder eine spezielle Endmarkierung. Das Merkmal von GreedyDecoding besteht darin, dass die aktuelle bedingte Wahrscheinlichkeit jedes Mal die beste ist

Tutorial zur Installation von PyCharm mit PyTorch Tutorial zur Installation von PyCharm mit PyTorch Feb 24, 2024 am 10:09 AM

Als leistungsstarkes Deep-Learning-Framework wird PyTorch häufig in verschiedenen maschinellen Lernprojekten eingesetzt. Als leistungsstarke integrierte Python-Entwicklungsumgebung kann PyCharm auch bei der Umsetzung von Deep-Learning-Aufgaben eine gute Unterstützung bieten. In diesem Artikel wird die Installation von PyTorch in PyCharm ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern den schnellen Einstieg in die Verwendung von PyTorch für Deep-Learning-Aufgaben zu erleichtern. Schritt 1: Installieren Sie PyCharm. Zuerst müssen wir sicherstellen, dass wir es haben

Die Kuaishou-Version von Sora „Ke Ling' steht zum Testen offen: Sie generiert über 120 Sekunden Videos, versteht die Physik besser und kann komplexe Bewegungen genau modellieren Die Kuaishou-Version von Sora „Ke Ling' steht zum Testen offen: Sie generiert über 120 Sekunden Videos, versteht die Physik besser und kann komplexe Bewegungen genau modellieren Jun 11, 2024 am 09:51 AM

Was? Wird Zootopia durch heimische KI in die Realität umgesetzt? Zusammen mit dem Video wird ein neues groß angelegtes inländisches Videogenerationsmodell namens „Keling“ vorgestellt. Sora geht einen ähnlichen technischen Weg und kombiniert eine Reihe selbst entwickelter technologischer Innovationen, um Videos zu produzieren, die nicht nur große und vernünftige Bewegungen aufweisen, sondern auch die Eigenschaften der physischen Welt simulieren und über starke konzeptionelle Kombinationsfähigkeiten und Vorstellungskraft verfügen. Den Daten zufolge unterstützt Keling die Erstellung ultralanger Videos von bis zu 2 Minuten mit 30 Bildern pro Sekunde, mit Auflösungen von bis zu 1080p und unterstützt mehrere Seitenverhältnisse. Ein weiterer wichtiger Punkt ist, dass es sich bei Keling nicht um eine vom Labor veröffentlichte Demo oder Video-Ergebnisdemonstration handelt, sondern um eine Anwendung auf Produktebene, die von Kuaishou, einem führenden Anbieter im Bereich Kurzvideos, gestartet wurde. Darüber hinaus liegt das Hauptaugenmerk darauf, pragmatisch zu sein, keine Blankoschecks auszustellen und sofort nach der Veröffentlichung online zu gehen. Das große Modell von Ke Ling wurde bereits in Kuaiying veröffentlicht.

Die Vitalität der Superintelligenz erwacht! Aber mit der Einführung der sich selbst aktualisierenden KI müssen sich Mütter keine Sorgen mehr über Datenengpässe machen Die Vitalität der Superintelligenz erwacht! Aber mit der Einführung der sich selbst aktualisierenden KI müssen sich Mütter keine Sorgen mehr über Datenengpässe machen Apr 29, 2024 pm 06:55 PM

Ich weine zu Tode. Die Daten im Internet reichen überhaupt nicht aus. Das Trainingsmodell sieht aus wie „Die Tribute von Panem“, und KI-Forscher auf der ganzen Welt machen sich Gedanken darüber, wie sie diese datenhungrigen Esser ernähren sollen. Dieses Problem tritt insbesondere bei multimodalen Aufgaben auf. Zu einer Zeit, als sie ratlos waren, nutzte ein Start-up-Team der Abteilung der Renmin-Universität von China sein eigenes neues Modell, um als erstes in China einen „modellgenerierten Datenfeed selbst“ in die Realität umzusetzen. Darüber hinaus handelt es sich um einen zweigleisigen Ansatz auf der Verständnisseite und der Generierungsseite. Beide Seiten können hochwertige, multimodale neue Daten generieren und Datenrückmeldungen an das Modell selbst liefern. Was ist ein Modell? Awaker 1.0, ein großes multimodales Modell, das gerade im Zhongguancun-Forum erschienen ist. Wer ist das Team? Sophon-Motor. Gegründet von Gao Yizhao, einem Doktoranden an der Hillhouse School of Artificial Intelligence der Renmin University.

See all articles