


Lassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen
Der Inhalt dieses Artikels soll Ihnen einen kurzen Überblick über die Erstellung eines neuronalen Netzwerkmodells in Python geben. Ich hoffe, dass er für Sie hilfreich ist.
Zusammenfassung: Neugierig, wie neuronale Netze funktionieren? Probieren Sie es aus. Der beste Weg, die Funktionsweise neuronaler Netze zu verstehen, besteht darin, selbst ein einfaches neuronales Netz zu erstellen.
Neuronales Netzwerk (NN), auch bekannt als künstliches neuronales Netzwerk (ANN), ist eine Teilmenge von Lernalgorithmen im Bereich des maschinellen Lernens und lehnt sich lose an das Konzept biologischer neuronaler Netzwerke an. Derzeit werden neuronale Netze häufig in Bereichen wie Computer Vision und Verarbeitung natürlicher Sprache eingesetzt. Andrey Bulezyuk, ein hochrangiger deutscher Experte für maschinelles Lernen, sagte: „Neuronale Netze revolutionieren das maschinelle Lernen, weil sie komplexe Abstraktionen in verschiedenen Disziplinen und Branchen ohne große menschliche Beteiligung effektiv simulieren können.“
Im Allgemeinen umfassen künstliche neuronale Netze das Netzwerk die folgenden Komponenten:
Eingabeschicht, die Daten empfängt und überträgt;
verborgene Schicht; 🎜>Ausgabeschicht;
Das Gewicht zwischen den Schichten;
- Die von jeder verborgenen Schicht verwendete Aktivierungsfunktion; 🎜>
In diesem Tutorial wird eine einfache Sigmoid-Aktivierungsfunktion verwendet. Bitte beachten Sie jedoch, dass in tiefen neuronalen Netzwerken in Netzwerkmodellen die Sigmoid-Aktivierungsfunktion im Allgemeinen nicht die erste Wahl ist, da sie anfällig für Gradientendispersion ist.
Darüber hinaus gibt es verschiedene Arten von künstlichen neuronalen Netzen, wie zum Beispiel Feedforward-Neuronale Netze, Faltungs-Neuronale Netze und wiederkehrende Neuronale Netze. In diesem Artikel wird als Beispiel ein einfaches Feedforward- oder wahrnehmungsbezogenes neuronales Netzwerk verwendet. Diese Art von künstlichem neuronalem Netzwerk überträgt Daten direkt von vorne nach hinten, was als Vorwärtsausbreitungsprozess bezeichnet wird. -
Das Training von Feedforward-Neuronen erfordert normalerweise einen Backpropagation-Algorithmus, der die Bereitstellung entsprechender Eingabe- und Ausgabesätze für das Netzwerk erfordert. Wenn Eingabedaten an ein Neuron übertragen werden, werden diese entsprechend verarbeitet und die resultierende Ausgabe wird an die nächste Schicht übertragen.
Die folgende Abbildung zeigt einfach die Struktur eines neuronalen Netzwerks:
Außerdem lässt sich die Funktionsweise eines neuronalen Netzwerks am besten verstehen, indem man lernt, wie es funktioniert um eines von Grund auf mit einer beliebigen Toolbox zu erstellen. In diesem Artikel zeigen wir, wie man mit Python ein einfaches neuronales Netzwerk erstellt.
Die folgende Tabelle zeigt das Problem, das wir lösen werden: Wir werden das neuronale Netzwerk trainieren, damit es den korrekten Ausgabewert vorhersagen kann, wenn ein neuer Satz von gegeben wird Daten.
Wie Sie der Tabelle entnehmen können, ist der Ausgabewert immer gleich dem ersten Wert im Eingabeabschnitt. Daher können wir davon ausgehen, dass der Ausgabewert (?) der neuen Situation 1 ist.
Mal sehen, ob wir mit etwas Python-Code das gleiche Ergebnis erzielen können.
Neurale Netzwerkklasse erstellen|NeuralNetwork-Klasse
Wir werden eine NeuralNetwork-Klasse in Python erstellen, um Neuronen zu trainieren, um genaue Vorhersagen zu liefern. Wir werden die neuronale Netzwerkbibliothek nicht verwenden, um dieses einfache Beispiel für ein neuronales Netzwerk zu erstellen, sondern die grundlegende Numpy-Bibliothek importieren, um die Berechnung zu unterstützen.
Die Numpy-Bibliothek ist eine Basisbibliothek für die Datenverarbeitung. Sie verfügt über die folgenden vier wichtigen Berechnungsmethoden:
EXP – wird zur Generierung des natürlichen Exponenten verwendet;
Array – wird zum Generieren von Matrizen verwendet;- Punkt – wird für die Matrixmultiplikation verwendet;
zufällig – wird verwendet um Zufallszahlen zu generieren;
Anwenden der Sigmoid-Funktion
Wir verwenden die Sigmoid-Funktion, die eine „S“-förmige Kurve zeichnet. Sie dient als Aktivierungsfunktion von das in diesem Artikel erstellte neuronale Netzwerk. - Diese Funktion kann jeden Wert zwischen 0 und 1 abbilden und hilft uns, die gewichtete Summe der Eingabe zu normalisieren.
Training des Modells bedeutet die Phase, in der wir dem neuronalen Netzwerk beibringen, genaue Vorhersagen zu treffen. Jede Eingabe hat eine Gewichtung – positiv oder negativ, was bedeutet, dass Eingaben mit großer positiver oder großer negativer Gewichtung einen größeren Einfluss auf die resultierende Ausgabe haben. Beachten Sie, dass beim ersten Training des Modells jedes Gewicht mit einer Zufallszahl initialisiert wird.
2. Berechnen Sie die Fehlerrate der Backpropagation. In diesem Fall handelt es sich um den Fehler zwischen der vorhergesagten Ausgabe des Neurons und der erwarteten Ausgabe des Trainingsdatensatzes.
3. Verwenden Sie den Fehler gewichtet Ableitung Die Formel nimmt einige kleine Gewichtsanpassungen vor.
4. Wiederholen Sie diesen Vorgang 15.000 Mal, und bei jeder Iteration wird der gesamte Trainingssatz gleichzeitig verarbeitet >
Hier verwenden wir die Funktion „.T“, um die Matrix zu beeinflussen. Daher werden die Zahlen folgendermaßen gespeichert: Schließlich werden die Gewichte der Neuronen für die bereitgestellten Trainingsdaten optimiert. Wenn die Ausgabe des neuronalen Netzwerks mit der erwarteten Ausgabe übereinstimmt, bedeutet dies, dass das Training abgeschlossen ist und genaue Vorhersagen getroffen werden können. Dies ist die Methode der Backpropagation.
import numpy as np
class NeuralNetwork():
def __init__(self):
# 设置随机数种子
np.random.seed(1)
# 将权重转化为一个3x1的矩阵,其值分布为-1~1,并且均值为0
self.synaptic_weights = 2 * np.random.random((3, 1)) - 1
def sigmoid(self, x):
# 应用sigmoid激活函数
return 1 / (1 + np.exp(-x))
def sigmoid_derivative(self, x):
#计算Sigmoid函数的偏导数
return x * (1 - x)
def train(self, training_inputs, training_outputs, training_iterations):
# 训练模型
for iteration in range(training_iterations):
# 得到输出
output = self.think(training_inputs)
# 计算误差
error = training_outputs - output
# 微调权重
adjustments = np.dot(training_inputs.T, error * self.sigmoid_derivative(output))
self.synaptic_weights += adjustments
def think(self, inputs):
# 输入通过网络得到输出
# 转化为浮点型数据类型
inputs = inputs.astype(float)
output = self.sigmoid(np.dot(inputs, self.synaptic_weights))
return output
if __name__ == "__main__":
# 初始化神经类
neural_network = NeuralNetwork()
print("Beginning Randomly Generated Weights: ")
print(neural_network.synaptic_weights)
#训练数据
training_inputs = np.array([[0,0,1],
[1,1,1],
[1,0,1],
[0,1,1]])
training_outputs = np.array([[0,1,1,0]]).T
# 开始训练
neural_network.train(training_inputs, training_outputs, 15000)
print("Ending Weights After Training: ")
print(neural_network.synaptic_weights)
user_input_one = str(input("User Input One: "))
user_input_two = str(input("User Input Two: "))
user_input_three = str(input("User Input Three: "))
print("Considering New Situation: ", user_input_one, user_input_two, user_input_three)
print("New Output data: ")
print(neural_network.think(np.array([user_input_one, user_input_two, user_input_three])))
print("Wow, we did it!")
Nach dem Login kopieren
Nach dem Ausführen des Codes wird Folgendes ausgegeben:
import numpy as np class NeuralNetwork(): def __init__(self): # 设置随机数种子 np.random.seed(1) # 将权重转化为一个3x1的矩阵,其值分布为-1~1,并且均值为0 self.synaptic_weights = 2 * np.random.random((3, 1)) - 1 def sigmoid(self, x): # 应用sigmoid激活函数 return 1 / (1 + np.exp(-x)) def sigmoid_derivative(self, x): #计算Sigmoid函数的偏导数 return x * (1 - x) def train(self, training_inputs, training_outputs, training_iterations): # 训练模型 for iteration in range(training_iterations): # 得到输出 output = self.think(training_inputs) # 计算误差 error = training_outputs - output # 微调权重 adjustments = np.dot(training_inputs.T, error * self.sigmoid_derivative(output)) self.synaptic_weights += adjustments def think(self, inputs): # 输入通过网络得到输出 # 转化为浮点型数据类型 inputs = inputs.astype(float) output = self.sigmoid(np.dot(inputs, self.synaptic_weights)) return output if __name__ == "__main__": # 初始化神经类 neural_network = NeuralNetwork() print("Beginning Randomly Generated Weights: ") print(neural_network.synaptic_weights) #训练数据 training_inputs = np.array([[0,0,1], [1,1,1], [1,0,1], [0,1,1]]) training_outputs = np.array([[0,1,1,0]]).T # 开始训练 neural_network.train(training_inputs, training_outputs, 15000) print("Ending Weights After Training: ") print(neural_network.synaptic_weights) user_input_one = str(input("User Input One: ")) user_input_two = str(input("User Input Two: ")) user_input_three = str(input("User Input Three: ")) print("Considering New Situation: ", user_input_one, user_input_two, user_input_three) print("New Output data: ") print(neural_network.think(np.array([user_input_one, user_input_two, user_input_three]))) print("Wow, we did it!")
Oben ist ein einfaches neuronales Netzwerk, das wir erstellen konnten. Zuerst beginnt das neuronale Netzwerk, sich selbst einige zufällige Gewichte zuzuweisen, danach trainiert es sich anhand von Trainingsbeispielen.
Das obige ist der detaillierte Inhalt vonLassen Sie uns kurz den Inhalt der Erstellung neuronaler Netzwerkmodelle in Python verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Es gibt keine integrierte Summenfunktion in der C-Sprache, daher muss sie selbst geschrieben werden. Die Summe kann erreicht werden, indem das Array durchquert und Elemente akkumulieren: Schleifenversion: Die Summe wird für die Schleifen- und Arraylänge berechnet. Zeigerversion: Verwenden Sie Zeiger, um auf Array-Elemente zu verweisen, und eine effiziente Summierung wird durch Selbststillstandszeiger erzielt. Dynamisch Array -Array -Version zuweisen: Zuordnen Sie Arrays dynamisch und verwalten Sie selbst den Speicher selbst, um sicherzustellen, dass der zugewiesene Speicher befreit wird, um Speicherlecks zu verhindern.

Es gibt keine App, die alle XML -Dateien in PDFs umwandeln kann, da die XML -Struktur flexibel und vielfältig ist. Der Kern von XML zu PDF besteht darin, die Datenstruktur in ein Seitenlayout umzuwandeln, für das XML analysiert und PDF generiert werden muss. Zu den allgemeinen Methoden gehören das Parsen von XML mithilfe von Python -Bibliotheken wie ElementTree und das Generieren von PDFs unter Verwendung der ReportLab -Bibliothek. Für komplexe XML kann es erforderlich sein, XSLT -Transformationsstrukturen zu verwenden. Wenn Sie die Leistung optimieren, sollten Sie Multithread- oder Multiprozesse verwenden und die entsprechende Bibliothek auswählen.

XML kann mithilfe eines XSLT -Konverters oder einer Bildbibliothek in Bilder konvertiert werden. XSLT -Konverter: Verwenden Sie einen XSLT -Prozessor und Stylesheet, um XML in Bilder zu konvertieren. Bildbibliothek: Verwenden Sie Bibliotheken wie Pil oder Imagemagick, um Bilder aus XML -Daten zu erstellen, z. B. Zeichnen von Formen und Text.

XML -Formatierungs -Tools können Code nach Regeln eingeben, um die Lesbarkeit und das Verständnis zu verbessern. Achten Sie bei der Auswahl eines Tools auf die Anpassungsfunktionen, den Umgang mit besonderen Umständen, die Leistung und die Benutzerfreundlichkeit. Zu den häufig verwendeten Werkzeugtypen gehören Online-Tools, IDE-Plug-Ins und Befehlszeilen-Tools.

Konvertieren Sie XML in PDF mit hoher Qualität auf Ihrem Mobiltelefon müssen: XML in der Cloud analysieren und PDFs mithilfe einer serverlosen Computerplattform generieren. Wählen Sie eine effiziente Bibliothek für XML -Parser- und PDF -Generation. Fehler korrekt behandeln. Nutzen Sie die Cloud -Computing -Leistung voll, um schwere Aufgaben auf Ihrem Telefon zu vermeiden. Passen Sie die Komplexität gemäß den Anforderungen an, einschließlich der Verarbeitung komplexer XML-Strukturen, der Erzeugung von mehrseitigen PDFs und dem Hinzufügen von Bildern. Drucken Sie Protokollinformationen zum Debuggen. Optimieren Sie die Leistung, wählen Sie effiziente Parser- und PDF -Bibliotheken aus und können asynchrone Programmier- oder Vorverarbeitungs -XML -Daten verwenden. Gewährleisten Sie eine gute Codequalität und -wartbarkeit.

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.
