Maschinelles Lernen und neuronale Netze - Seite 16

 

Python TensorFlow für maschinelles Lernen – Tutorial zur Textklassifizierung in neuronalen Netzwerken



Python TensorFlow für maschinelles Lernen – Tutorial zur Textklassifizierung in neuronalen Netzwerken

In diesem YouTube-Tutorial behandelt der Moderator eine Reihe von Themen im Zusammenhang mit Python TensorFlow für maschinelles Lernen und die Textklassifizierung durch neuronale Netze. Sie beginnen damit, den Einrichtungsprozess in Google Colab und den Import der erforderlichen Bibliotheken zu besprechen, bevor sie sich auf den Wine Reviews-Datensatz konzentrieren und Matplotlib verwenden, um Histogramme der verschiedenen Funktionen zu zeichnen. Das Tutorial behandelt maschinelle Lernkonzepte, einschließlich überwachtes Lernen, und den Unterschied zwischen qualitativen und quantitativen Daten sowie Eingaben und Vorhersagen in Klassifizierungsszenarien wie binäre und mehrklassige Klassifizierung. Weitere behandelte Themen sind Verlustfunktionen, neuronale Netze, Aktivierungsfunktionen, Gradientenabstieg und Backpropagation sowie die Implementierung von neuronalen Netzen in TensorFlow. Schließlich implementiert der Moderator ein neuronales Netz mit TensorFlow zur Textklassifizierung und demonstriert die Vorteile der Verwendung von Paketen und Bibliotheken zur Steigerung der Effizienz.

Der zweite Teil des Video-Tutorials behandelt verschiedene Aspekte des maschinellen Lernens mit TensorFlow in Python und konzentriert sich insbesondere auf die Textklassifizierung in neuronalen Netzwerken. Das Tutorial behandelt das Aufteilen von Daten in Trainings- und Testsätze, das Erstellen eines einfachen Modells mit TensorFlow und Keras, das Skalieren und Ausgleichen von Datensätzen, die Verwendung wiederkehrender neuronaler Netze und die Verwendung von TensorFlow Hub für die Textklassifizierung. Das Tutorial betont die Bedeutung der Bewertung der Modellgenauigkeit und der Verwendung verschiedener neuronaler Netzwerkkomponenten wie Aktivierungsfunktionen, Dropout-Schichten und verschiedener Zelltypen. Das Tutorial schließt mit einer Zusammenfassung der wichtigsten Erkenntnisse, einschließlich des Aufbaus neuronaler Netze, der Verwendung von TensorFlow zur Textklassifizierung und der Arbeit mit numerischen Daten.

  • 00:00:00 In diesem Abschnitt des Videos zeigt Kylie Ying den Zuschauern zunächst, wie sie ein neues Notizbuch in Google Colab einrichten und notwendige Bibliotheken wie NumPy, Pandas, Matplotlib, TensorFlow und TensorFlow Hub importieren. Nachdem sie diese Bibliotheken importiert hat, lädt sie einen Datensatz namens „Wine Reviews“ als CSV-Datei hoch und liest ihn als Pandas DataFrame, wobei sie die Spalten auswählt, die sie analysieren möchte, wie Land, Beschreibung, Punkte und Preis. Sie beschließt, sich auf die Analyse der Beziehung zwischen der Beschreibung und den Punktespalten zu konzentrieren, um zu sehen, ob ein neuronales Netzwerkmodell trainiert werden kann, um zu klassifizieren, ob eine Weinbewertung am unteren oder oberen Ende des Punktespektrums liegt.

  • 00:05:00 In diesem Abschnitt des Videos erläutert der Sprecher, wie man Spalten in einem Pandas-Datenrahmen ablegt und mit Matplotlib ein Histogramm zeichnet. Sie zeichnen die Punktespalte auf, um die Verteilung der Werte zu sehen, und entscheiden sich für eine Einstufung der Bewertungen in unter 90 und über 90. Der Referent gibt auch eine kurze Erläuterung des maschinellen Lernens, einschließlich des Unterschieds zwischen künstlicher Intelligenz, maschinellem Lernen und Data Science, mit Maschinelles Lernen ist eine Teilmenge der KI, die sich auf die Lösung eines bestimmten Problems mithilfe von Daten konzentriert. Die Bereiche KI, maschinelles Lernen und Data Science überschneiden sich und können Techniken des maschinellen Lernens verwenden, um Daten zu analysieren und Erkenntnisse daraus zu ziehen.

  • 00:10:00 In diesem Abschnitt stellt der Referent drei verschiedene Arten des maschinellen Lernens vor: überwachtes Lernen, unüberwachtes Lernen und bestärkendes Lernen. Das Tutorial konzentriert sich auf überwachtes Lernen, bei dem die Eingabe ein entsprechendes Ausgabelabel hat und verwendet wird, um Modelle zum Lernen von Ausgaben zu trainieren. Der Referent erklärt, dass das maschinelle Lernmodell Muster in Daten lernt, um die Vorhersage zu treffen, und dass die Liste der Eingaben als Merkmalsvektor bezeichnet wird. Der Referent geht auch auf die zwei unterschiedlichen Arten der qualitativen Dateneingabe ein: kategorische und endliche Anzahl von Kategorien oder Gruppen. Das Tutorial konzentriert sich auf die Verwendung von beschrifteten Eingabe- und Ausgabepaaren, um zukünftige Vorhersagen zu treffen.

  • 00:15:00 In diesem Abschnitt stellt das Video das Konzept qualitativer und quantitativer Merkmale vor und wie sie in Zahlen für Computer kodiert werden können. Qualitative Merkmale wie Nationalität oder Altersgruppen sind solche, denen keine Nummer zugeordnet ist, und sie können mit One-Hot-Codierung codiert werden. Numerische Merkmale wie die Größe eines Schreibtisches oder die Temperatur eines Feuers sind quantitativ und können entweder kontinuierlich oder diskret sein. Das Video unterscheidet auch zwischen nominalen Daten, die keine inhärente Ordnung haben, und ordinalen Daten, die eine inhärente Ordnung haben, und erörtert, wie verschiedene Arten von qualitativen Merkmalen unterschiedliche Codierungstechniken erfordern können.

  • 00:20:00 In diesem Abschnitt erklärt der Referent die verschiedenen Arten von Eingaben und Vorhersagen beim überwachten Lernen. Eingaben können entweder kontinuierlich oder diskret sein, während Vorhersagen entweder als binär oder mehrklassig klassifiziert werden können. Bei der binären Klassifizierung sagt das Modell voraus, ob eine Eingabe zu einer von zwei Kategorien gehört, während bei der Mehrklassenklassifizierung Eingaben einer von mehreren Kategorien zugeordnet werden. Darüber hinaus wird die Regression verwendet, um kontinuierliche Werte vorherzusagen. Der Referent neckt dann das Thema Models, geht aber noch nicht ins Detail. Abschließend geht der Sprecher kurz darauf ein, wie das Modell lernen und seine Leistung bewerten kann.

  • 00:25:00 In diesem Abschnitt erörtert der Referent den Datensatz, den er für ein reales Beispiel verwenden wird, und erklärt die Struktur der Daten. Der Datensatz enthält Informationen zu Personen, einschließlich quantitativer Variablen wie Anzahl der Schwangerschaften, Glukosewerte und Blutdruck sowie eine Ergebnisvariable, die angibt, ob sie an Diabetes leiden oder nicht. Jede Zeile stellt ein anderes Individuum dar, und jede Spalte stellt ein anderes Merkmal dar, das in das Modell eingespeist werden kann. Der Merkmalsvektor wird in das Modell eingefügt, wobei das Ziel für diesen Merkmalsvektor die vorherzusagende Ausgabe ist. Der Sprecher erklärt weiter, dass der Datensatz in einen Trainingsdatensatz, einen Validierungsdatensatz und einen Testdatensatz aufgeteilt ist und dass der Validierungsdatensatz verwendet wird, um zu überprüfen, ob das Modell mit unsichtbaren Daten umgehen kann, bevor das Modell es ist auf dem Testdatensatz getestet.

  • 00:30:00 In diesem Abschnitt erörtert der Referent Verlustfunktionen und wie sie die Differenz zwischen vorhergesagten Werten und tatsächlichen Werten in Regressions- und binären Klassifikationsszenarien quantifizieren. Bei der Regression findet die L1-Verlustfunktion die Differenz zwischen vorhergesagten und tatsächlichen Werten, während die L2-Verlustfunktion die Differenzen quadriert. Bei der binären Klassifizierung findet der binäre Kreuzentropieverlust den Unterschied zwischen vorhergesagten und tatsächlichen Wahrscheinlichkeiten, zu einer bestimmten Klasse zu gehören. Der Referent erläutert auch Genauigkeit als Leistungsmaß in Klassifikationsszenarien. Abschließend stellt der Referent das Konzept des Modells vor und wie es in den gesamten Prozess des maschinellen Lernens passt.

  • 00:35:00 In diesem Abschnitt erörtert der Redner neuronale Netze und erklärt, dass sie beliebt sind, weil sie für Klassifizierung und Regression verwendet werden können. Der Referent erwähnt jedoch auch, dass neuronale Netze manchmal überstrapaziert werden und ihre Verwendung für einfache Modelle unnötig sein kann. Der Referent geht darauf ein, dass neuronale Netze eine Black Box sind und daher manchmal an Transparenz mangelt. Sie erklären die Struktur eines neuronalen Netzes, einschließlich der Art und Weise, wie Merkmale mit Gewichten multipliziert und zu Verzerrungen hinzugefügt werden, bevor sie durch eine Aktivierungsfunktion geleitet werden. Der Sprecher betont die Bedeutung der Verwendung einer nichtlinearen Aktivierungsfunktion, um zu verhindern, dass das neuronale Netz zu einer einfachen linearen Regression wird.

  • 00:40:00 In diesem Abschnitt behandelt das Video Aktivierungsfunktionen und ihre Rolle in neuronalen Netzwerken. Wenn ein neuronales Netzwerk einfach eine lineare Funktion verwenden würde, würde es seinen Zweck nicht erfüllen. Aktivierungsfunktionen wie Sigmoid, Tange und Relu ermöglichen es, jedes Neuron in einen nichtlinearen Raum zu projizieren, was den Trainingsprozess ermöglicht. Das Video erklärt dann das Konzept des Gradientenabstiegs und der Rückwärtsausbreitung, die die Gründe sind, warum neuronale Netze funktionieren. Der Gradientenabstieg misst die Steigung der Verlustfunktion, und die Rückwärtsausbreitung passt die Gewichtungswerte an, um den Verlust zu minimieren. Durch diesen Prozess wird für jeden Parameter ein neuer Gewichtungswert eingestellt, der das alte Gewicht plus etwas Alpha ist.

  • 00:45:00 In diesem Abschnitt behandelt das Video die Implementierung von neuronalen Netzen beim maschinellen Lernen mit Hilfe von bereits entwickelten und optimierten Bibliotheken wie TensorFlow. Die TensorFlow-Bibliothek ist eine Open-Source-Bibliothek, die beim Entwickeln und Trainieren von Modellen für maschinelles Lernen hilft. Die Bibliothek umfasst viele Module, einschließlich Keras, das Module enthält, die Benutzer bei der Erstellung und Optimierung von Modellen unterstützen, wie z. B. verschiedene Optimierer. Das Video erklärt auch, warum es vorteilhaft ist, etablierte Bibliotheken zu verwenden, anstatt ein neuronales Netz von Grund auf neu zu codieren.

  • 00:50:00 In diesem Abschnitt zeigt der Moderator den Zuschauern, wie ein neuronales Netz mithilfe von TensorFlow zur Textklassifizierung implementiert wird. Sie beginnen damit, die Vorteile der Verwendung von Paketen und Bibliotheken zur Verbesserung der Effizienz vorzustellen, bevor sie mit der Erstellung eines neuen Notizbuchs fortfahren, in das sie einen Datensatz namens diabetes.csv laden, indem sie die CSV-Lesefunktion verwenden. Der Datensatz stammt vom National Institute of Diabetes and Digestive and Kidney Diseases und umfasst verschiedene Merkmale und demografische Daten des Patienten sowie eine Klassifizierung, ob der Patient an Diabetes leidet. Der Moderator demonstriert dann, wie die Daten visualisiert werden, indem Histogramme der verschiedenen Merkmale gezeichnet werden, die danach indiziert sind, ob der Patient Diabetes hat oder nicht, indem er eine for-Schleife im Jupyter Notebook verwendet.

  • 00:55:00 In diesem Abschnitt des Video-Tutorials zur Verwendung von Python TensorFlow für maschinelles Lernen und Textklassifizierung in neuronalen Netzwerken erstellt der Moderator einen neuen Datenrahmen mit auf Null gesetzten Ergebnissen und einen weiteren mit auf eins gesetzten Ergebnissen, um zwischen Patienten mit Diabetes zu unterscheiden und die ohne. Der nächste Schritt besteht darin, die Anzahl der Diabetes-positiven und -negativen Patienten zu visualisieren, was nicht eindeutig erscheint, da es kein trennbares Muster zwischen den verschiedenen Werten gibt. Dies unterstreicht die Bedeutung des maschinellen Lernens bei der Vorhersage von Diabetes, indem alle Merkmale zusammen betrachtet werden. Schließlich teilt der Präsentator den Datenrahmen zur weiteren Analyse in x- und y-Werte auf.
  • 01:00:00 In diesem Abschnitt erklärt der Referent, wie die Daten mithilfe des Scikit-Learn-Moduls in Trainings- und Testdatensätze aufgeteilt werden. Der Sprecher importiert das Modul, ruft die Funktion train_test_split auf und übergibt die Eingabe- und Ausgabefunktionen. Die Testgröße wird auf 20 % festgelegt, während die Trainingsgröße auf 60 % des Datensatzes festgelegt wird. Die temporären Sets werden dann verwendet, um Validierungs- und Testsets mit einer 50/50-Aufteilung zu erstellen. Schließlich baut der Sprecher mit TensorFlow und Keras ein einfaches Modell, nämlich die dichte Schicht mit 16 Neuronen, die dicht mit der vorhergehenden Schicht verbunden sind.

  • 01:05:00 In diesem Abschnitt erläutert der Referent den Prozess zum Erstellen eines neuronalen Netzes für die binäre Klassifizierung mit TensorFlow in Python. Sie fügen Ebenen und eine Aktivierungsfunktion namens Sigmoid hinzu, die Eingaben auf Wahrscheinlichkeiten abbildet, ob etwas zu einer einzelnen Klasse gehört oder nicht. Das Modell wird dann mit einem Optimierer namens „adam“, einer Verlustfunktion namens „binäre Kreuzentropie“ und einer Metrik für die Genauigkeit kompiliert. Vor dem Training des Modells bewerten sie seine Leistung anhand der Trainings- und Validierungsdaten, was eine geringe Genauigkeit ergibt. Schließlich trainiert der Sprecher das Modell mit der Funktion „model.fit“, wobei er die Trainings- und Validierungsdaten, die Stapelgröße und die Anzahl der Epochen übergibt.

  • 01:10:00 In diesem Abschnitt erörtert der Moderator die Notwendigkeit, die Datensatzmerkmale zu skalieren, um sicherzustellen, dass sie in einem standardisierteren Bereich liegen. Der Referent erklärt, wie das erforderliche Paket importiert wird, um die Funktionen mithilfe von Sklearn-Vorverarbeitung und Standard-Skalar zu skalieren. Nach dem Skalieren der Features überprüft der Präsentator den Wertebereich und zeichnet den transformierten Datenrahmen, um zu demonstrieren, dass die meisten Features jetzt einen ähnlichen Maßstab haben. Das Skalieren der Merkmale trägt dazu bei sicherzustellen, dass die Merkmale das Ergebnis des neuronalen Netzes aufgrund der unterschiedlichen Bereiche nicht beeinflussen.

  • 01:15:00 In diesem Abschnitt konzentriert sich das Video-Tutorial auf die Normalisierung und den Ausgleich des Datensatzes durch einen Prozess namens Random Oversampling. Durch die Visualisierung der Daten zeigt der Ausbilder, wie der Datensatz für Diabetespatienten und Nicht-Diabetespatienten stark unausgewogen ist, was zu einem neuronalen Netz führt, das möglicherweise nicht gut trainiert wird. Durch die Verwendung des Random-Over-Samplers werden dem Datensatz weitere Zufallsstichproben hinzugefügt, wodurch die Längen der beiden Kategorien ausgeglichen werden. Dies wird erreicht, indem ein anderes Paket namens Imbalance Learn Dot Over Sampling importiert wird, das einen Random Over Sampler enthält. Der Datensatz wird mit der Funktion fit_resample erneut geteilt, sodass beide Ergebnisse ungefähr gleich eins sind. Nach dem erneuten Ausführen der Zellen liegt die Genauigkeit des Modells näher bei 50 %, was darauf hinweist, dass der Ausgleich des Datensatzes zu einer besseren Modellleistung geführt hat.

  • 01:20:00 In diesem Abschnitt bewertet der Ersteller das neuronale Netzwerkmodell anhand eines Testdatensatzes und erreicht eine Genauigkeit von 77,5 %, was zeigt, dass das Modell erfolgreich auf unsichtbare Daten generalisiert werden kann. Das Tutorial fährt dann fort, um rekurrente neuronale Netze (RNNs) zu diskutieren und wie sie für Daten nützlich sind, die Sequenzen oder Serien beinhalten. RNNs ermöglichen die Erstellung eines Gedächtnisses innerhalb des neuronalen Netzwerks, das es ihm ermöglicht, sich an Informationen aus früheren Zeitschritten zu erinnern. Die Verwendung von RNNs kann jedoch zu Problemen wie explodierenden oder verschwindenden Gradienten während der Rückwärtsausbreitung führen.

  • 01:25:00 In diesem Abschnitt erörtert der Redner die Probleme mit Gradienten, die immer näher an Null herankommen, was verhindert, dass Modelle aktualisiert und gelernt werden. Um dem entgegenzuwirken, gibt es verschiedene Arten von Zellen oder Neuronen, die verwendet werden können, wie z. B. die Gated Recurrent Unit und die Long Short Term Memory Unit. Der Referent geht dann zu einem TensorFlow-Beispiel mit Textklassifizierung unter Verwendung von Weinbewertungen über und demonstriert, wie die Daten in Trainings-, Validierungs- und Testdatensätze aufgeteilt werden. Der Referent verwendet die Split-Funktion von numpy, um eine andere Art der Aufteilung der Daten zu zeigen, und betont, wie wichtig es ist, beim Arbeiten mit Datensätzen flexibel zu sein.

  • 01:30:00 In diesem Abschnitt behandelt das Video-Tutorial, wie ein Datensatz in Trainings-, Validierungs- und Testdatensätze aufgeteilt und in ein tf.data.Dataset-Objekt in TensorFlow umgewandelt wird. Der Kursleiter verwendet eine größere Stapelgröße und tf.data.autotune aufgrund der großen Größe des Datensatzes und passt den Funktionscode an, um die Zielvariable in „Beschriftung“ zu ändern, da die Daten bereits beschriftet wurden. Das Tutorial erklärt auch, wie der TensorFlow-Hub funktioniert, der in diesem Tutorial für die Textklassifizierung verwendet wird. Das Video zeigt auch, wie die Datensätze innerhalb der TensorFlow-Datensatzobjekte visualisiert werden.

  • 01:35:00 In diesem Abschnitt erläutert das Video-Tutorial, wie TensorFlow Hub, ein Repository mit vortrainierten Modellen für maschinelles Lernen, verwendet wird, um bei der Textklassifizierung zu helfen. Das Video erklärt, dass Computer keinen Text verstehen, also muss der Text in Zahlen umgewandelt werden, die der Computer verstehen kann. Für diese Transformation verwendet das Video nnlm, eine tokenbasierte Texteinbettung, die auf englischen Google-Nachrichten trainiert wurde, und wandelt den gesamten Text in einen Zahlenvektor um. Das Video zeigt dann, wie man mit TensorFlow Keras ein neuronales Netzwerkmodell mit einer dichten Schicht, einer ReLU-Aktivierungsfunktion und einer binären Klassifizierungsausgabe erstellt. Das Video kompiliert das Modell und wertet es anhand der Trainings- und Validierungsdaten aus und zeigt eine Genauigkeit von etwa 40 %.

  • 01:40:00 In diesem Abschnitt des Videos trainiert der Sprecher ein maschinelles Lernmodell und beobachtet die Ergebnisse. Die Trainingsgenauigkeit steigt und der Verlust sinkt, was anzeigt, dass das Modell gut trainiert ist. Die Validierungsgenauigkeit stagniert jedoch und nimmt sogar leicht ab, was darauf hinweist, dass das Modell nicht gut verallgemeinert und überangepasst ist. Um dieses Problem zu lösen, schlägt der Redner vor, Dropout-Layer hinzuzufügen, die zufällig einige Knoten auswählen, die während jeder Trainingsiteration "abgeschaltet" werden sollen. Dies führt mehr Zufälligkeit und Variabilität in das Modell ein und hilft ihm, besser zu verallgemeinern. Zuletzt wiederholt der Sprecher die Hub-Schicht und kompiliert das Modell.

  • 01:45:00 In diesem Abschnitt bewertet der Benutzer das neuronale Netzwerk, das im vorherigen Abschnitt erstellt und trainiert wurde. Der Verlust nimmt ab und die Genauigkeit nimmt zu, aber der Benutzer bricht das Training vorzeitig nach nur fünf Epochen ab. Das Modell wird anhand der Testdaten evaluiert und die Genauigkeit liegt bei etwa 83 %. Der Benutzer zeigt dann, wie das Modell mit einem LSTM neu erstellt wird, und beginnt mit der Erstellung eines Encoders mit einem auf 2000 gesetzten maximalen Token. Das Modell wird dann mithilfe des Encoders und einer Einbettungsschicht mit einer Eingabedimension definiert, die auf die Länge des Vokabulars des Encoders festgelegt ist und eine auf 32 gesetzte Ausgabedimension. Schließlich wird eine LSTM-Schicht mit 32 Knoten hinzugefügt.

  • 01:50:00 In diesem Abschnitt des Videos baut der Kursleiter das neuronale Netzwerk auf, indem er eine dichte Schicht und eine Dropout-Schicht hinzufügt, um eine Überanpassung zu verhindern. Die Aktivierungsfunktion für die Ausgabe ist sigmoid, während die Eingabe einen Tokenizer erfordert. Die Genauigkeit des Modells liegt bei etwa 53 und der Verlust bei etwa 0,7. Anschließend wird das Modell trainiert, indem die Trainings- und Validierungsdaten ausgewertet werden. Am Ende des Trainings wurde festgestellt, dass die Genauigkeit für Testdaten 84 beträgt. Das Tutorial endet damit, dass der Kursleiter das Mitnehmen zusammenfasst, nämlich zu lernen, wie man ein neuronales Feed-Forward-Netzwerk aufbaut, TensorFlow zur Textklassifizierung verwendet und numerisch implementiert Daten.
Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial
Python TensorFlow for Machine Learning – Neural Network Text Classification Tutorial
  • 2022.06.15
  • www.youtube.com
This course will give you an introduction to machine learning concepts and neural network implementation using Python and TensorFlow. Kylie Ying explains bas...
 

TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial (Teile 1-4)



TensorFlow 2.0 Complete Course – Tutorial zu neuronalen Python-Netzen für Anfänger

00:00:00 - 01:00:00 Dieses Video bietet eine Einführung in TensorFlow 2.0, eine Bibliothek für Datenmanipulation und maschinelles Lernen. Der Kursleiter erklärt, was ein Tensor ist und wie Tensoren verwendet werden, um teilweise definierte Berechnungen zu speichern. Er demonstriert auch, wie die Funktionen TF dot rank und TF dot reshape verwendet werden, um die Anzahl der Dimensionen in einem Tensor zu steuern.

01:00:00 - 02:00:00 Das Video-Tutorial erklärt, wie man die lineare Regression verwendet, um Werte in einem Datensatz vorherzusagen. Als Beispiel dient der Titanic-Datensatz. Der Referent erklärt, wie die lineare Regression verwendet wird, um Werte in einem Datensatz vorherzusagen, und wie mit TensorFlow Feature-Spalten in einem Datensatz erstellt werden.

02:00:00 - 03:00:00 Dieses Video-Tutorial behandelt die Grundlagen der Verwendung von Python für neuronale Netze. Das Video beginnt mit einer Beschreibung, wie ein neuronales Netzwerk aus Schichten miteinander verbundener Neuronen besteht. Das Video behandelt dann, wie man einen Zufallszahlengenerator erstellt und wie man ein neuronales Netzwerk trainiert. Schließlich zeigt das Video, wie Neuronen und Gewichte verbunden werden, wie Informationen durch das Netzwerk geleitet werden und wie der Ausgabewert eines Neurons berechnet wird.

03:00:00 - 04:00:00 Dieses Video erklärt, wie man mit TensorFlow ein Convolutional Neural Network für die Bilderkennung erstellt. Das Video behandelt die Grundlagen von Convolutional Neural Networks, einschließlich ihrer Funktionsweise und der Verwendung vortrainierter Modelle.

04:00:00 - 05:00:00 In diesem Video wird erläutert, wie Sie mit TensorFlow ein maschinelles Lernmodell trainieren, das die Klasse eines Bildes vorhersagen kann. Das Video behandelt grundlegende Konzepte wie Deep Learning und Convolutional Neural Networks.

05:00:00 - 06:00:00 Dieses Video ist eine vollständige Anleitung zur Verwendung von TensorFlow 2.0 zum Trainieren neuronaler Netze. Es behandelt die Eingabe- und Ausgabeformen des neuronalen Netzwerks, wie man eine Verlustfunktion erstellt und wie man das Modell verwendet, um eine Sequenz vorherzusagen. Das Video zeigt auch, wie man Text mit TensorFlow generiert.

06:00:00 - 06:50:00 Dieses Video-Tutorial stellt die Grundlagen von TensorFlow 2.0 vor, einer leistungsstarken Bibliothek für maschinelles Lernen. Nach der Einführung von TensorFlow und seinen Schlüsselkonzepten führt das Tutorial die Zuschauer durch eine Reihe von Tutorials zu verschiedenen maschinellen Lernaufgaben wie Deep Learning und Reinforcement Learning.


Teil 1

  • 00:00:00 In diesem Video-Tutorial lernen Anfänger, wie man TensorFlow 2.0 für neuronale Netze in Python verwendet. Der Kursleiter erklärt die Unterschiede zwischen künstlicher Intelligenz, neuronalen Netzen und maschinellem Lernen und stellt Ressourcen für den Kurs bereit, darunter Übungsaufgaben und Codebeispiele.

  • 00:05:00 Maschinelles Lernen ist ein Teilgebiet der künstlichen Intelligenz, das es Computern ermöglicht, Regeln selbst zu generieren, ohne explizit programmiert werden zu müssen.

  • 00:10:00 Das Video erklärt die Grundlagen von neuronalen Netzen und Deep Learning und wie diese Systeme funktionieren, indem sie Daten durch mehrere Schichten transformieren. Neuronale Netze können für eine Vielzahl von Aufgaben eingesetzt werden, darunter maschinelles Lernen und künstliche Intelligenz. Das Video enthält auch einen Beispieldatensatz von Schülernoten.

  • 00:15:00 Dieses Video erläutert den Unterschied zwischen künstlicher Intelligenz, maschinellem Lernen und neuronalen Netzen und geht dann auf überwachtes Lernen ein.

  • 00:20:00 Unüberwachtes maschinelles Lernen wird verwendet, wenn wir keine Eingabedaten haben. Es wird verwendet, um Gruppen von Datenpunkten zu ermitteln, die ähnlich sind.

  • 00:25:00 Dieses Video bietet einen Überblick über drei verschiedene Arten des maschinellen Lernens: überwachtes, unüberwachtes und bestärkendes Lernen. Der letzte Typ, Reinforcement Learning, wird anhand eines Beispielspiels näher erläutert, bei dem ein Agent der künstlichen Intelligenz (KI) versucht, ein bestimmtes Ziel zu erreichen.

  • 00:30:00 In diesem Video wird eine grundlegende Einführung in TensorFlow gegeben, gefolgt von einer Diskussion darüber, wie die Bibliothek auf einer niedrigeren Ebene funktioniert. TensorFlow wird dann ausführlicher besprochen, einschließlich der beiden Hauptkomponenten: Graphen und Sitzungen. Ein Graph ist eine Sammlung von Teilberechnungen, die miteinander in Beziehung stehen, und eine Sitzung ist eine Möglichkeit, einen Teil oder den gesamten Graphen auszuführen.

  • 00:35:00 In diesem Video stellt der Kursleiter die Grundlagen von TensorFlow vor, einschließlich des Konzepts von Diagrammen und Sitzungen. Anschließend demonstriert er die Verwendung von Google Collaboratory zum Erstellen und Ausführen von Codeblöcken sowie zum Importieren und Verwenden verschiedener Module. Abschließend erläutert er die Vorteile der Verwendung von TensorFlow auf einem Computer mit begrenzten Ressourcen.

  • 00:40:00 In diesem Video zeigt der Kursleiter, wie TensorFlow 2.0 mit neuronalen Python-Netzen importiert und verwendet wird. TensorFlow ist eine Bibliothek für Datenmanipulation und maschinelles Lernen. TensorFlow 2.0 ist eine neue Version der Bibliothek, die die Leistung verbessert. Der Dozent erklärt auch, was ein Tensor ist und wie er Vektoren und Matrizen verallgemeinert.

  • 00:45:00 TensorFlow 2.0 führt Tensoren ein, die wichtige Objekte sind, die teilweise definierte Berechnungen speichern. Tensoren haben einen Datentyp und eine Form, und jeder Tensor hat einen Rang und einen Grad. Um den Rang eines Tensors zu bestimmen, verwenden Sie die TF-Punktrangmethode.

  • 00:50:00 In diesem Video stellt der Autor das Konzept der Tensorformen vor und erklärt, wie sie verwendet werden können, um die Anzahl der Elemente in einem Tensor zu identifizieren. Er führt auch das Konzept des Tensorrangs ein und zeigt, wie es verwendet werden kann, um die Anzahl der Dimensionen in einem Tensor zu steuern. Schließlich demonstriert er, wie ein Datenvektor mithilfe der TF-Punktumformungsfunktion in eine andere Form umgeformt wird.

  • 00:55:00 Dieses Video lehrt die Grundlagen von Tensoren, einschließlich ihrer verschiedenen Typen, wie man Tensoren erstellt und bewertet und wie man sie umformt.


Teil 2

  • 01:00:00 Dieses Video erklärt die Grundidee der linearen Regression, einem maschinellen Lernalgorithmus, der zur Vorhersage zukünftiger Werte aus vergangenen Daten verwendet wird. Lineare Regression wird verwendet, wenn Datenpunkte linear korrelieren.

  • 01:05:00 In diesem Lernprogramm erfahren Sie, wie Sie die lineare Regression verwenden, um neue Datenpunkte mithilfe einer Linie der besten Anpassung vorherzusagen.

  • 01:10:00 In diesem Video erklärt der Moderator, wie die lineare Regression verwendet wird, um Werte in einem Datensatz vorherzusagen. Sie erklären zunächst, wie die lineare Regression in drei Dimensionen funktioniert, und zeigen dann, wie man sie in TensorFlow codiert.

  • 01:15:00 Das Video stellt den Titanic-Datensatz vor und erklärt, warum die lineare Regression ein guter Algorithmus ist, um vorherzusagen, wer auf dem Schiff überleben wird. Der Datensatz wird in Pandas und Excel geladen.

  • 01:20:00 In diesem Video wird erklärt, wie ein Datenrahmen zum Speichern von Daten verwendet wird und wie der Punktoperator verwendet wird, um bestimmte Werte innerhalb des Datenrahmens nachzuschlagen.

  • 01:25:00 In diesem Video erklärt der Kursleiter die Grundlagen von Tensoren und wie sie beim maschinellen Lernen verwendet werden. Anschließend zeigt er, wie man ein Modell mit einem Trainingsdatensatz und einem Testdatensatz erstellt.

  • 01:30:00 In diesem Video erklärt der Autor, wie man Feature-Spalten in einem Datensatz mit TensorFlow erstellt. Diese Spalten werden zum Trainieren eines linearen Schätzers oder Modells verwendet.

  • 01:35:00 In diesem Video erklärt der Kursleiter, wie man Feature-Spalten und numerische Spalten in einem TensorFlow-Modell erstellt und wie man das Modell mit Stapeln trainiert.

  • 01:40:00 Der TF 2.0 Complete Course erklärt, wie man ein neuronales Netzwerk mit Python erstellt und wie man das Netzwerk trainiert und evaluiert. Das Video-Tutorial zeigt, wie Sie eine Eingabefunktion erstellen und die Funktion verwenden, um Bilder des Panda-Datensatzes zu erstellen.

  • 01:45:00 In dieser 1-Absatz-Zusammenfassung wird erläutert, wie ein TensorFlow-Modell verwendet wird, um Vorhersagen für einen Datensatz zu treffen. Zunächst erstellen Sie das Modell mithilfe der Syntax aus dem Estimator-Modul. Als Nächstes trainieren Sie das Modell mit einem linearen Klassifikatorobjekt. Abschließend bewerten Sie das Modell und drucken die Genauigkeit aus.

  • 01:50:00 Dieses Video behandelt die Verwendung von TensorFlow zum Erstellen neuronaler Netze zum Vorhersagen von Ergebnissen, einschließlich des Durchlaufens der Vorhersagen und des Zugriffs auf die tatsächlichen Werte.

  • 01:55:00 In diesem Tutorial zeigt der Autor, wie man mit TensorFlow ein neuronales Netzwerk trainiert, um die Blumenart aus einem Datensatz vorherzusagen. Der Autor erklärt auch die verschiedenen Arten von neuronalen Netzen und wie man Eingabefunktionen verwendet, um ihre Leistung zu optimieren.


Teil 3

  • 02:00:00 In diesem Video geht der Autor durch den Prozess der Erstellung eines neuronalen Netzwerks in TensorFlow 2.0 und erklärt die verschiedenen verfügbaren Modelle. Anschließend zeigen sie, wie das neuronale Netz aufgebaut und mit einem dnn-Klassifikator trainiert wird.

  • 02:05:00 In diesem Video wird eine Trainings- und Bewertungsfunktion für ein neuronales Netzwerk erstellt. Ein Lambda wird verwendet, um die Funktion in einer Zeile zu definieren. Die Funktion wird dann verwendet, um das neuronale Netzwerk zu trainieren. Die Genauigkeit des trainierten neuronalen Netzes wird angezeigt.

  • 02:10:00 Das Video zeigt, wie die Vorhersagefunktion von TensorFlow verwendet wird, um die Klasse einer Blume vorherzusagen. Der Benutzer gibt zuerst die Merkmale der Blume ein, wie z. B. Kelchblattlänge, Blütenblattlänge und -breite. Dann erstellen sie ein prädiktives Wörterbuch und füttern es mit den Funktionen. TensorFlow sagt dann die Klasse der Blume basierend auf den Eingabemerkmalen voraus. Schließlich druckt der Benutzer die Vorhersage und die Wahrscheinlichkeit der Vorhersage aus.

  • 02:15:00 Dieses Video behandelt die Grundlagen neuronaler Netze, einschließlich Klassifizierung und Clustering.

  • 02:20:00 Das Video erläutert die Verwendung von neuronalen Python-Netzen zum Clustern von Datenpunkten. Nachdem Sie alle Datenpunkte beschriftet haben, erklärt das Video, wie Sie den nächstgelegenen Massenschwerpunkt zwischen allen Clustern finden und wie Sie Datenpunkte dem nächstgelegenen Cluster neu zuweisen.

  • 02:25:00 In diesem Video behandelt der Kursleiter die Grundlagen von neuronalen Netzen und Hidden-Markov-Modellen. Er beginnt mit der Erörterung von Datentypen, die beim maschinellen Lernen verwendet werden, wie z. B. k-means und lineare Regression. Anschließend erläutert er ein grundlegendes Wettermodell und wie man ein Hidden-Markov-Modell erstellt, um das Wetter an einem bestimmten Tag vorherzusagen.

  • 02:30:00 In diesem Video-Tutorial stellt der Moderator die Grundlagen von TensorFlow vor, einschließlich seiner Verwendung für neuronale Netze. Anschließend demonstriert er, wie man ein einfaches Wettermodell in TensorFlow erstellt, indem er zwei Zustände und zwei Wahrscheinlichkeitsverteilungen verwendet. Der Moderator demonstriert dann, wie das Modell verwendet wird, um die Temperatur für die nächste Woche vorherzusagen.

  • 02:35:00 Dieses Video zeigt, wie man mit TensorFlow ein neuronales Netzwerk erstellt, um die durchschnittliche Temperatur an jedem Tag einer bestimmten Sequenz vorherzusagen. Das Video erklärt, wie Sie die notwendigen Module importieren und ein Modell erstellen. Das Modell sagt die Durchschnittstemperatur am ersten Tag der Sequenz korrekt voraus, aber an den darauffolgenden Tagen die falsche Temperatur. Nach der Behebung des Problems zeigt das Video, wie ein anderes TensorFlow-Modul verwendet wird, um die Durchschnittstemperatur an jedem Tag der Sequenz erfolgreich vorherzusagen.

  • 02:40:00 Dieses Video beschreibt, wie ein Modell in TensorFlow 2.0 mit dem Mean-Befehl ausgeführt wird. Dies ist ein hilfreicher Befehl zum Vergleichen der erwarteten Werte von Variablen in einem Modell.

  • 02:45:00 In diesem Modul diskutiert der Kursleiter neuronale Netze und ihre Funktionsweise und erklärt, wie ein neuronales Netz aus Schichten besteht. Er wird auch erörtern, wie eine Eingabeschicht Rohdaten erhält und wie ein neuronales Netzwerk diese Daten klassifizieren könnte.

  • 02:50:00 Der „TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial“ bietet eine Schritt-für-Schritt-Anleitung zum Erstellen eines grundlegenden neuronalen Netzwerks in Python. Die erste Schicht ist ein Eingabeneuron, gefolgt von einer verborgenen Schicht und dann einer Ausgabeschicht. Die Ausgabeschicht hat für jede Eingabeinformation ein Neuron, und die Neuronen in der verborgenen Schicht sind miteinander und mit der Ausgabeschicht verbunden. Die verborgene Schicht ist mit der Eingabeschicht und der Ausgabeschicht verbunden, was als dicht verbundenes neuronales Netzwerk bezeichnet wird.

  • 02:55:00 Dieses Video-Tutorial demonstriert die Verwendung von Python für neuronale Netze, zeigt, wie man einen Zufallszahlengenerator erstellt und ein neuronales Netz trainiert. Das Video behandelt auch, wie Neuronen und Gewichte verbunden werden, wie Informationen durch das Netzwerk geleitet werden und wie der Ausgabewert eines Neurons berechnet wird.


Teil 4

  • 03:00:00 In diesem Video wird ein neuronales Python-Netzwerk mit Hilfe einer Aktivierungsfunktion erklärt. Diese Funktion quetscht/quadriert negative und positive Zahlen, sodass das Netzwerk leichter zwischen roten und blauen Farben unterscheiden kann.

  • 03:05:00 In diesem Video erklärt der Autor das Konzept einer Aktivierungsfunktion und wie sie die Ausgabe eines neuronalen Netzwerks beeinflusst. Er erklärt auch, wie eine Aktivierungsfunktion verwendet werden kann, um Komplexität in das Netzwerk einzuführen. Anschließend diskutiert der Autor eine Verlustfunktion, die zum Trainieren eines neuronalen Netzes verwendet wird.

  • 03:10:00 Dieses Video stellt das Konzept neuronaler Netze vor und beschreibt die drei Hauptverlustfunktionen, die beim Training neuronaler Netze verwendet werden: mittlerer quadratischer Fehler, mittlerer absoluter Fehler und Gelenkverlust. Anschließend wird der Gradientenabstieg erläutert, der Algorithmus, der zur Optimierung der Leistung neuronaler Netzwerke verwendet wird.

  • 03:15:00 Dieses Video-Tutorial führt in die Grundlagen von TensorFlow ein, einschließlich der Erstellung und des Trainings eines neuronalen Netzwerks. Das Video behandelt auch die Verwendung eines Optimierungsalgorithmus für neuronale Netzwerke und erklärt, wie die Leistung eines neuronalen Netzwerks bewertet wird.

  • 03:20:00 In diesem Video demonstriert der Kursleiter, wie man mit TensorFlow ein neuronales Netzwerk in Python trainiert. Der in der Demonstration verwendete Datensatz enthält Bilder verschiedener Arten von Kleidung, und der Ausbilder zeigt, wie die Trainings- und Testfunktionen in TensorFlow verwendet werden, um die Vorhersagen des Netzwerks zu validieren.

  • 03:25:00 In diesem Video beschreibt der Kursleiter die Grundlagen eines neuronalen Netzwerks, einschließlich der Schichten und Knoten in einem neuronalen Netzwerk und der Aktivierungsfunktion, die verwendet wird, um den Ausgabewert für ein Neuron zu bestimmen. Der Kursleiter beschreibt auch, wie man ein Modell in TensorFlow erstellt und wie man das Modell ausführt.

  • 03:30:00 In diesem 1-stündigen Video-Tutorial behandelt der Ersteller die Grundlagen von TensorFlow, einschließlich der Architektur und Funktion eines neuronalen Netzwerks. Anschließend zeigen sie, wie man ein neuronales Netz kompiliert, anpasst und schließlich auf einem Trainingsset trainiert. Overfitting wird erklärt und die Genauigkeit des trainierten Modells mit der eines Testsets verglichen.

  • 03:35:00 In diesem Video erklärt der Kursleiter, wie neuronale Netze überangepasst werden können und wie die Generalisierung durch Anpassen von Hyperparametern verbessert werden kann. Anschließend demonstriert er, wie man Vorhersagen auf Testbildern treffen kann, indem er das vorhergesagte Objekt aus dem neuronalen Netzwerk verwendet.

  • 03:40:00 In diesem Video-Tutorial erfahren Sie, wie Sie mit TensorFlow ein Convolutional Neural Network für Deep Computer Vision aufbauen. Das Video behandelt, was ein Convolutional Neural Network ist, wie es funktioniert und wie vortrainierte Modelle verwendet werden.

  • 03:45:00 Das Video erklärt den Unterschied zwischen einem dichten neuronalen Netzwerk und einem Convolutional Neural Network und erklärt, dass ein Convolutional Neural Network lokale Muster statt globaler Muster lernt.

  • 03:50:00 Das Convolutional Neural Network (CNN) ist ein maschineller Lernalgorithmus, der verwendet wird, um Bilder zu analysieren und zu verstehen. Das Convolutional Neural Network besteht aus einer Reihe verschiedener Schichten, die zum Analysieren und Verstehen des Bildes verwendet werden. Die erste Ebene wird verwendet, um das Vorhandensein bestimmter Filter im Bild zu identifizieren.

  • 03:55:00 In diesem Video erklärt der Kursleiter, wie man mithilfe des Kreuzprodukts einen Filter in einem Bild findet. Der Filter wird basierend darauf bestimmt, wie ähnlich die Pixelwerte zwischen dem Bild und dem Filter sind.
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
  • 2020.03.03
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this full tutorial course for beginners. This course is designed for Python programmers looking to enhance their knowledge...
 

TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial (Teile 5-7)



TensorFlow 2.0 Complete Course – Tutorial zu neuronalen Python-Netzen für Anfänger


Teil 5

  • 04:00:00 Das Video erläutert, wie Convolutional Neural Networks funktionieren und wie Padding und Stride dazu beitragen, das Netzwerk benutzerfreundlicher zu machen.

  • 04:05:00 In diesem Video erklärt der Kursleiter, wie Pooling-Operationen wie Min und Max verwendet werden, um die Dimensionalität einer Feature-Map zu reduzieren. Anschließend demonstriert er, wie dies geschieht, indem er zeigt, wie man Werte aus einer Merkmalskarte abtastet und eine Merkmalskarte mit reduzierter Dimensionalität generiert. Als Nächstes zeigt der Kursleiter, wie eine Zwei-mal-zwei-Pooling-Operation verwendet wird, um die Größe der Feature-Map um die Hälfte zu reduzieren. Anschließend demonstriert er, wie eine Max-Pooling-Operation verwendet wird, um Features in einem Bereich zu finden. Anschließend demonstriert er, wie eine durchschnittliche Pooling-Operation verwendet wird, um Features in einem Bereich zu finden. Schließlich zeigt der Kursleiter, wie Kerris verwendet wird, um ein Convolutional Neural Network zu erstellen.

  • 04:10:00 In diesem Video-Tutorial zeigt der Kursleiter, wie man mit Python ein Convolutional Neural Network (CNN) erstellt. Die erste Schicht des CNN ist eine Max-Pooling-Schicht, die die Dimensionalität der Eingabedaten reduziert. Die nächsten beiden Schichten sind eine Faltungsschicht und eine Max-Pooling-Schicht. Die letzte Schicht ist eine dichte Schicht, die die Eingabedaten klassifiziert.

  • 04:15:00 In diesem Video wird erklärt, wie die Datenaugmentation verwendet werden kann, um die Leistung eines maschinellen Lernmodells zu verbessern. Bei der Datenerweiterung wird ein Bild modifiziert, um es den Trainingsdaten ähnlicher zu machen, wodurch die Verallgemeinerungsfähigkeit des Modells verbessert werden kann.

  • 04:20:00 Dieses Video zeigt, wie vortrainierte Modelle in TensorFlow 2.0 verwendet werden, um die Genauigkeit von Klassifizierungen zu verbessern.

  • 04:25:00 In diesem Video erklärt der Moderator, wie man ein vortrainiertes TensorFlow-Modell verwendet, um Bilder verschiedener Tiere zu erkennen. Zuerst erklären sie, wie man das Modell in TensorFlow lädt und die Bilder auf die gleiche Größe skaliert. Als Nächstes zeigen sie, wie das Modell auf die Trainings- und Validierungsdatensätze angewendet wird. Schließlich demonstrieren sie, wie man das Modell verwendet, um Bilder von Tieren zu erkennen.

  • 04:30:00 In diesem Video demonstriert der Ausbilder, wie man mit TensorFlow 2.0 ein neuronales Netzwerk für das Training mit einem Datensatz von 1000 Klassen von Hunden und Katzen erstellt. Das Netzwerk wird mit einem Basismodell vortrainiert und dann wird eine Vorhersageschicht hinzugefügt. Der Kursleiter zeigt auch, wie die trainierbaren Parameter eines Layers eingefroren werden, damit das Netzwerk nicht erneut trainiert wird, wenn es für die Vorhersage verwendet wird. Das Modell wird dann evaluiert und auf einem neuen Datensatz trainiert.

  • 04:35:00 Dieses Video erklärt, wie man mit TensorFlow ein Modell trainiert, das die Klasse eines Bildes vorhersagen kann. Das Video behandelt grundlegende Konzepte wie Deep Learning und Convolutional Neural Networks.

  • 04:40:00 Dieses Video erklärt, wie rekurrente neuronale Netze verwendet werden können, um natürliche Sprache zu verstehen und zu verarbeiten. Im ersten Abschnitt wird erläutert, was die Verarbeitung natürlicher Sprache ist und wie sich rekurrente neuronale Netze von regulären neuronalen Netzen unterscheiden. Im zweiten Abschnitt wird erläutert, wie Textdaten in numerische Daten konvertiert werden, die von einem rekurrenten neuronalen Netzwerk verwendet werden können. Im letzten Abschnitt wird erläutert, wie rekurrente neuronale Netze verwendet werden, um Stimmungsanalysen und die Textgenerierung mit Schrägstrichen durchzuführen.

  • 04:45:00 Die erste Methode, die wir besprechen werden, heißt Bag of Words. Dieser Algorithmus betrachtet einen Satz und wandelt ihn in eine numerische Darstellung um, bei der jedes Wort im Satz mit einer Zahl codiert ist. Dies kann für Aufgaben nützlich sein, bei denen nur das Vorhandensein eines Wortes ausreicht, um die Bedeutung des Satzes zu bestimmen. Bei komplexeren Eingaben kann diese Technik jedoch versagen.

  • 04:50:00 Das Video diskutiert die Verwendung einer Tüte mit Wörtern, die für Text kodiert werden, sowie einige andere Kodierungsmethoden. Ein Problem bei diesem Ansatz besteht darin, dass die Reihenfolge der Wörter verloren geht, was es für ein maschinelles Lernmodell schwierig machen kann, Stimmungen im Text korrekt zu identifizieren.

  • 04:55:00 In diesem Video erklärt der Kursleiter, wie Wörterinbettungen funktionieren und wie sie verwendet werden können, um die Genauigkeit der Vorhersagen eines neuronalen Netzwerks zu verbessern. Anschließend stellt der Dozent rekurrente neuronale Netze vor, eine Art neuronaler Netze, die besonders gut Textdaten verarbeiten können.


Teil 6

  • 05:00:00 Ein rekurrentes neuronales Netzwerk ist eine Art neuronales Netzwerk, das Daten in verschiedenen Zeitschritten verarbeitet und einen internen Speicher verwaltet. Dadurch kann das Netzwerk nach und nach ein Verständnis für einen Text oder eine Eingabe aufbauen.

  • 05:05:00 Dieses Video erklärt die Grundlagen von TensorFlow 2.0, das eine Beschreibung einer Schicht eines einfachen rekurrenten neuronalen Netzwerks (RNN) und einer Schicht eines langen Kurzzeitgedächtnisses (LSTM) enthält. Die LSTM-Schicht soll der RNN-Schicht helfen, sich an die vorherigen Sätze in einer Textsequenz zu erinnern, was mit zunehmender Sequenzlänge zunehmend schwieriger werden kann.

  • 05:10:00 Der TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial behandelt die Grundlagen von neuronalen Netzwerken, einschließlich rekurrenter neuronaler Netzwerke, die für Stimmungsanalysen in Filmkritiken verwendet werden.

  • 05:15:00 In diesem Video zeigt der Moderator, wie eine Textüberprüfung mit Python auf eine bestimmte Länge aufgefüllt wird, und beschreibt, wie das Modell trainiert wird. Sie erwähnen auch, dass der Trainingsprozess durch die Verwendung einer GPU beschleunigt wird.

  • 05:20:00 In diesem Video bietet der Autor einen vollständigen Kurs zum Unterrichten von neuronalen Python-Netzen für Anfänger. Der Kurs beginnt mit einer Einführung in neuronale Netze, gefolgt von einem Tutorial zum Trainieren eines neuronalen Netzes mit TensorFlow 2.0. Sobald das neuronale Netz trainiert ist, demonstriert der Autor, wie man Vorhersagen für einen Filmrezensionsdatensatz trifft. Die Ergebnisse zeigen, dass das neuronale Netzwerk nicht genau genug ist, und der Autor stellt eine Funktion bereit, um Text in Tokens zu codieren, die das neuronale Netzwerk verarbeiten kann. Der Autor bietet auch eine Dekodierungsfunktion, um Text wieder in Wörter umzuwandeln.

  • 05:25:00 Diese 1-Absatz-Zusammenfassung erklärt, wie die Decodierung von Ganzzahlen codierten Text für eine Filmkritik in Python funktioniert. Diese Funktion wandelt eine Folge von Wörtern in ganze Zahlen um und verwendet dann die Textfunktion ENCODE, um die ganzen Zahlen zu codieren. Schließlich wird das Modell verwendet, um die Überprüfung für einen bestimmten Textabschnitt vorherzusagen. Die erste Überprüfung wird voraussichtlich zu 72 % positiv ausfallen, während die zweite Überprüfung zu 23 % positiv ausfallen wird.

  • 05:30:00 In diesem letzten Video des TensorFlow 2.0 Complete Course wird ein wiederkehrendes neuronales Netzwerk erstellt, um ein Theaterstück basierend auf einem Shakespeare-Text zu generieren. Die Datei wird geladen, eingelesen und die Länge des Textes berechnet. Die ersten 250 Zeichen werden gelesen und analysiert, um das Codierungsschema zu bestimmen. Zeichen werden als Ganzzahlen codiert und das Vokabular wird erstellt. Der Index jedes Zeichens wird berechnet und im Vokabular gespeichert.

  • 05:35:00 In diesem Video lehrt der Kursleiter, wie man mit TensorFlow ein neuronales Netzwerk mit einem Textdatensatz trainiert. Der Ausbilder wandelt zuerst den Textdatensatz in Ganzzahlen um und trainiert dann das neuronale Netzwerk unter Verwendung einer Folge von 101 Trainingsbeispielen pro Epoche.

  • 05:40:00 In diesem Video wird erklärt, wie Sie ein Modell in TensorFlow 2.0 mithilfe der integrierten Funktion „Modell erstellen“ erstellen. Das Modell wird mit einem Satz von 64 Trainingsbeispielen trainiert und dann gespeichert, sodass Vorhersagen für eine Eingabesequenz getroffen werden können.

  • 05:45:00 Der Autor beschreibt die Schritte, die zum Trainieren eines neuronalen Netzwerks mit TensorFlow erforderlich sind. Zunächst beschreibt der Autor die Eingabe- und Ausgabeformen des neuronalen Netzes. Als nächstes erklärt der Autor, wie man eine Verlustfunktion erstellt, um das neuronale Netzwerk zu optimieren. Abschließend demonstriert der Autor, wie man das Modell verwendet, um eine Folge von 100 Proben vorherzusagen.

  • 05:50:00 In diesem Video wird TensorFlow ausführlich erklärt, einschließlich der Funktionsweise mit rekurrenten neuronalen Netzen. Das Video behandelt auch, wie man eine Verlustfunktion erstellt, um zu bestimmen, wie gut ein Modell funktioniert.

  • 05:55:00 Dieses Video stellt die TensorFlow 2.0-Bibliothek zum Trainieren neuronaler Netze vor und zeigt, wie ein Modell mit einer neuen Stapelgröße von 1 neu erstellt wird. Das Video enthält auch eine Demonstration, wie Text mit TensorFlow generiert wird.


Teil 7

  • 06:00:00 In diesem Video, TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial, erklärt der Benutzer, wie eine Textsequenz mithilfe eines rekurrenten neuronalen Netzwerks generiert wird. Der erste Schritt besteht darin, den Status des Netzwerks zurückzusetzen und eine Liste mit Vorhersagen zu erstellen. Dann trainiert der Benutzer das Netzwerk mit einem B-Movie-Skript und zeigt die Ergebnisse.

  • 06:05:00 Dieses Video-Tutorial behandelt die Grundlagen von TensorFlow 2.0, einschließlich der Erstellung eines einfachen neuronalen Netzwerks in Python. Das Video fährt dann mit der Erörterung des bestärkenden Lernens fort, das eine komplexere, fortgeschrittenere Technik ist. Das Video schließt mit einer Diskussion der Terminologie und einer Zusammenfassung dessen, was bestärkendes Lernen ist.

  • 06:10:00 Reinforcement Learning ist eine Methode, KI zu trainieren, Aufgaben in einer Umgebung zu erledigen, indem sie für Aktionen belohnt wird, die zu einer verbesserten Leistung führen. Das Ziel des verstärkenden Lernens ist es, eine Belohnung zu maximieren, die alles sein kann, was der Agent in der Umgebung zu erreichen versucht. In diesem Kurs behandelt der Kursleiter die Konzepte von Zustand, Aktion und Belohnung.

  • 06:15:00 Das Ziel des Agenten in diesem Beispiel ist es, seine Belohnung in der Umgebung zu maximieren, indem er eine Cue-Tabelle lernt, die die Belohnung für verschiedene Aktionen in verschiedenen Zuständen vorhersagt.

  • 06:20:00 TensorFlow ist eine Bibliothek für maschinelles Lernen, mit der Benutzer Modelle erstellen können, die aus Daten lernen können. In diesem Video erklärt der Kursleiter, wie Q-Learning funktioniert und wie es verwendet wird, um das Verhalten eines Agenten in einer simulierten Umgebung zu optimieren. Anschließend erklärt er, wie die Cue-Tabelle verwendet wird, um das Verhalten des Agenten zu optimieren.

  • 06:25:00 In diesem Video lernen wir die neuronalen Netze kennen, die in einem Anfänger-Tutorial für TensorFlow 2.0 verwendet werden. Der erste Teil des Videos behandelt die Grundlagen neuronaler Netze und wie sie funktionieren. Anschließend untersuchen wir, wie man einen einfachen Agenten erstellt, der lernt, in einer 3D-Umgebung zu navigieren, indem er entweder die aktuelle Cue-Tabelle verwendet oder zufällig eine Aktion auswählt. Im zweiten Teil des Videos werden die Formeln erläutert, die zum Aktualisieren der Cue-Tabelle des Agenten verwendet werden.

  • 06:30:00 Das Video „TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial“ stellt die Programmiersprache TensorFlow 2.0 und die zugehörigen Datenstrukturen und Algorithmen für neuronale Netze vor, die eine Art maschinelles Lernmodell darstellen. Das Video zeigt dann, wie man ein einfaches neuronales Netzwerkmodell mit der OpenAI-Fitnessstudio-Software erstellt und trainiert.

  • 06:35:00 Der TensorFlow 2.0 Complete Course beginnt mit der Einführung des Actor-Critic-Modells, das zum Trainieren eines neuronalen Netzes verwendet wird. Anschließend wird gezeigt, wie Sie mit NumPy und TensorFlow eine gefrorene Seeumgebung erstellen. Der Kurs behandelt die Verwendung von q learning zur Lösung des Navigationsproblems in der Umgebung.

  • 06:40:00 Dieses Video bietet ein vollständiges Tutorial zur Verwendung von TensorFlow 2.0 zum Erstellen eines neuronalen Netzwerks für Anfänger. Zuerst erklärt der Ausbilder die Epsilon-Variable und wie sie die Wahrscheinlichkeit beeinflusst, dass der Agent eine zufällige Aktion ausführt. Als Nächstes zeigt der Kursleiter, wie eine Belohnungsliste erstellt wird und wie die q-Werte des Agenten mithilfe der Belohnungsformel aktualisiert werden. Abschließend zeigt der Ausbilder, wie der aktuelle Status des Agenten festgelegt und überprüft wird, ob er die Erkundung der Umgebung abgeschlossen hat.

  • 06:45:00 In diesem letzten Modul des „TensorFlow 2.0 Complete Course – Python Neural Networks for Beginners Tutorial“ erklärt der Kursleiter, wie die Cue-Tabelle zum Anpassen des Epsilon-Werts verwendet wird, um die durchschnittliche Belohnung langsam zu erhöhen, während sich der Agent bewegt ein Labyrinth.

  • 06:50:00 Dieses Video-Tutorial stellt die Grundlagen von TensorFlow vor, einer leistungsstarken Bibliothek für maschinelles Lernen. Nach der Einführung von TensorFlow und seinen Schlüsselkonzepten führt das Tutorial die Zuschauer durch eine Reihe von Tutorials zu verschiedenen maschinellen Lernaufgaben wie Deep Learning und Reinforcement Learning.
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial
  • 2020.03.03
  • www.youtube.com
Learn how to use TensorFlow 2.0 in this full tutorial course for beginners. This course is designed for Python programmers looking to enhance their knowledge...
 

Keras mit TensorFlow-Kurs – Tutorial zu Python Deep Learning und neuronalen Netzen für Anfänger



Keras mit TensorFlow-Kurs – Tutorial zu Python Deep Learning und neuronalen Netzen für Anfänger

Der Kurs „Keras mit TensorFlow“ konzentriert sich darauf, Benutzern die Verwendung von Keras beizubringen, einer in Python geschriebenen und in TensorFlow integrierten neuronalen Netzwerk-API. Es behandelt die Grundlagen der Organisation und Vorverarbeitung von Daten, den Aufbau und das Training künstlicher neuronaler Netze sowie die Bedeutung der Datennormalisierung und der Erstellung von Validierungssätzen. Der Kurs bietet auch Ressourcen wie Video- und Textdateien und eine Anleitung zum Einrichten einer GPU für mehr Effizienz. Benutzer lernen auch, wie Modelle gespeichert und geladen werden, einschließlich der Optionen, alles zu speichern, nur die Architektur oder nur die Gewichte. Der Kurs ist für Personen mit grundlegenden Programmierkenntnissen und etwas Erfahrung mit Python geeignet.

Der zweite Abschnitt des Kurses „Keras mit TensorFlow“ behandelt eine Vielzahl von Themen, beginnend mit dem Laden von Gewichten in ein neues Keras-Modell mit derselben Architektur wie das ursprüngliche Modell. Der Ausbilder erklärt dann, wie Bilddaten vorbereitet und vorverarbeitet werden, um ein konvolutionelles neuronales Netzwerk zu trainieren, um Bilder entweder als Katzen oder Hunde zu klassifizieren, bevor er mit dem Erstellen und Trainieren eines sequentiellen Keras-Modells für das erste CNN fortfährt. Der Abschnitt enthält Details zum Trainieren des Modells mithilfe eines Generators, der Beschriftungsdaten zur Validierung während der Modellanpassung enthält, und zum Zeichnen einer Konfusionsmatrix zum Bewerten der Modellleistung. Abschließend wird gezeigt, wie ein vortrainiertes VGG 16-Modell feinabgestimmt werden kann, um Bilder von Katzen und Hunden zu klassifizieren, seine Vorverarbeitung anzupassen und es auch zu trainieren.

Im dritten Abschnitt stellt der Dozent MobileNets vor, eine kleinere und schnellere Alternative zu komplexeren Modellen. Sie demonstrieren das Herunterladen und Verwenden von MobileNets in einem Jupyter Notebook, das Organisieren eines Datensatzes für Zeichensprachenziffern und die Feinabstimmung des Modells für eine neue Klassifizierungsaufgabe. Der Kursleiter betont, wie wichtig es ist, den Iterator korrekt auf den Speicherort des Datensatzes auf der Festplatte zu richten, die Anzahl der Schichten, die während des Trainings einzufrieren sind, und die Hyperparameter abzustimmen, um Überanpassungsprobleme zu reduzieren. Der letzte Abschnitt stellt die Datenerweiterung und ihr Potenzial zur Verringerung der Überanpassung und zur Vergrößerung des Datensatzes vor und enthält Anweisungen zu den verschiedenen Arten der Erweiterung (z. B. Verschieben, Spiegeln, Drehen), zum Speichern erweiterter Bilder auf der Festplatte und zum erneuten Hinzufügen zum Training Satz.

  • 00:00:00 In diesem Abschnitt wird erklärt, dass sich der Kurs darauf konzentriert, die Verwendung von Keras zu lehren, einer in Python geschriebenen und in TensorFlow integrierten neuronalen Netzwerk-API. Es beginnt mit den Grundlagen der Organisation und Vorverarbeitung von Daten und geht dann weiter zum Aufbau und Training künstlicher neuronaler Netze. Der Kurs empfiehlt einige grundlegende Programmierkenntnisse und etwas Erfahrung mit Python, gibt aber auch kurze Einführungen in jedes Deep-Learning-Konzept, bevor die Code-Implementierung durchgeht. Der Kurs bietet auch Video- und Textressourcen, einschließlich der im Kurs verwendeten Codedateien, die regelmäßig getestet und gepflegt werden, und den Mitgliedern des Deep Lizard Hive Mind steht der Download-Zugriff auf diese Dateien zur Verfügung. Es wird weiter erklärt, dass Keras mit dem Fokus darauf entwickelt wurde, schnelle Benutzerexperimente zu ermöglichen, und durch die Integration mit TensorFlow ist Keras nun vollständig in die TensorFlow-API integriert. Es werden Empfehlungen gegeben, mehrere neuronale Netzwerk-APIs zu lernen und nicht ewig bei einer zu bleiben, um Erfahrungen und Vergleiche zwischen ihnen zu demonstrieren, wodurch der Kandidat wertvoller wird.

  • 00:05:00 In diesem Abschnitt des Kurses „Keras mit TensorFlow“ wird die Notwendigkeit einer GPU besprochen, und es wird darauf hingewiesen, dass sie für den Kurs nicht erforderlich ist. Wenn ein Benutzer jedoch eine GPU verwenden möchte, steht eine Anleitung zur Verfügung, wie die GPU für die Arbeit mit TensorFlow eingerichtet wird. Es wird empfohlen, den Kurs zuerst mit einer CPU zu durchlaufen und dann die GPU für mehr Effizienz und Geschwindigkeit einzurichten. Im nächsten Abschnitt wird erläutert, wie numerische Daten für das künstliche neuronale Netz aufbereitet und verarbeitet werden und welche unterschiedlichen Formate für Daten das sequentielle Modell in Keras erwartet. Die Fit-Funktion erwartet, dass sich die Eingabedaten (x) in einem NumPy-Array, einem TensorFlow-Tensor, einem Dikt-Mapping, einem TF-Daten-Dataset oder einem Keras-Generator befinden. Die Zieldaten (y) müssen ebenfalls das gleiche Format wie x haben.

  • 00:10:00 In diesem Abschnitt erklärt der Kursleiter, dass Datennormalisierungs- oder Standardisierungstechniken Daten in ein Format bringen können, aus dem das Deep-Learning-Modell leichter lernen kann. Der Kursleiter verwendet einen einfachen numerischen Datensatz als Beispiel, bei dem ein experimentelles Medikament an Personen im Alter von 13 bis 100 Jahren getestet wurde und etwa 95 % der Patienten, die in der älteren Bevölkerung, 65 oder älter, waren, Nebenwirkungen hatten, während sie etwa 95 Jahre alt waren % der Patienten unter 65 Jahren hatten keine Nebenwirkungen. Der Ausbilder durchläuft dann eine for-Schleife, die zufällige Ganzzahlen generiert, die das reale Szenario von Patienten nachahmen, bei denen entweder Nebenwirkungen aufgetreten sind oder nicht, und fügt diese Proben und die entsprechenden Bezeichnungen dann zwei separaten Listen hinzu.

  • 00:15:00 In diesem Abschnitt des Videos fasst der Kursleiter den Prozess der Generierung und Vorbereitung von Daten für ein neuronales Netzwerk unter Verwendung von NumPy-Arrays in der in TensorFlow integrierten Keras-API zusammen. Sie erklären, dass die Probenliste Altersgruppen enthält und die Etikettenliste Nullen und Einsen enthält, die Nebenwirkungen oder keine Nebenwirkungen darstellen, um jedem Alter zu entsprechen. Die Daten werden dann verarbeitet und in das NumPy-Array-Format transformiert, das die Fit-Funktion erwartet, und die Daten werden mit der Shuffle-Funktion gemischt, um jede auferlegte Reihenfolge aus dem Datengenerierungsprozess zu entfernen. Darüber hinaus werden die Daten von einer Skala von 13 bis 100 auf eine Skala von null bis eins umskaliert und für die Anpassungstransformationsfunktion neu geformt, um eindimensionale Daten zu akzeptieren. Schließlich demonstriert der Kursleiter, wie auf diesen Daten ein künstliches neuronales Netzwerk aufgebaut wird, indem ein sequentielles Modell aus der Keras-API verwendet wird.

  • 00:20:00 In diesem Abschnitt des Videos erklärt der Moderator, wie ein neuronales Netzwerkmodell mithilfe der in TensorFlow integrierten Keras-API erstellt wird. Das Modell ist ein sequentielles Modell und wird als Instanz der Sequential-Klasse erstellt. Die erste dichte Schicht bildet die erste verborgene Schicht und hat 16 Einheiten mit der ReLU-Aktivierungsfunktion. Die zweite dichte Schicht bildet die zweite verborgene Schicht und hat 32 Einheiten mit der ReLU-Aktivierungsfunktion. Die letzte Schicht ist die Ausgabeschicht mit zwei Einheiten, die die beiden möglichen Ausgabeklassen darstellen. Der Moderator erklärt, dass auf die Ausgabeschicht die Softmax-Funktion folgt, die Wahrscheinlichkeiten für jede Ausgabeklasse angibt. Der Moderator demonstriert dann, wie die Funktion model.summary() verwendet wird, um eine visuelle Zusammenfassung der Modellarchitektur anzuzeigen.

  • 00:25:00 In diesem Abschnitt lernen wir, wie man ein neuronales Netzwerk mit den Daten trainiert, die in den vorherigen Abschnitten erstellt und verarbeitet wurden. Nachdem wir unser Modell erstellt haben, kompilieren wir es mit dem entsprechenden Verlust, Optimierer und Metriken. Anschließend spezifizieren wir die Eingabedaten, Zieldaten, die Stapelgröße und die Anzahl der Epochen für das Training in der Anpassungsfunktion. Das Training beginnt und wir sehen, dass unser einfaches Modell innerhalb von 30 Epochen ohne großen Aufwand eine Genauigkeit von 94 % erreicht. Dies ist ein großartiges Beispiel dafür, wie einfach der Einstieg in Keras ist.

  • 00:30:00 In diesem Abschnitt wird das Konzept eines Validierungssatzes im Zusammenhang mit dem Training von Modellen für maschinelles Lernen erläutert und die Bedeutung seiner Verwendung hervorgehoben. Durch die Erstellung eines Validierungssatzes können Benutzer abschätzen, wie gut ein Modell Daten verallgemeinert, mit denen es nicht trainiert wurde. Eine Überanpassung kann vermieden werden, indem die Genauigkeit der Ergebnisse des Validierungssatzes untersucht wird, die nicht wesentlich niedriger sein sollte als die der Trainingsdaten. Zwei Methoden zum Erstellen und Verwenden von Validierungssätzen mit einem sequentiellen Keras-Modell werden diskutiert, wobei die zweite Methode es Keras ermöglicht, den Validierungssatz für den Benutzer zu erstellen.

  • 00:35:00 In diesem Abschnitt erläutert das Video, wie ein Validierungssatz aus dem Trainingssatz erstellt wird, indem der Validierungsteilungsparameter verwendet wird, der einen bestimmten Prozentsatz der Trainingsdaten in einen Validierungssatz aufteilt. Das Video weist darauf hin, dass der Validierungssatz vollständig aus dem Trainingssatz herausgehalten wird und bei jedem Aufruf der Anpassungsfunktion spontan erstellt wird. Es ist auch wichtig, die Trainingsdaten zu mischen, bevor sie an die Anpassung übergeben werden, um sicherzustellen, dass der Validierungssatz nicht nur die letzten X Prozent der nicht gemischten Daten umfasst. Das Video erklärt auch, wie Sie das Validierungsset verwenden, um zu überprüfen, ob das Modell überangepasst oder gut generalisiert, und erläutert den nächsten Schritt der Verwendung eines Testsets für die Inferenz.

  • 00:40:00 In diesem Abschnitt erklärt der Kursleiter den Prozess der Inferenz beim Deep Learning. Inferenz ist der Prozess der Bereitstellung eines trainierten Modells auf den Datensätzen der realen Welt, um die Vorhersagen für neue Daten zu erhalten, die das Modell zuvor noch nicht gesehen hat. Um sicherzustellen, dass das Modell gut genug verallgemeinern kann, um genaue Vorhersagen für neue Daten zu treffen, schlägt der Kursleiter die Verwendung eines Testsatzes vor. Der Testsatz sollte im gleichen Format wie die Trainingsdaten verarbeitet werden. Der Autor demonstriert, wie das geht, indem er die Testdaten mischt, sie auf Werte zwischen 0 und 1 skaliert und die Testdaten mit einem trainierten Modell vorhersagt, um die Wahrscheinlichkeit der Klasse zu erhalten, zu der jedes Element in der Testmenge gehört.

  • 00:45:00 In diesem Abschnitt betrachten wir die Verwendung einer Konfusionsmatrix, um visuell zu beobachten, wie gut ein neuronales Netzwerkmodell Testdaten vorhersagt. Durch Importieren der erforderlichen Pakete und Erstellen einer Konfusionsmatrix mit scikit-learn können wir wahre Bezeichnungen des Testsatzes mit vorhergesagten Bezeichnungen vergleichen und so die Genauigkeit der Vorhersagen unseres Modells besser verstehen. Wir sehen auch, wie man die Verwirrungsmatrixfunktion grafisch darstellt und wie bestimmte Werte darin erhalten, vorverarbeitet und visualisiert werden. Ein Link zu einer hilfreichen Funktion für den Kurs Keras mit TensorFlow ist auch im deep lizard-Blog verfügbar.

  • 00:50:00 In diesem Abschnitt demonstriert der Kursleiter, wie eine Konfusionsmatrix gezeichnet wird, um die Genauigkeit der Vorhersagen des Modells zu visualisieren. Das Diagramm zeigt die vorhergesagten Beschriftungen auf der x-Achse und die wahren Beschriftungen auf der y-Achse. Die korrekten Vorhersagen werden in blauen Quadraten angezeigt, die diagonal von links oben nach rechts unten im Diagramm verlaufen. Die Konfusionsmatrix ermöglicht es dem Benutzer, die Leistung des Modells zu visualisieren und die Klassen zu identifizieren, die möglicherweise verbessert werden müssen. Der Kursleiter erklärt, dass die Konfusionsmatrix ein großartiges Werkzeug zur Bewertung der Leistung eines Modells ist und dabei helfen kann, herauszufinden, welche Klassen weiter bearbeitet werden müssen. Abschließend zeigt der Kursleiter, wie ein sequenzielles Keras-Modell mithilfe der Funktion „.save()“ gespeichert wird, die die Architektur, die Gewichte und die Trainingskonfiguration des Modells in einer h5-Datei speichert.

  • 00:55:00 In diesem Abschnitt geht der Kursleiter auf die verschiedenen Möglichkeiten zum Speichern und Laden eines Modells in Keras mit TensorFlow ein. Die erste und umfassendste Option besteht darin, alles über das Modell zu speichern und zu laden, einschließlich seiner Architektur, Gewichte und Trainingskonfiguration. Die zweite Möglichkeit besteht darin, nur die Architektur des Modells mit der Funktion „to JSON“ zu speichern, um später ein neues Modell mit derselben Architektur zu erstellen. Die dritte Möglichkeit besteht darin, nur die Gewichte des Modells mit der Funktion "Gewichte speichern" zu speichern, die in ein neues Modell geladen werden kann, um dessen Gewichte zu aktualisieren, aber keine anderen Details über das Modell speichert. Der Kursleiter erklärt auch, dass derselbe Prozess mit YAML-Strings anstelle von JSON-Strings durchgeführt werden kann.
  • 01:00:00 In diesem Abschnitt erläutert der Moderator das Laden von Gewichten in ein neues Keras-Modell mit derselben Architektur wie das ursprüngliche Modell. Er erklärt, dass die Form der zu ladenden Gewichte mit der Form der Modellarchitektur übereinstimmen muss, damit die Abbildung der Gewichte funktioniert. Der Moderator zeigt dann, wie ein neues Modell geladen und mit Gewichten aus dem ursprünglichen Modell gefüllt wird, indem die Funktionen „Gewichte laden“ und „Gewichte abrufen“ in Keras verwendet werden. Der Abschnitt geht dann zu einem neuen Thema über, das Bilddaten vorbereitet und verarbeitet, um ein konvolutionelles neuronales Netzwerk zu trainieren, um Bilder entweder als Katzen oder Hunde zu klassifizieren, wobei der Datensatz aus dem Kaggle-Katzen-gegen-Hunde-Wettbewerb verwendet wird. Der Moderator erläutert die manuellen und programmatischen Schritte, die erforderlich sind, um die Daten für die Verarbeitung vorzubereiten.

  • 01:05:00 In diesem Abschnitt organisiert der Kursleiter die Daten in drei Untergruppen: Trainings-, Validierungs- und Testgruppen. Der im Tutorial verwendete Datensatz enthält 25.000 Bilder von Katzen und Hunden, aber um den Trainingsprozess zu beschleunigen, werden nur 1.000 Bilder für das Training, 200 für die Validierung und 100 für Tests verwendet. Die Daten werden für jeden Satz in verschiedenen Verzeichnissen organisiert, und die Verzeichnisstruktur wird überprüft, um sicherzustellen, dass sie nicht bereits existiert. Die Bilder werden zufällig basierend auf Dateinamen ausgewählt, wobei Katzen- und Hundebilder die Wörter „Katze“ und „Hund“ in ihren jeweiligen Dateinamen haben. Schließlich wird der Datenpfad für jeden Satz so angegeben, dass er auf die richtige Stelle auf der Festplatte zeigt.

  • 01:10:00 In diesem Abschnitt erklärt das Video, wie Daten für ein sequenzielles Keras-Modell vorbereitet werden, indem Datenstapel mit dem Bilddatengenerator erstellt werden. Die Trainings-, Validierungs- und Testsätze werden definiert und zur Einheitlichkeit auf eine bestimmte Höhe und Breite angepasst. Die Vorverarbeitungsfunktion tf.keras.applications.VGG16.preprocess_input wird auf die Bilder angewendet, bevor sie an das Netzwerk weitergeleitet werden. Das Video warnt die Zuschauer davor, sich über die technischen Details der Vorverarbeitung Gedanken zu machen, wie sie in zukünftigen Folgen erklärt werden. Darüber hinaus gibt das Video an, dass Shuffle für den Testsatz gleich False ist, und erklärt, dass beim Ausführen von Inferenz die ungeklärten Labels für den Testsatz benötigt werden, um die Vorhersageergebnisse in einer Konfusionsmatrix anzuzeigen, und die Daten nicht gemischt werden dürfen, um darauf zuzugreifen.

  • 01:15:00 In diesem Abschnitt demonstriert der Kursleiter, wie Bilddaten für ein Convolutional Neural Network abgerufen und organisiert werden. Die Zugstapel, bestehend aus zehn Bildern und entsprechenden Beschriftungen, werden mit einer Vorverarbeitungsfunktion geplottet, die die RGB-Farbdaten verzerrt. Die Bilder können jedoch mit Hilfe eines heiß codierten Vektors für die Etiketten immer noch entweder als Katze oder als Hund unterschieden werden. Der Kursleiter weist darauf hin, dass manchmal entsprechende Bezeichnungen für das Test-Set möglicherweise nicht verfügbar sind, und verweist die Zuschauer auf den Blog, um Anleitungen zum Umgang mit solchen Fällen zu erhalten. Die Episode endet mit einer Vorschau auf den nächsten Abschnitt, in dem ein konvolutionelles neuronales Netzwerk aufgebaut und mit Bilddaten von Katzen und Hunden trainiert wird.

  • 01:20:00 In diesem Abschnitt des TensorFlow-Tutorials wird ein sequenzielles Keras-Modell für das erste Convolutional Neural Network (CNN) verwendet. Die erste Schicht des Modells ist eine 2D-Faltungsschicht mit 32 Filtern und einer Kernelgröße von 3x3, gefolgt von der beliebten ReLU-Aktivierungsfunktion mit „gleichem“ Padding, um die Bilder mit Nullen aufzufüllen. Die Eingabeform wird für die Bilder im RGB-Format als 224 x 224 x 3 angegeben. Auf die erste Faltungsschicht folgt dann eine Max-Pooling-Schicht mit einer Poolgröße von 2x2 und Strides von 2. Eine weitere 2D-Faltungsschicht, ähnlich der ersten, aber mit 64 Filtern anstelle von 32, wird hinzugefügt, gefolgt von einer weiteren Max-Pooling-Schicht. Die abgeflachte Ausgabe der Max-Pooling-Schicht wird dann an eine dichte Ausgabeschicht mit zwei Knoten weitergeleitet, die Katze bzw. Hund entsprechen. Auf die Ausgabeschicht folgt die Softmax-Aktivierungsfunktion, um Wahrscheinlichkeiten für jede entsprechende Ausgabe des Modells anzugeben.

  • 01:25:00 In diesem Abschnitt erläutert der Kursleiter, wie ein Modell mit Keras mit TensorFlow trainiert wird und wie ein Generator verwendet wird, der Beschriftungsdaten zur Validierung während der Modellanpassung enthält. Das Modell wird mit Kompilieren trainiert, und dann wird die Anpassungsfunktion mithilfe der Trainings- und Validierungssätze definiert, und die Epoche und Ausführlichkeit werden festgelegt. Die Warnung, die während des Trainings auftritt, ist ein Fehler in TensorFlow, und der Ausbilder weist darauf hin, wie diese Warnung ignoriert werden kann. Die Ergebnisse zeigen, dass die Genauigkeit des Trainingssatzes zwar 100 % beträgt, die Validierungsgenauigkeit jedoch nur 69 % beträgt, was auf eine Überanpassung hinweist. Das Modell erfordert weitere Aufmerksamkeit, um das Overfitting-Problem zu bekämpfen, wenn es in der Produktion verwendet werden soll. In der nächsten Folge wird untersucht, wie das trainierte Modell bei der Vorhersage von Bildern im Testsatz der Inferenz standhält.

  • 01:30:00 In diesem Abschnitt des Videos erklärt der Kursleiter den Prozess der Verwendung einer Funktion zum Plotten von Bildern zum Plotten eines Stapels von Testdaten aus Teststapeln und zum Drucken der entsprechenden Etiketten für die Bilder. Der Kursleiter betont, wie wichtig es ist, den Testdatensatz nicht zu mischen, um die korrekte Zuordnung zwischen Etiketten und Proben sicherzustellen. Als Nächstes werden die Vorhersagen durch Aufrufen von model.predict mit als Eingabe angegebenen Teststapeln abgerufen. Der Ausbilder druckt die gerundeten Vorhersagen aus und erklärt, wie sie zu interpretieren sind. Sie erwähnen auch die Verwendung einer Verwirrungsmatrix, um die Ergebnisse zu visualisieren, und die Verwirrungsmatrixfunktion von scikit-learn wird mit den wahren Etiketten verwendet, die unter Verwendung von Teststapelklassen übergeben werden.

  • 01:35:00 In diesem Abschnitt erläutert das Video, wie eine Konfusionsmatrix gezeichnet wird, um die Leistung des Modells bei der Klassifizierung von Bildern von Katzen und Hunden mit der Keras-API von TensorFlow zu bewerten. Die Konfusionsmatrix wird mit einer Funktion von scikit-learn geplottet und die Klassenindizes entsprechend angepasst. Die Diagonale der Konfusionsmatrix stellt die korrekten Vorhersagen dar, und das Modell scheint überangepasst zu sein. Im nächsten Abschnitt wird gezeigt, wie ein vortrainiertes VGG 16-Modell feinabgestimmt werden kann, um Bilder von Katzen und Hunden zu klassifizieren, die den ImageNet-Wettbewerb 2014 gewonnen haben. Das Video erklärt auch kurz die VGG 16-Vorverarbeitungsfunktion, die nur den aus jedem Pixel des Trainingssatzes berechneten mittleren RGB-Wert von den Bilddaten subtrahiert.

  • 01:40:00 In diesem Abschnitt erklärt der Ausbilder die Vorverarbeitung, die für das VGG-16-Modell durchgeführt wurde, und wie die neuen Daten auf die gleiche Weise verarbeitet werden müssen, damit sie mit dem ursprünglich trainierten VGG-16 übereinstimmen. Der Ausbilder erwähnt, dass Keras Funktionen für beliebte Modelle wie VGG-16 integriert hat, die über eine Vorverarbeitung verfügen, die für das entsprechende Modell geeignet ist. Der Kursleiter erklärt auch, dass das VGG-16-Modell ursprünglich für 1000 verschiedene imageNet-Klassen Vorhersagen gemacht hat und das Ziel darin besteht, die letzte Ausgabeschicht so zu ändern, dass nur zwei Ausgabeklassen vorhergesagt werden, die Katze und Hund entsprechen. Schließlich erstellt der Ausbilder ein neues sequentielles Modell, indem er jede VGG-16-Schicht durchläuft und die letzte Ausgabeschicht ausschließt. Dieses neue Modell dient der Feinabstimmung und hat nur zwei Leistungsklassen.

  • 01:45:00 In diesem Abschnitt sehen wir, wie das fein abgestimmte VGG 16-Modell an einem Datensatz von Katzen und Hunden modifiziert und trainiert wird. Die letzte Schicht im Modell, die 1000 Ausgabeklassen vorhersagt, wurde entfernt und eine neue dichte Schicht hinzugefügt, die nur zwei Ausgabeklassen für Katze und Hund enthält. Alle vorherigen Schichten wurden als nicht trainierbar eingestellt, mit Ausnahme der Ausgabeschicht mit 8000 trainierbaren Parametern. Das Modell wird mit kategorialer Kreuzentropie als Verlust und Genauigkeit als Metrik kompiliert und mit der fit()-Methode trainiert, indem der Trainingsdatensatz und der Validierungssatz daran übergeben werden.

  • 01:50:00 In diesem Abschnitt erörtert der Ausbilder die Ergebnisse des Trainings des VGG 16-Modells an Bildern von Katzen und Hunden mit einem speziellen Hinweis auf die Genauigkeit der Trainings- und Validierungssets. Das VGG 16-Modell wurde bereits mit Bildern von Katzen und Hunden aus der Bildnetzbibliothek trainiert, und das Training, das auf der Ausgabeschicht durchgeführt wird, besteht darin, das Modell so zu trainieren, dass es nur Katzen- oder Hundeklassen ausgibt. In nur fünf Epochen hatte das VGG 16-Modell eine Trainingsgenauigkeit von 99 %, während die Validierungsgenauigkeit mit 98 % gleich hoch war, was darauf hinweist, wie gut dieses Modell im Vergleich zum einfachen Convolutional Neural Network auf Katzen- und Hundedaten in Validierungssets generalisiert. In der nächsten Folge wird das fein abgestimmte VGG 16-Modell für die Inferenz verwendet, um Katzen- und Hundebilder im Testset vorherzusagen, und angesichts der Genauigkeit des Validierungssets sollten wir auch im Testset gute Ergebnisse erwarten .

  • 01:55:00 In diesem Abschnitt des Videos erörtert der Kursleiter die Verwendung einer Konfusionsmatrix zur Bewertung der Leistung eines fein abgestimmten VGG16-Modells an einem unsichtbaren Testset. Die Diagonale der Konfusionsmatrix wird untersucht, was zeigt, dass das Modell eine Genauigkeitsrate von 96 % erreicht hat. Während der Feinabstimmungsansatz für das VGG16-Modell minimal war, erklärt der Ausbilder, dass die kommenden Folgen weitere Feinabstimmungsmethoden für andere vortrainierte Modelle wie MobileNets behandeln werden. Diese kleineren Modelle mit geringem Stromverbrauch eignen sich aufgrund ihrer erheblich geringeren Größe und Anzahl von Parametern besser für den Einsatz auf Mobilgeräten.
  • 02:00:00 In diesem Abschnitt des Videos stellt der Ausbilder MobileNets vor – eine kleinere und schnellere Alternative zu größeren Modellen wie VGG 16. Während MobileNets nicht so genau sind wie einige dieser schweren Modelle, ist die Verringerung der Genauigkeit relativ gering. Der Kursleiter führt Sie durch die Schritte zum Herunterladen und Arbeiten mit MobileNets in einem Jupyter Notebook, einschließlich Importieren der erforderlichen Pakete, Herunterladen und Zuweisen des MobileNet-Modells und Erstellen einer Funktion namens „prepare_image“, um die Größe und Formatierung der Bilder zu ändern, bevor sie durch das MobileNet geleitet werden Modell zur Bearbeitung. Insgesamt liegt der Fokus darauf, die Kompromisse zwischen Genauigkeit und Größe/Geschwindigkeit bei der Arbeit mit verschiedenen Deep-Learning-Modellen zu verstehen und sie effektiv einzusetzen.

  • 02:05:00 In diesem Abschnitt demonstriert der Kursleiter, wie ein vorab trainiertes MobileNet-Modell verwendet wird, um die fünf besten möglichen Klassen gegebener Bilder vorherzusagen. Sie zeigen zuerst ein Eidechsenbild an und leiten es durch eine Vorverarbeitungsfunktion, bevor sie es an die Vorhersagefunktion von MobileNet weitergeben. MobileNet sagt die drei besten Klassen mit hoher Wahrscheinlichkeit voraus, wobei das amerikanische Chamäleon am wahrscheinlichsten ist. Sie wiederholen den gleichen Vorgang mit dem Bild einer Tasse Kaffee und das Modell sagt mit einer Wahrscheinlichkeit von 99 % voraus, dass es sich um einen Espresso handelt. Schließlich übergeben sie ein Erdbeerbild an das Modell und erhalten die Vorhersagen für die höchstmöglichen Klassen.

  • 02:10:00 In diesem Abschnitt des Videos zeigt der Moderator die Ergebnisse der Vorhersagen des Mobilfunkmodells für eine zufällige Auswahl von Bildern, darunter eine Erdbeere und andere Früchte. Der Moderator erwähnt, dass die Genauigkeit des Modells zwar leicht reduziert wurde, dies jedoch bei Tests wie den im Video gezeigten nicht bemerkbar ist. Der nächste Schritt ist die Feinabstimmung des Mobilfunknetzmodells für einen benutzerdefinierten Datensatz, der aus Gebärdensprachziffern besteht. Der Moderator zeigt, wie der Datensatz auf dem Datenträger organisiert und in das Arbeitsverzeichnis verschoben wird, bevor er programmgesteuert in einem Jupyter Notebook verarbeitet wird.

  • 02:15:00 In diesem Abschnitt erklärt der Kursleiter, wie Bilddaten mithilfe eines Python-Skripts in Train-, Valid- und Test-Verzeichnissen organisiert werden. Der erste Schritt besteht darin, die Anzahl der Proben in jeder Klasse zu überprüfen, die zwischen 204 und 208 liegt. Dann verschiebt das Skript mithilfe einer for-Schleife jedes Klassenverzeichnis in das train-Verzeichnis und erstellt separate Verzeichnisse für gültige und Testsätze für jede Klasse . Schließlich tastet das Skript zufällige Bilder aus jeder Klasse im Train-Verzeichnis ab, verschiebt sie in das gültige Verzeichnis und tastet weitere Bilder ab und verschiebt sie in das Testverzeichnis. Nach dem Ausführen des Skripts werden die Daten für jeden Satz in separaten Verzeichnissen organisiert, und die Anzahl der Bilder in jeder Klasse kann durch Überprüfen der entsprechenden Verzeichnisse überprüft werden.

  • 02:20:00 In diesem Abschnitt des Videos erläutert der Referent die Organisationsstruktur des Datensatzes, mit dem er arbeiten wird, der dem zuvor im Kurs verwendeten Katzen- und Hundedatensatz ähnelt, jetzt aber 10 Klassen enthält zwei. Anschließend demonstrieren sie, wie die Daten vorverarbeitet werden, indem sie die Train-, Validation- und Test-Verzeichnisse definieren und Verzeichnis-Iteratoren mit dem Bilddatengenerator erstellen. Als Vorverarbeitungsfunktion wird die Mobilnetz-Vorverarbeitungsfunktion verwendet, die die Bilddaten auf eine Skala von minus eins bis eins skaliert. Die Iteratoreinstellungen, wie z. B. Zielbildgröße und Stapelgröße, werden ebenfalls definiert. Der Redner betont, wie wichtig es ist, den Iterator korrekt auf die Position des Datensatzes auf der Festplatte zu richten, da ein falsches Zeigen dazu führen könnte, dass keine Bilder gefunden werden.

  • 02:25:00 In diesem Abschnitt des Kurses „Keras mit TensorFlow“ erklärt der Kursleiter, wie das vortrainierte MobileNet-Modell für eine neue Klassifizierungsaufgabe optimiert wird. Der erste Schritt besteht darin, das MobileNet-Modell herunterzuladen und seine Schichten mit der Funktion „model.summary()“ zu untersuchen. Anschließend selektieren sie die Schichten bis zur sechstletzten Schicht und erstellen eine neue dichte Ausgabeschicht mit 10 Einheiten. Anschließend wird ein neues Funktionsmodell erstellt, das alle vorherigen Schichten bis zur sechstletzten Schicht und das Mobilfunknetz an die Ausgangsschicht weitergibt. Das neue Modell wird erstellt und der nächste Schritt besteht darin, alle bis auf die letzten 23 Schichten für das Training einzufrieren. Der Kursleiter weist darauf hin, dass die Anzahl der einzufrierenden Schichten persönliches Experimentieren erfordert und je nach Aufgabe variieren kann.

  • 02:30:00 In diesem Abschnitt verfeinert der Kursleiter das ursprüngliche MobileNet-Modell, trainiert nur die letzten 23 Schichten und ersetzt die Ausgabeschicht durch eine mit 10 statt 1.000 Klassen. Das Modell wird mit dem Adam-Optimierer mit einer Lernrate von 0,0001 und einer kategorialen Cross-Entropie-Verlustfunktion kompiliert und trainiert. Nach dem Training für 30 Epochen erreicht das Modell eine Genauigkeit von 100 % im Trainingssatz und eine Genauigkeit von 92 % im Validierungssatz. Obwohl es eine gewisse Überanpassung gibt, bei der die Validierungsgenauigkeit geringer ist als die Trainingsgenauigkeit, schlägt der Ausbilder vor, dass das Ausführen von mehr Epochen oder das Anpassen von Hyperparametern dazu beitragen kann, das Problem der Überanpassung zu reduzieren.

  • 02:35:00 In diesem Abschnitt des Videos zeigt der Kursleiter, wie man ein fein abgestimmtes Modell auf dem Testset verwendet und die Vorhersagen in einer Konfusionsmatrix darstellt. Die Konfusionsmatrix zeigt an, dass das Modell mit überwiegend korrekten Vorhersagen für die Testmenge gut abgeschnitten hat. Das Modell hat eine Genauigkeit von 90 % im Testset, was angesichts der Genauigkeit im Validierungsset zu erwarten ist. Der Kursleiter betont, dass die Serie auf MobileNet einen Einblick in die Feinabstimmung von Modellen für benutzerdefinierte Datensätze und die Verwendung von Transfer Learning gegeben hat. In der nächsten Folge wird gezeigt, wie die Datenerweiterung für Bilder mithilfe der Keras-API von TensorFlow verwendet wird.

  • 02:40:00 In diesem Abschnitt wird die Bedeutung der Datenerweiterung für Deep Learning hervorgehoben, insbesondere wenn nicht genügend Daten zum Trainieren des Modells vorhanden sind. Die Datenaugmentation kann dazu beitragen, die Überanpassung zu reduzieren und die Größe des Trainingssatzes zu erhöhen. Anschließend wird der Code zum Anreichern von Bilddaten mit Keras eingeführt, in dem ein Bilddatengenerator erstellt und verschiedene Anreicherungsparameter angegeben werden, z. B. Rotationsbereich, Breitenverschiebungsbereich und Zoombereich. Ein zufälliges Bild aus einem Hundeverzeichnis wird ausgewählt, und die Flussfunktion wird aufgerufen, um aus diesem einzelnen Bild einen Stapel erweiterter Bilder zu generieren. Die resultierenden erweiterten Bilder werden dann unter Verwendung einer vordefinierten Plot-Bilder-Funktion geplottet.

  • 02:45:00 In diesem Abschnitt erläutert der Kursleiter die Datenerweiterung, eine Methode zur künstlichen Vergrößerung eines Datensatzes durch die Erstellung von Variationen bestehender Daten. Durch Betrachten verschiedener Bilder identifiziert der Kursleiter die Arten der Datenerweiterung, die an ihnen vorgenommen wurden, wie z. B. Verschieben, Spiegeln und Drehen, und erklärt, wie diese Technik beim Erweitern eines Datensatzes hilfreich sein kann. Durch die Erhöhung der Vielfalt des Datensatzes kann ein Modell robuster und besser in der Klassifizierung von Daten werden. Der Ausbilder gibt auch eine kurze Anleitung zum Speichern dieser erweiterten Bilder auf der Festplatte und zum Wiedereinfügen in den Trainingssatz.
Keras with TensorFlow Course - Python Deep Learning and Neural Networks for Beginners Tutorial
Keras with TensorFlow Course - Python Deep Learning and Neural Networks for Beginners Tutorial
  • 2020.06.18
  • www.youtube.com
This course will teach you how to use Keras, a neural network API written in Python and integrated with TensorFlow. We will learn how to prepare and process ...
 

Scikit-learn-Crashkurs – Bibliothek für maschinelles Lernen für Python



Scikit-learn-Crashkurs – Bibliothek für maschinelles Lernen für Python

Das Video „Scikit-learn Crash Course“ bietet einen Überblick über die Verwendung der Scikit-learn-Bibliothek für maschinelles Lernen in Python. Das Video behandelt Datenvorbereitung, Modellerstellung und -anpassung, Hyperparameter-Tuning durch Rastersuche und Modellbewertung. Die Bedeutung der Vorverarbeitung und der Transformer bei der Verbesserung der Modellleistung wird mit Beispielen für Standard-Scaler und Quantile-Transformer betont. Das Video erörtert auch die Bedeutung der Modellbewertung und der Auswahl der richtigen Metrik für das Problem sowie den Umgang mit unausgewogenen Datensätzen und unbekannten Kategorien bei der One-Hot-Codierung. Der Referent betont das Verständnis des Datensatzes und potenzieller Verzerrungen in Modellvorhersagen und liefert ein Beispiel für die Erkennung von Kreditkartenbetrug.

Der zweite Teil des Videos behandelt mehrere Themen, darunter Rastersuche, Metriken, Pipelines, Schwellenwertoptimierung, Zeitreihenmodellierung und Ausreißerbehandlung. Der Kursleiter untersucht die Verwendung benutzerdefinierter Metriken und die Bedeutung des Ausgleichs von Präzision und Abruf bei der Modellerstellung. Darüber hinaus wird der Voting-Klassifikator als Meta-Schätzer präsentiert, der die Flexibilität und Aussagekraft des Modells erhöht. Das Video schließt mit der Einführung des Human Learn-Tools, das dabei hilft, regelbasierte Systeme zu konstruieren und zu bewerten, die mit maschinellen Lernalgorithmen kombiniert werden können. Darüber hinaus wird das Tool FunctionClassifier untersucht, mit dem Benutzer benutzerdefinierte Logik als Klassifikatormodell erstellen und Verhaltensweisen wie die Erkennung von Ausreißern hinzufügen können. Insgesamt bietet das Video einen umfassenden Überblick über Scikit-learn und seine flexible API und betont, wie wichtig es ist, die relevanten Metriken für die Modellerstellung und -anpassung zu verstehen.

  • 00:00:00 Die Daten y. X enthält die Merkmale oder Eingabevariablen, während Y die Ziel- oder Ausgabevariable enthält, die wir vorhersagen möchten. Wir teilen die Daten in einen Trainingssatz und einen Testsatz auf, um die Leistung des Modells zu bewerten. Als nächstes müssen wir die Daten vorverarbeiten. Eine der wichtigsten Vorverarbeitungstechniken ist die Skalierung, bei der die Werte der Merkmale so normalisiert werden, dass sie alle in einen ähnlichen Bereich fallen. Dies hilft dem Modell, effektiver zu lernen. Schließlich wählen wir ein Modell aus und trainieren es auf dem Trainingsset. Sobald das Modell trainiert ist, bewerten wir seine Leistung auf dem Testset und treffen Vorhersagen zu neuen Daten. In den nächsten Abschnitten werden wir tiefer in die Themen Vorverarbeitung, Modellbewertung und Metaschätzer eintauchen.

  • 00:05:00 In diesem Abschnitt erläutert der Referent, wie Daten für maschinelle Lernmodelle in x- und y-Sätze aufgeteilt werden. Der x-Satz stellt die Daten dar, die verwendet werden, um Vorhersagen zu treffen, während der y-Satz die interessierende Vorhersage enthält. Mithilfe der scikit-learn-Bibliothek können Benutzer Benchmark-Datensätze für Bildungszwecke laden. Der Referent erläutert auch den zweiphasigen Prozess der Erstellung und Anpassung eines Modells, um aus den Daten zu lernen und Vorhersagen zu treffen. Das k-Nächste-Nachbar-Modell wird als Beispiel verwendet, aber das lineare Regressionsmodell wird auch gezeigt, um zu veranschaulichen, wie verschiedene Modelle immer noch dieselbe API innerhalb von scikit-learn haben können.

  • 00:10:00 In diesem Abschnitt erklärt das Scikit-learn Crash Course-Video, wie das K-nearest-neighbour-Modell in einem einfachen Datensatz funktioniert, der die Quadratmeter eines Hauses und seine Nähe zu Schulen enthält. Das Modell trifft Vorhersagen basierend auf den nächsten 5 Nachbarn, aber die Herausforderung kann entstehen, wenn Entfernungen mit unterschiedlichen Maßstäben verwendet werden, was bedeutet, dass eine Achse einen viel größeren Einfluss auf die Vorhersagen haben kann als eine andere. Dies erfordert ein Umdenken darüber, was ein maschinelles Lernmodell ist, und legt nahe, dass eine gewisse Vorverarbeitung erforderlich ist, bevor die Daten an das K-nächste-Nachbar-Modell übergeben werden, damit die Skalierung erfolgt, bevor Vorhersagen getroffen werden, und dass alles innerhalb des Vor- Verarbeitungsbox ist Teil des Modells.

  • 00:15:00 In diesem Abschnitt untersucht das Video das Konzept einer Pipeline in Scikit-learn, das die Verkettung von Verarbeitungsschritten und das Aufrufen von Punktanpassung und Punktvorhersage für die gesamte Pipeline ermöglicht, wenn es trainiert wird. Durch die Verwendung einer Pipeline ist es möglich, Vorverarbeitungsschritte wie Skalierung und Normalisierung automatisch durchzuführen, um aus den Daten zu lernen und ein robustes System zu gewährleisten. Dieser Ansatz führt jedoch zu einem Problem, bei dem das Modell die ursprünglichen Daten speichern darf. Das Video zeigt, wie das Diagramm fälschlicherweise eine perfekte Vorhersage vorschlägt, aber das Modell kann dies nur tun, weil es sich den ursprünglichen Datenpunkt merken darf, was einen fairen Vergleich und eine zuverlässige Vorhersagbarkeit neuer Daten verhindert.

  • 00:20:00 In diesem Abschnitt erklärt der Kursleiter die Methode zur Bewertung der Leistung eines Modells mithilfe eines separaten Testdatensatzes, um zu verhindern, dass das Modell anhand desselben Datensatzes beurteilt wird, mit dem es trainiert wurde. Er schlägt vor, den Datensatz in Segmente zu unterteilen und eines zum Training und die anderen zum Testen zu verwenden. Darüber hinaus stellt er das cv-Objekt der Grid-Suche von Scikit-learn vor, das eine automatisierte Kreuzvalidierung ermöglicht, um die besten Hyperparameter für die Verwendung im Modell zu bestimmen. Dieses Objekt kann mit der zuvor erstellten Pipeline verwendet werden, um das Modell zu optimieren und seine Vorhersagefähigkeiten zu verbessern.

  • 00:25:00 In diesem Abschnitt geht der Kursleiter verschiedene Parameter des KNearestNeighbors-Modells durch und demonstriert, wie das GridSearch-Objekt verwendet wird, um den besten Satz von Hyperparametern zu finden. Das GridSearch-Objekt führt automatisch eine Kreuzvalidierung durch und verfolgt die Ergebnisse, wodurch es einfach ist, die beste Konfiguration zu analysieren und auszuwählen. Der Kursleiter betont jedoch, dass die Verwendung der geeigneten API und Bausteine bei der Arbeit mit scikit-learn wichtig ist, es aber ebenso wichtig ist, den verwendeten Datensatz zu verstehen und zu analysieren. Der Kursleiter zeigt, wie auf die Beschreibung eines Datensatzes zugegriffen und diese angezeigt wird, und betont, wie wichtig es ist, sich die Zeit zu nehmen, die Variablen im Datensatz zu verstehen, bevor ein Modell erstellt wird.

  • 00:30:00 In diesem Abschnitt erörtert der Referent die potenziellen Fallstricke der blinden Anwendung von maschinellen Lernmodellen, ohne die für Training und Vorhersage verwendeten Daten vollständig zu verstehen. Selbst scheinbar harmlose Variablen wie der Anteil einer bestimmten Rasse in einer Stadt können zu voreingenommenen und sogar rassistischen Algorithmen führen. Der Referent betont, wie wichtig es ist, das Modell gründlich zu untersuchen und zu testen, bevor es in der Produktion eingesetzt wird. Der Einsatz von Grid Search und anderen Methoden kann statistische Garantien bieten, aber auch falsches Optimismus erzeugen und blinde Flecken verursachen. Es liegt in der Verantwortung des Benutzers, sich über die verwendeten Daten zu informieren und ethische und Feedback-Mechanismen sowie Fallback-Szenarien für den Fall zu berücksichtigen, dass in der Produktion etwas schief geht.

  • 00:35:00 In diesem Abschnitt wird die Bedeutung der Datentransformation bei der Modellerstellung hervorgehoben. Das Video behandelt die Verwendung von Transformatoren und ihre Bedeutung für die Verbesserung der Modellleistung. Der Standard-Scaler von Scikit-Learn wird verwendet, um einen Datensatz neu zu skalieren, und obwohl seine Leistung gut ist, zeigt das Video, wie er durch die Verwendung anderer Skalierungsmethoden verbessert werden könnte. Der Ansatz besteht darin, den Mittelwert vom Datensatz abzuziehen und durch die Standardabweichung zu dividieren. Während der Ansatz die Daten skaliert, hinterlässt er Ausreißer, die einige Algorithmen beeinträchtigen können. Das Video betont außerdem die Bedeutung der Vorverarbeitung beim Erreichen der gewünschten Modellergebnisse.

  • 00:40:00 In diesem Abschnitt des Videos erläutert der Sprecher das Konzept der Normalisierung und wie man es effektiv nutzt, indem man Quantile anstelle von Mittelwerten berechnet. Durch die Verwendung von Quantilen wird die Auswirkung von Ausreißern auf die Daten reduziert und der Prozess robuster. Der Referent demonstriert, wie der Quantiltransformator als Vorverarbeitungsschritt implementiert werden kann, der den Standard-Scaler ersetzt, um bessere Ergebnisse in maschinellen Lernmodellen zu erzielen. Die tiefgreifende Wirkung des Transformers auf die Ausgabedaten wird durch eine Plot-Ausgabefunktion gezeigt, die ein k-Nearest-Neighbour-Modell trainiert und Vorhersagen sowohl für den Standardskalierer als auch für den Quantiltransformator erstellt.

  • 00:45:00 In diesem Abschnitt des Videos erklärt der Referent, wie sich die Vorverarbeitung drastisch auf die Klassifizierung von Datensätzen auswirken kann. Im ersten Beispiel verwendet der Sprecher den Quantile Transformer, der das Modell stabiler und langfristig besser geeignet macht, mit Ausreißern umzugehen. Das zweite Beispiel zeigt, wie das Hinzufügen neuer Features die Leistung des Modells verbessern kann. Durch die Generierung nichtlinearer Merkmale wie x1 mal x2 und x1 hoch 2 und x2 hoch 2 durch polynomiale Merkmale konnte das logistische Regressionsmodell eine nahezu perfekte Klassifizierung erzeugen. Schließlich wird der One Hot Encoder als eine Technik zum Umwandeln von Text oder Kategorien in numerische Daten eingeführt, die für die Vorhersage von Klassen wie niedrigem, mittlerem oder hohem Risiko nützlich sind.

  • 00:50:00 In diesem Abschnitt erläutert das Video, wie mit unbekannten Kategorien umgegangen wird, wenn One-Hot-Codierung mit der Scikit-learn-Bibliothek verwendet wird. Der Moderator erklärt, dass, wenn der Encoder aufgefordert wird, Daten zu transformieren, die er zuvor noch nicht gesehen hat, dies zu einem Wertfehler führt. Dies kann jedoch geändert werden, indem der Parameter "handle_unknown" auf "ignore" gesetzt wird. Das Video stellt auch eine Website namens „DrawData.xyz“ vor, die es Benutzern ermöglicht, ihre eigenen Datensätze zum Üben in der Vorverarbeitung und Pipelines zu erstellen. Der Referent betont, dass Vorverarbeitungsschritte entscheidend sind, da sie das Ergebnis des Modells stark beeinflussen können. Schließlich erläutert das Video die Vorteile der Verwendung einer Rastersuche, um mehrere Modelle zu vergleichen und das beste für die Vorhersage auszuwählen, wobei ein Datensatz zu Kreditkartenbetrug als Beispiel verwendet wird.

  • 00:55:00 In diesem Abschnitt erklärt das Video, wie wichtig die Auswahl der richtigen Metrik ist und wie Scikit-learn damit umgeht. Das Video verwendet einen Datensatz mit anonymisierten Merkmalen und Transaktionsbeträgen, um zu demonstrieren, wie Scikit-learn verwendet werden kann, um Betrugsfälle genau vorherzusagen. Da der Datensatz jedoch mit mehr Betrugsfällen als Nicht-Betrugsfällen unausgewogen ist, konvergiert das Modell nicht mit der Standardanzahl von Iterationen. Daher wird die maximale Anzahl von Iterationen erhöht und der Klassengewichtungsparameter angepasst, um das Gewicht von Betrugsfällen zu verdoppeln, um die Betrugserkennung des Modells zu verbessern. Das Video stellt auch GridSearchCV vor, um den besten Wert für den Klassengewichtungsparameter zu finden.
  • 01:00:00 In diesem Abschnitt erklärt der Kursleiter, wie die Rastersuche verwendet wird, um die besten Modellparameter für die logistische Regression in scikit-learn zu finden. Durch die Definition eines Rasters von Parameterwerten zeigt der Kursleiter, wie diese Hyperparameter durchlaufen und mithilfe von Kreuzvalidierung getestet werden. Das Rasterobjekt gibt ein Wörterbuch mit Ergebnissen zurück, einschließlich der Klassengewichtung und der Punktzahlen. Das logistische Regressionsmodell hat eine gebundene Methode namens Score, die verwendet wird, um das beste Modell zu bestimmen. Der Kursleiter stellt dann zwei Metriken aus dem Metrikmodul von scikit-learn vor, Precision und Recall Score, und erklärt, wie man sie mithilfe eines Scoring-Wörterbuchs in die Rastersuche einbezieht.

  • 01:05:00 In diesem Abschnitt fügt der Sprecher die Ergebnisse der Testpräzision und der Testerinnerung hinzu und setzt ein Flag, das das Hinzufügen von Zugergebnissen zu den Kreuzvalidierungsergebnissen ermöglicht. Sie erhöhen dann die Anzahl der Kreuzvalidierungen und ersetzen den Bereich von vier durch ein numpy lineares Leerzeichen, indem sie einen höheren Wert festlegen, um den Algorithmus anzuweisen, sich auf Betrugsfälle zu konzentrieren. Sie erstellen einige Diagramme, die die Ergebnisse zusammenfassen, und stellen fest, dass die Konzentration auf Erinnerung oder Präzision zu einem völlig anderen Ergebnis führt. Sie beschließen dann, ihre Metrik zu erstellen, die minimale Abrufpräzision, die das Minimum zwischen Präzision und Abruf berechnet, und fügt es der Rastersuche hinzu. Sie tun dies, um die beiden Metriken auszugleichen und ein Modell zu haben, das die Recall- und Precision-Scores ausgleicht.

  • 01:10:00 verwenden wir die Funktion make_scorer in der Rastersuche mit unserer benutzerdefinierten Metrik min_precision_recall, die y_true und y_pred als Eingabe akzeptiert. Die make_scorer-Funktion erfordert jedoch einen Schätzer, einen X-Datensatz, y true und eine Art Stichprobengewichtung, sodass sie unsere Metrikfunktion in ein Predict-Scorer-Objekt verwandelt, das in der Rastersuche verwendet werden kann. Die Stichprobengewichtung ist eine zusätzliche Funktion, die an maschinelle Lernmodelle weitergegeben werden kann und uns erlaubt zu sagen, dass eine bestimmte Zeile wichtiger ist als eine andere. Anstatt die Funktion make_scorer zu verwenden, können wir den Estimator direkt übergeben und die vorhergesagten y-Werte mit der Funktion predict berechnen.

  • 01:15:00 In diesem Abschnitt erörtert der Referent die Verwendung des Probengewichts bei der Betrugserkennung und zeigt, wie es zu einer Funktion für numerische Stabilität hinzugefügt werden kann. Sie demonstrieren auch die Auswirkung des Hinzufügens von Stichprobengewichten auf das algorithmische Modell. Der Referent schlägt dann vor, einen Ausreißer-Erkennungsalgorithmus zu verwenden, um Betrug zu erkennen, und zeigt, wie die Metriken für diesen Ansatz angepasst werden können. Sie ersetzen die logistische Regression durch einen Isolation-Forest-Algorithmus und demonstrieren, wie sich dies auf die Precision- und Recall-Scores auswirkt. Schließlich schreibt der Sprecher seine Variante der Metrikfunktionen, um die Ausreißervorhersage in Betrugskennzeichnungsvorhersagen umzuwandeln.

  • 01:20:00 In diesem Abschnitt erörtert der Erzähler die Flexibilität der API von Scikit-learn und die Möglichkeit, Algorithmen zur Erkennung von Ausreißern so zu verwenden, als wären sie Klassifikatoren, indem y-Labels in benutzerdefinierten Metriken übergeben werden. Dies kann bei der Beurteilung nützlich sein, ob ein Ausreißermodell bei einem Klassifizierungsproblem nützlich wäre. Der Erzähler weist jedoch darauf hin, dass es wichtig ist, sich mit der Qualität der Labels zu befassen, da dies die Metriken des Modells erheblich beeinflussen kann. Darüber hinaus weist der Erzähler auf einige Anpassungseinstellungen für Metriken hin, z. B. die Angabe, ob größer besser ist, und die Notwendigkeit eines Wahrscheinlichkeitsmaßes für einige Metriken. Zuletzt erwähnt der Erzähler die Fähigkeit von Scikit-learn, mit Metamodellen zu arbeiten.

  • 01:25:00 In diesem Abschnitt erklärt der Kursleiter, wie scikit-learn-Pipelines funktionieren und welche Einschränkungen bei der ausschließlichen Verwendung von scikit-learn-Pipelines für maschinelle Lernmodelle bestehen. Der Kursleiter schlägt vor, Meta-Schätzer zu verwenden, um die Einschränkungen von Pipelines zu umgehen, um einem Modell zusätzliche Schritte und Nachbearbeitungswerkzeuge hinzuzufügen. Der Kursleiter stellt ein Beispiel für einen Meta-Schätzer, den Voting-Klassifikator, und wie er verwendet werden kann, um verschiedene Modelle für einen Datensatz auszugleichen, indem jeder Schätzer gewichtet wird.

  • 01:30:00 In diesem Abschnitt demonstriert der Kursleiter die Verwendung eines Abstimmungsklassifikators mit scikit-learn, der verschiedene Modelle kombinieren kann, die auf unterschiedliche Weise funktionieren, um genauere Vorhersagen zu erstellen. Darüber hinaus kann dieses Modell von anderen Schätzern als Eingabe verwendet werden, wodurch die Flexibilität und Aussagekraft erhöht wird. Der Kursleiter führt auch die Idee ein, den Schwellenwert in einem logistischen Regressionsmodell abzustimmen, um die Genauigkeit für den Abruf oder umgekehrt unter Verwendung des Schwellenwert-Metamodells abzuwägen. Dies wird durch ein Beispiel demonstriert, wie das Schwellwertmodell bei einer Gittersuche verwendet wird. Durch die Verwendung dieser von scikit-learn bereitgestellten Techniken kann man Modellparameter anpassen und eine bessere Leistung erzielen.

  • 01:35:00 In diesem Abschnitt spricht der Sprecher über die Verwendung einer Gittersuche zur Feinabstimmung des Schwellenwerts eines binären Klassifikators. Sie zeigen, dass sich die Präzisions- und Erinnerungskurven ändern, wenn sich der Schwellenwert ändert, die Genauigkeit jedoch relativ konstant bleibt. Der Referent erklärt, dass ein solcher Nachbearbeitungsschritt am besten als Metamodell implementiert wird, das ein anderes Modell als Eingabe akzeptiert. Der Referent demonstriert dann ein Beispiel für den Aufbau eines Metamodells mit den Pipeline- und Group(byRegressor-Klassen von Scikit-learn, um Daten nach Ernährung zu gruppieren und dann ein anderes lineares Regressionsmodell für jede Gruppe zu verwenden. Sie erklären, dass diese Art der Gruppierung nützlich sein kann Situationen, in denen die Auswirkung einer kategorialen Variablen möglicherweise nicht einfach eine konstante Verschiebung ist.

  • 01:40:00 In diesem Abschnitt erklärt das Video eine Zeitreihenaufgabe und zeigt, wie sie mit einem gruppierten Prädiktor und einem Dummy-Regressor modelliert wird. Es stellt fest, dass die Vorhersage für das mittlere Jahr gut ist, aber in den letzten Jahren unter- und in der Vergangenheit überschießt. Um das Modell zu verbessern, schlägt das Video vor, sich auf die neueren Daten zu konzentrieren und die vergangenen Daten zu vergessen. Es führt das Konzept der Probengewichte ein, mit denen der Benutzer angeben kann, wie viel ein bestimmter Datenpunkt gewogen werden soll. Das Video zeigt dann, wie Sie dem Modell Decay hinzufügen, wodurch die aktuellen Datenpunkte wichtiger sind als die alten. Auf diese Weise wird das Modell ausdrucksstärker und funktioniert besser mit den jüngsten Daten, während die weit entfernte Vergangenheit ignoriert wird. Dieser Trick kann jedoch dazu führen, dass die Trainingsdaten eine schlechtere Leistung aufweisen als die Testdaten.

  • 01:45:00 In diesem Abschnitt stellt der Redner ein Tool namens Human Learn vor, ein Open-Source-Projekt, das entwickelt wurde, um Scikit-Learn-kompatible Tools anzubieten, die beim Aufbau und Benchmarking regelbasierter Systeme helfen. Der Referent erklärt, dass es in der Vergangenheit üblicher war, menschliche Experten zu verwenden, um Geschäftsregeln und Systeme zur Datenklassifizierung zu entwickeln, als maschinelle Lernalgorithmen. Modelle für maschinelles Lernen sind jedoch nicht perfekt und können ein problematisches oder ineffektives Verhalten aufweisen. Das Ziel von Human Learn ist es, regelbasierte Systeme zu konstruieren, die leicht mit maschinellen Lernmodellen verglichen und mit ihnen kombiniert werden können. Der Referent demonstriert, wie man ein regelbasiertes System mit dem Titanic-Datensatz erstellt, und erklärt, wie Human Learn die Integration dieser Systeme in Ihren täglichen Arbeitsablauf erleichtern kann.

  • 01:50:00 In diesem Abschnitt des Videos stellt der Sprecher das FunctionClassifier-Tool in scikit-learn vor, das eine benutzerdefinierte Funktion nimmt und sie in einen scikit-learn-kompatiblen Klassifikator umwandelt. Das Tool ermöglicht auch die Optimierung der Rastersuche aller Parameter, die in der Funktion des Benutzers definiert sind. Der Referent demonstriert die Verwendung des FunctionClassifier-Tools zur Durchführung einer Rastersuche nach einem Schwellenwertparameter mit einem Datensatz, der sich auf die Titanic-Katastrophe bezieht. Die Flexibilität des Tools ermöglicht es Benutzern, jede Python-Funktion mit benutzerdefinierter Logik als Klassifikatormodell zu erstellen und Verhaltensweisen wie die Erkennung von Ausreißern hinzuzufügen.

  • 01:55:00 In diesem Abschnitt erklärt der Kursleiter, wie Ausreißer in bereits vorhandenen Modellen für maschinelles Lernen behandelt werden können. Durch Hinzufügen einer Logik vor dem Modell kann ein Ausreißer identifiziert und mit einem anderen Label versehen werden. Das Paket ermöglicht den Aufbau regelbasierter Systeme unter Verwendung bereits vorhandener Modelle für maschinelles Lernen, wobei ein Gleichgewicht zwischen natürlicher Intelligenz und künstlicher Intelligenz hergestellt wird. Der Kursleiter verwendet das Paket scikit-lego und die Funktion load penguins, um die effiziente Vorhersage der Art eines Pinguins anhand seiner Eigenschaften zu veranschaulichen. Die Funktion verwendet ein interaktives Diagramm, und der Kursleiter zeichnet Polygone um die zu klassifizierenden Datenpunkte. Der Point-in-Poly-Algorithmus wird dann verwendet, um die Datenpunkte zu klassifizieren. Ein interaktiver Klassifikator ermöglicht die Definition eines scikit-learn-kompatiblen Modells aus dem json-Blob. Dann können x- und y-Datensätze aus einem Datenrahmen generiert werden, und das Modell kann wie jedes Cycler-Modell verwendet werden.
  • 02:00:00 In diesem Abschnitt betont der Referent die Eigenschaften und Vorteile gezeichneter maschineller Lernmodelle. Anhand einer Diagrammfunktion in Matplotlib demonstriert er, wie die gezeichneten Modelle Klassifizierungen für neue Beispiele vorhersagen und mit fehlenden Daten effektiv umgehen. Darüber hinaus zeigt der Referent, wie dieselbe Zeichnung als System zur Erkennung von Ausreißern verwendet werden kann, indem überprüft wird, ob Punkte außerhalb von Polygonen liegen. Er demonstriert auch, wie die Zeichnungsmechanik verwendet werden kann, um Datenpunkten Beschriftungen zuzuweisen, selbst wenn Beschriftungen nicht ohne weiteres verfügbar sind, was dies zu einem nützlichen Vorverarbeitungsschritt macht.

  • 02:05:00 In diesem Abschnitt erörtert der Redner die Interactive Charts API, die relativ experimentell ist und entweder als Scikit-Learn-Transformer oder in einer Pandas-Pipeline fungieren kann, um zwei neue Spalten mit Zählwerten zum Erscheinen des Datenpunkts in a hinzuzufügen Polygon. Der Referent empfiehlt, neben Geschäftsregeln maschinelle Lernalgorithmen zu verwenden, um regelbasierte Systeme zu erstellen. Darüber hinaus schlägt der Redner verschiedene Ressourcen wie freeCodeCamp, den YouTube-Kanal von pi data und die Dokumentationsseite von scikit-learn vor, um mehr über maschinelles Lernen und scikit-learn zu erfahren.
Scikit-learn Crash Course - Machine Learning Library for Python
Scikit-learn Crash Course - Machine Learning Library for Python
  • 2021.04.07
  • www.youtube.com
Scikit-learn is a free software machine learning library for the Python programming language. Learn how to use it in this crash course.✏️ Course created by V...
 

PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs (Teile 1–3)


PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs

00:00:00 - 01:00:00 Der Online-Kursleiter „PyTorch for Deep Learning & Machine Learning“, Daniel Bourke, führt die Zuschauer in den Kurs ein, der sich auf die Implementierung von Konzepten für maschinelles Lernen in PyTorch mit Python-Code konzentriert. Zu den wichtigsten Themen des Kurses gehören Transfer Learning, Model Deployment und Experiment Tracking. Das Video bietet eine Einführung in maschinelles Lernen und Deep Learning und ihre Unterschiede, wobei Deep Learning besser für komplexe Probleme geeignet ist, die große Datenmengen erfordern, und Einblicke in unstrukturierte Daten bietet. Die Anatomie eines neuronalen Netzes wird erklärt, und der Kurs behandelt die verschiedenen Paradigmen des maschinellen Lernens, wie überwachtes Lernen und Transferlernen. Darüber hinaus untersucht das Video die potenziellen Anwendungen von Deep Learning, insbesondere in der Objekterkennung und der Verarbeitung natürlicher Sprache. Abschließend werden die Vorteile von PyTorch erläutert, wie z. B. die Standardisierung von Forschungsmethoden und die Ermöglichung der Ausführung von maschinellem Lerncode auf GPUs für ein effizientes Mining numerischer Berechnungen.

01:00:00 - 02:00:00 Dieser Teil behandelt die Grundlagen von PyTorch, die Vorverarbeitung von Daten, das Erstellen und Verwenden von vortrainierten Deep-Learning-Modellen, das Anpassen eines Modells an einen Datensatz, das Treffen von Vorhersagen und das Bewerten der Vorhersagen des Modells. Der Kursleiter betont die Bedeutung des Experimentierens, Visualisierens und Stellens von Fragen sowie die Verwendung der Kursressourcen, einschließlich GitHub, Diskussionen und learnpytorch.io. Die Lernenden werden auch in Google Colab eingeführt, das die Möglichkeit bietet, GPU- oder TPU-Beschleunigung für eine schnellere Rechenzeit, vorinstalliertes PyTorch und andere Data-Science-Pakete zu verwenden. Der Kurs geht eingehend auf Tensoren als grundlegende Bausteine des Deep Learning ein und zeigt, wie man Tensoren mit unterschiedlichen Dimensionen und Formen erstellt, einschließlich Skalar-, Vektor- und Matrix-Tensoren. Der Kurs behandelt auch das Erstellen von zufälligen Tensoren, Tensoren aus Nullen und Einsen sowie das Angeben von Datentypen, Geräten und erforderlichen Gradparametern beim Erstellen von Tensoren.

02:00:00 - 03:00:00 In diesem PyTorch-Tutorial behandelt der Kursleiter verschiedene Aspekte von Tensoroperationen, einschließlich Fehlerbehebung, Manipulation, Matrixmultiplikation, Transponierung und Aggregation. Sie erklären, wie wichtig es ist, bei der Arbeit mit Deep-Learning-Modellen die richtige Tensorform und den richtigen Datentyp beizubehalten, und zeigen, wie diese Parameter mithilfe von PyTorch-Befehlen überprüft und geändert werden. Das Tutorial enthält Herausforderungen für Betrachter, wie z. B. das Üben der Matrizenmultiplikation und das Ermitteln des positionellen Minimums und Maximums von Tensoren, und bietet nützliche Tipps zur Vermeidung häufiger Formfehler und zur Verbesserung der Leistung, z. B. die Verwendung von Vektorisierung über for-Schleifen. Darüber hinaus führt der Kursleiter mehrere hilfreiche PyTorch-Funktionen zum Umformen, Stapeln, Zusammendrücken und Entquetschen von Tensoren ein.

03:00:00 - 04:00:00 Dieser Teil behandelt verschiedene Themen im Zusammenhang mit PyTorch, einschließlich Tensor-Manipulationsmethoden wie Reshape, View, Stacking, Squeeze, Unsqueeze und Permute. Der Kursleiter stellt Codebeispiele bereit, betont die Bedeutung der Tensorformmanipulation beim maschinellen Lernen und Deep Learning und fordert die Zuschauer auf, zu versuchen, Tensoren zu indizieren, um bestimmte Werte zurückzugeben. Der Kurs behandelt auch das Konvertieren von Daten zwischen PyTorch-Tensoren und NumPy-Arrays und die jeweiligen Standarddatentypen sowie das Konzept der Reproduzierbarkeit in neuronalen Netzwerken und die Verwendung von Zufallsstartwerten, um die Zufälligkeit in Experimenten zu reduzieren. Der Kursleiter erklärt, wie Sie für schnellere Berechnungen auf GPUs zugreifen und bietet Optionen wie Google Colab, Colab Pro, die Verwendung Ihrer eigenen GPU oder die Verwendung von Cloud-Computing-Diensten wie GCP, AWS oder Azure.

04:00:00 - 05:00:00 Dieser Teil behandelt eine breite Palette von Themen für Anfänger, einschließlich der Einrichtung des GPU-Zugriffs mit PyTorch, der Verwendung des nn-Moduls in PyTorch, der Erstellung linearer Regressionsmodelle und mehr. Der Kursleiter betont, wie wichtig es ist, dass geräteunabhängiger Code auf verschiedenen Geräten ausgeführt wird und dass die Art des Geräts berücksichtigt wird, auf dem Tensoren und Modelle gespeichert werden. Der Kurs umfasst auch Übungen und einen zusätzlichen Lehrplan, um das Gelernte zu üben, und der Kursleiter gibt Tipps, wie Sie die Übungen in Colab angehen können. Der Kurs umfasst das Trainieren und Evaluieren von Modellen für maschinelles Lernen, das Aufteilen von Daten in Trainings- und Testsätze zur Generalisierung sowie das Visualisieren von Daten. Der Kursleiter erklärt, wie man ein lineares Regressionsmodell mit reinem PyTorch erstellt, was das Erstellen eines Konstruktors mit der init-Funktion, das Erstellen eines Gewichtungsparameters mit nn.parameter und das Festlegen zufälliger Parameter mit Torch.rand umfasst.

05:00:00 - 06:00:00 Dieser Teil behandelt Themen wie das Erstellen eines linearen Regressionsmodells mit PyTorch, das Implementieren von Optimierungsalgorithmen wie Gradientenabstieg und Backpropagation durch PyTorch und das Testen der Vorhersagekraft eines PyTorch-Modells. Außerdem wird die Bedeutung der Verwendung des Kontextmanagers Torch.inference_mode beim Treffen von Vorhersagen, Initialisieren von Modellparametern, Verwenden von Verlustfunktionen zum Messen der Genauigkeit von Vorhersagen eines Modells und Optimieren von Modellparametern zum Verbessern der Genauigkeit des Modells erörtert. Darüber hinaus werden grundlegende Module in PyTorch vorgestellt, darunter Torch.nn, Torch.nn.module, Torch.optim und Torch.utils.dataset.

06:00:00 - 07:00:00 Dieser Teil behandelt verschiedene Aspekte von PyTorch und maschinellem Lernen. Ein Abschnitt konzentrierte sich auf die Schritte, die zum Erstellen einer Trainingsschleife in PyTorch erforderlich sind, einschließlich des Schleifens durch die Daten, des Rechenverlusts und der Durchführung der Rückausbreitung. Der Kursleiter betonte die Bedeutung der Auswahl der geeigneten Verlustfunktion und des Optimierers und stellte das Konzept des Gradientenabstiegs vor. Ein weiterer Abschnitt befasste sich mit dem Optimierer und der Lernrate und wie sie sich auf die Parameter des Modells auswirken. Das Video betonte auch die Bedeutung des Testens und gab einen Überblick über das Erstellen von Testvorhersagen und das Berechnen von Testverlusten. Der Kurs bietet zusätzliche Ressourcen für diejenigen, die sich für den mathematischen Hintergrund von Backpropagation und Gradient Descent interessieren.

07:00:00 - 08:00:00 Dieser Teil behandelt mehrere Themen im Zusammenhang mit PyTorch. Der Kurs behandelt die Wichtigkeit, den Fortschritt eines Modells zu verfolgen, indem man die Verlustwerte aufzeichnet und die Verlustkurven zeichnet, die einen abnehmenden Trend zeigen sollten. Der Kursleiter erläutert auch die Methoden zum Speichern und Laden von PyTorch-Modellen, darunter das Speichern eines Zustandswörterbuchs, das Laden des Modells mit der Methode „torch.nn.module.loadStateDict“ oder der Methode „torch.load“ und das Testen des geladenen Modells. In späteren Abschnitten behandelt der Kurs die Erstellung linearer Regressionsmodelle und die Verwendung bereits vorhandener Modelle in PyTorch, wie z. B. die lineare Schicht, durch Unterklassen von nn.module.

08:00:00 - 09:00:00 Der Teil deckt ein breites Themenspektrum im Bereich Deep Learning und Machine Learning ab. Der erste Abschnitt behandelt die verschiedenen Ebenen, die in Torch.nn verfügbar sind, vorgefertigte Implementierungen dieser Ebenen und das Trainieren von PyTorch-Modellen mit Verlust- und Optimierungsfunktionen. In den folgenden Abschnitten erläutert der Kursleiter die Bedeutung von geräteunabhängigem Code, das Speichern und Laden von PyTorch-Modellen und die Herangehensweise an Klassifizierungsprobleme. Der Kursleiter liefert Beispiele und betont die Bedeutung der numerischen Codierung für Eingaben, die Erstellung benutzerdefinierter Daten und die mit einem Klassifizierungsmodell verbundenen Designkomplexitäten, wie z. B. die Anzahl der verborgenen Schichten, Neuronen, Verlustfunktionen und Optimierer. Abschließend betont der Kursleiter, dass der Beginn eines maschinellen Lernproblems mit Daten der wichtigste Schritt ist.

09:00:00 - 10:00:00 Dieser Teil bietet einen Überblick darüber, wie ein neuronales Netzwerk mit PyTorch für die binäre Klassifizierung erstellt und trainiert wird. Das Video behandelt eine breite Palette von Themen, darunter das Erstellen eines benutzerdefinierten Datensatzes, das Überprüfen von Eingabe- und Ausgabeformen, das Vorbereiten von Daten für das Training, das Erstellen und Senden eines Modells an eine GPU, das Auswählen eines Optimierers und einer Verlustfunktion für ein Modell sowie das Treffen von Vorhersagen. Der Kurs beinhaltet praktische Demonstrationen dieser Konzepte und zielt darauf ab, ein umfassendes Verständnis der Verwendung von PyTorch für maschinelle Lernprojekte zu vermitteln.

10:00:00 - 11:00:00 Dieser Teil behandelt mehrere Themen, darunter Verlustfunktionen, Optimierer, Aktivierungsfunktionen, Trainingsschleife und Bewertungsmetriken. Der Kursleiter erklärt, wie man die Verlustfunktion und den Optimierer einrichtet, eine Genauigkeitsfunktion erstellt und rohe Logits in Vorhersagewahrscheinlichkeiten und Labels umwandelt. Der Kurs befasst sich auch mit dem Unterschied zwischen BCE-Verlust und BCE mit Logits-Verlust und der Berechnung von Testverlust und -genauigkeit für ein Klassifizierungsmodell. Darüber hinaus gibt der Kursleiter Tipps zur Verbesserung der Leistung eines Modells, z. B. zum Erhöhen der Tiefe des neuronalen Netzwerks, zum Anpassen von Hyperparametern und zum Importieren und Verwenden von Hilfsfunktionen aus externen Python-Skripten.

11:00:00 - 12:00:00 In diesem Teil erklärt der Kursleiter, wie ein Modell verbessert werden kann, indem Hyperparameter wie die Anzahl der verborgenen Einheiten, die Anzahl der Schichten und die Anzahl der Epochen geändert werden, und hebt die Bedeutung des Testens hervor Änderungen nacheinander, um Verbesserungen oder Verschlechterungen zu identifizieren. Sie diskutieren auch die Unterschiede zwischen Parametern und Hyperparametern und warum es wichtig ist, diese Unterscheidung zu treffen. Darüber hinaus behandelt der Kursleiter Techniken zur Fehlerbehebung, wenn ein Modell nicht funktioniert, und führt in die Bedeutung der Nichtlinearität bei maschinellem Lernen und Deep-Learning-Modellen ein. Der Kursleiter demonstriert diese Konzepte mit verschiedenen Beispielen, einschließlich linearer und nichtlinearer Regressionsprobleme, und zeigt, wie Modelle trainiert und bewertet werden, während verschiedene Hyperparameter und Verlustfunktionen getestet werden.

12:00:00 - 13:00:00 Dieser Kurs zu PyTorch für Deep Learning und maschinelles Lernen behandelt grundlegende bis fortgeschrittene PyTorch-Konzepte zum Erstellen von Modellen. Der Kursleiter führt in das Konzept der Nichtlinearität ein und demonstriert, wie Klassifikationsmodelle unter Verwendung von Nichtlinearität mit PyTorch erstellt werden. Sie besprechen auch Gebäudeoptimierer, Verlustfunktionen und benutzerdefinierte Aktivierungsfunktionen. Es wird betont, wie wichtig es ist, lineare und nichtlineare Funktionen zu kombinieren, um Muster in Daten zu finden, indem Schichten dieser Funktionen gestapelt werden, um ein Modell zu erstellen. Der Kurs behandelt sowohl binäre als auch mehrklassige Klassifizierungsmodelle und erklärt, wie sie in PyTorch eingerichtet werden. Der Abschnitt schließt mit der Demonstration, wie Mehrklassen-Klassifizierungsmodelle mit Eingabemerkmalen und Ausgabemerkmalen initialisiert werden.

13:00:00 - 14:00:00 Der Kursleiter behandelt in diesem Teil die Erstellung eines linearen Schichtstapelmodells mit der nn.Sequential-Methode von PyTorch zur Durchführung einer Mehrklassenklassifizierung. Sie erläutern die Erstellung der Verlustfunktion und des Optimierers unter Verwendung von Kreuzentropieverlust und stochastischem Gradientenabstieg (SGD). Der Kursleiter erörtert auch Dropout-Layer und die Bedeutung der Fehlerbehebung im maschinellen Lerncode, um Fehler zu beheben. Sie demonstrieren die Bewertung des trainierten Modells unter Verwendung verschiedener Klassifizierungsbewertungsmethoden wie Genauigkeit, Präzision, Abruf, F1-Score, Konfusionsmatrix und Klassifizierungsbericht unter Verwendung von Torchmetrik und Scikit-Learn-Bibliotheken. Abschließend zeigt der Kursleiter, wie vorgefertigte Metrikfunktionen in PyTorch mithilfe des Torchmetrics-Pakets importiert und verwendet werden, und stellt Links zum Torchmetrics-Modul und außerschulischen Artikeln zur weiteren Erkundung bereit.

14:00:00 - 15:00:00 Dieser Teil behandelt verschiedene Themen im Zusammenhang mit PyTorch und Computer Vision unter Verwendung von maschinellem Lernen. Dazu gehört das Verstehen von Computer-Vision-Problemen wie Binär- oder Mehrklassenklassifizierungsproblemen und das Lernen, wie ein maschinelles Lernmodell Muster aus verschiedenen Beispielbildern lernt. Das Video erklärt auch PyTorch-Bibliotheken wie TorchVision und wie sie Datensätze, vortrainierte Modelle und Transformationen zur Manipulation von Bilddaten in Zahlen enthalten, die von maschinellen Lernmodellen verwendet werden können. Darüber hinaus behandelt der Kursleiter die Eingabe- und Ausgabeformen des FashionMNIST-Datensatzes, die Bedeutung der Visualisierung und Untersuchung von Datensätzen zur Identifizierung potenzieller Probleme und bietet Demonstrationen zum Plotten und Visualisieren von Bilddaten mit PyTorch und Matplotlib.

15:00:00 - 16:00:00 Dieser Videokurs zu PyTorch für Deep Learning und maschinelles Lernen behandelt die Bedeutung der Datenvorbereitung und der Verwendung von PyTorch-Datensätzen und Datenladern. Das Konzept der Mini-Batches in Deep Learning wird betont, und der Prozess der Erstellung von Zug- und Testdatenladern wird mit PyTorch erklärt, wobei der Hyperparameter für die Batchgröße auf 32 gesetzt ist. Die Bedeutung der Visualisierung von Bildern in einem Batch und das Konzept werden erörtert der Abflachung wird eingeführt, um mehrdimensionale Daten in einen einzelnen Vektor zur Verwendung in einem PyTorch-Modell umzuwandeln. Der Prozess zum Erstellen eines einfachen neuronalen Netzwerkmodells mit einer flachen Ebene und zwei linearen Ebenen wird behandelt, und das Konzept der Verwendung von Hilfsfunktionen in Python-Projekten für maschinelles Lernen wird erläutert. Schließlich wird die Bedeutung von Timing-Funktionen zum Messen der Trainingsdauer eines Modells und die Verwendung von TQDM für einen Fortschrittsbalken demonstriert.

16:00:00 - 17:00:00 Dieser Teil des Kurses behandelt verschiedene Themen im Zusammenhang mit PyTorch, beginnend mit dem Einrichten der Trainings- und Testschleifen, der Fehlerbehebung bei häufigen Fehlern, der Bewertung von Modellen und dem Treffen von Vorhersagen. Der Kursleiter betont die Bedeutung des Experimentierens, um das beste neuronale Netzwerkmodell für einen bestimmten Datensatz zu finden, und erörtert die Vorteile der Nichtlinearität für die Modellierung nichtlinearer Daten. Sie zeigen auch, wie man Hilfsfunktionen in PyTorch erstellt, Schleifen optimiert und auswertet und Trainings- und Testschritte durchführt. Der Kurs befasst sich weiter mit geräteunabhängigem Code und den Vorteilen von Trainingsmodellen auf CPUs und GPUs und schließt mit einer Demonstration, wie die Trainingszeit auf beiden Geräten gemessen werden kann.

17:00:00 - 18:00:00 Dieser Teil behandelt viele Themen im Bereich Deep Learning und maschinelles Lernen. Der Kursleiter zeigt, wie man ein Deep-Learning-Modell erstellt und testet, ein Convolutional Neural Network (CNN) mit PyTorch erstellt und Blöcke in PyTorch erstellt. Darüber hinaus geht das Tutorial auf die Zusammensetzung eines PyTorch-Modells und die Funktionsweise von Faltungen in der Praxis, Änderungen an Schritt- und Auffüllwerten in einer Faltungsschicht sowie die Faltungs- und Max-Pooling-Schichten in PyTorch ein. Während des gesamten Videos teilt der Kursleiter Ressourcen, stellt PyTorch-Code und Schritt-für-Schritt-Erklärungen bereit und bietet Anleitungen zum Erstellen von effizientem und wiederverwendbarem Code.

19:00:00 - 20:00:00 Dieser Teil behandelt verschiedene Themen wie die Visualisierung von Modellvorhersagen für maschinelles Lernen, die Bewertung eines mehrklassigen Klassifizierungsmodells mithilfe der Konfusionsmatrix in PyTorch, die Installation und Aktualisierung von Paketen in Google Colab, das Speichern und Laden einer PyTorch Modell und Arbeiten mit benutzerdefinierten Datensätzen. Der Kurs demonstriert auch den Prozess zum Erstellen eines Computer-Vision-Modells mit PyTorch. Der Kursleiter betont die Bedeutung der Verwendung von Domänenbibliotheken für Datenladefunktionen und anpassbare Datenladefunktionen und stellt Beispiele für verschiedene Kategorien wie Bild, Text, Audio und Empfehlung zur Verfügung. Sie bieten auch hilfreiche Ressourcen wie die Website Learn pytorch.io und das PyTorch Deep Learning Repo.

20:00:00 - 21:00:00 Der Kursleiter dieses PyTorch for Deep Learning & Machine Learning-Kurses beginnt mit der Einführung des Food 101-Datensatzes, stellt jedoch eine kleinere Teilmenge mit drei Lebensmittelkategorien und nur 10 % der Bilder zum Üben bereit PyTorch. Der Kursleiter betont, wie wichtig es ist, ein separates Verzeichnis für Daten zu haben, und zeigt dann, wie Bilder mit den Pillow- und PyTorch-Methoden der Python-Bildbibliothek geöffnet, visualisiert und transformiert werden. Der Abschnitt behandelt auch Datentransformationen mit PyTorch, wie z. B. das Ändern der Größe und Spiegeln von Bildern, und der Kursleiter zeigt, wie Bilder als Tensoren für maschinelle Lernmodelle mit PyTorch geladen und transformiert werden. Der Abschnitt endet mit einem Vorschlag, die verschiedenen in PyTorch verfügbaren Bildtransformationsoptionen zu erkunden.

21:00:00 - 22:00:00 In diesem PyTorch-Kurs erklärt der Kursleiter, wie man Bilddaten lädt und in Tensoren umwandelt, Datenlader für Schulungen und Tests erstellt und anpasst und einen benutzerdefinierten Datenladekurs erstellt. Sie demonstrieren die Funktionalität der vorgefertigten Datensatzfunktion, Bildordner, die verwendet werden kann, um Transformationen für alle Bilder anzupassen. Sie gehen auch durch die Schritte, die zum Erstellen eines benutzerdefinierten Datenladeprogramms erforderlich sind, einschließlich des Erstellens einer Funktion zum Abrufen von Klassennamen und Zuordnungen aus Verzeichnissen, des Unterklassifizierens von Torch.utils.data.Dataset und des Überschreibens der Methoden get item und len. Obwohl die Anpassungsmöglichkeiten von Dataloadern nützlich sind, besteht die Gefahr, dass Code mit Fehlern geschrieben wird.

22:00:00 - 23:00:00 Dieser Teil des Kurses behandelt die Erstellung und Verwendung benutzerdefinierter Datensätze und benutzerdefinierter Loader in PyTorch sowie die Implementierung von Datenerweiterungstechniken. Der Kursleiter demonstriert, wie ein Convolutional Neural Network mit der PyTorch-Bibliothek erstellt wird, und gibt Ratschläge zu Bereichen, in denen experimentiert werden kann, einschließlich Hyperparametern wie Kernelgröße und Stride. Der Kurs behandelt auch das Testen der Augmentationspipeline und die Nutzung trivialer Augmentierungstechniken zur Verbesserung der Modellgenauigkeit. Zu den Erkenntnissen aus dem Kurs gehören die Flexibilität von PyTorch und die Fähigkeit, von der Basisdatensatzklasse zu erben, um benutzerdefinierte Ladefunktionen für Datensätze zu erstellen.

23:00:00 - 24:00:00 Der Kursleiter behandelt verschiedene Aspekte von PyTorch für Deep Learning und maschinelles Lernen, einschließlich Fehlerbehebung bei Formfehlern in Modellen, Verwendung von Torch Info zum Drucken von Zusammenfassungen von PyTorch-Modellen, Erstellen von Zug- und Testschrittfunktionen zur Bewertung Leistung auf Datensätzen und Kombinieren dieser Funktionen zu einer Zugfunktion für ein einfacheres Modelltraining. Der Kursleiter erörtert auch das Timing des Trainingsprozesses eines Deep-Learning-Modells, das Zeichnen von Verlustkurven, um den Modellfortschritt im Laufe der Zeit zu verfolgen, und das Bewerten der Modellleistung durch Experimentieren mit verschiedenen Einstellungen, z. B. dem Hinzufügen von Ebenen oder dem Anpassen der Lernrate. Letztendlich bilden diese Fähigkeiten eine solide Grundlage für die Erstellung und Bewertung fortschrittlicher Modelle mit PyTorch.

24:00:00 - 25:00:00 In diesem Abschnitt des Kurses „PyTorch for Deep Learning & Machine Learning“ erläutert der Kursleiter die Konzepte der Überanpassung und Unteranpassung in Modellen sowie Möglichkeiten, damit umzugehen, z. B. Datenerweiterung, vorzeitiges Stoppen und Vereinfachen des Modells. Sie betonen, wie wichtig es ist, die Leistung des Modells im Laufe der Zeit anhand von Verlustkurven zu bewerten, und bieten Tools zum Vergleichen der Leistung verschiedener Modelle. Der Abschnitt behandelt auch, wie benutzerdefinierte Bilder für die Vorhersage vorbereitet werden, und zeigt, wie man ein Bild mit Torch Vision.io in PyTorch lädt und es in einen Tensor umwandelt. Der Kursleiter weist darauf hin, dass das Bild möglicherweise in der Größe geändert, in Float32 konvertiert und auf das richtige Gerät übertragen werden muss, bevor es durch ein Modell geleitet wird.

25:00:00 - 26:35:00 Dieser Teil des PyTorch-Kurses behandelt verschiedene Themen wie Datentypen und -formen, das Transformieren von Bilddaten mit dem Transformationspaket von PyTorch und das Erstellen von Vorhersagen für benutzerdefinierte Daten mithilfe eines vortrainierten Modells. Um sicherzustellen, dass die Daten im richtigen Format vorliegen, bevor sie in das Modell eingespeist werden, ist es wichtig, sie vorzuverarbeiten, auf Werte zwischen 0 und 1 zu skalieren, sie gegebenenfalls zu transformieren und zu überprüfen, ob sie das richtige Gerät, den richtigen Datentyp und die richtige Form haben . Der Kursleiter ermutigt die Lernenden auch, anhand der benutzerdefinierten PyTorch-Datensatzübungen zu üben, und bietet Lösungen als Referenzen an. Der Kursleiter erwähnt auch, dass es in learnpytorch.io fünf zusätzliche Kapitel zu erkunden gibt, die Themen wie Transfer Learning, Verfolgung von Pytorch-Modellexperimenten, Replikation von Pytorch-Papier und Bereitstellung von Pytorch-Modellen behandeln.


Teil 1

  • 00:00:00 In diesem Abschnitt des Videos stellt der Kursleiter Daniel Bourke den Zuschauern den PyTorch-Kurs vor und legt die Erwartungen an das anfängerfreundliche Video-Tutorial fest. Der Schwerpunkt des Kurses liegt auf der Implementierung von maschinellen Lernkonzepten in PyTorch, einem Python-basierten Framework, in dem die Zuschauer durch das Schreiben von Code lernen. Bourke erwähnt, dass der Kurs wichtige Themen wie Transfer Learning, Model Deployment und Experiment Tracking abdecken wird, und wenn die Zuschauer mehr über PyTorch erfahren möchten, stehen unter Learn pytorch.io zusätzliche Ressourcen zur Verfügung. Schließlich definiert Bourke maschinelles Lernen als den Prozess, Daten in Zahlen umzuwandeln und Muster mithilfe von Algorithmen und Mathematik zu finden, und erklärt, dass der Schwerpunkt des Kurses auf dem Schreiben von Code liegt, aber Zuschauer können zusätzliche Ressourcen finden, wenn sie tiefer in die Mathematik eintauchen möchten hinter dem Code.

  • 00:05:00 In diesem Abschnitt wird der Unterschied zwischen traditioneller Programmierung und maschinellem Lernen erklärt. Bei der traditionellen Programmierung werden Regeln für eine Aufgabe geschrieben, während maschinelle Lernalgorithmen die Regeln auf der Grundlage von Eingabe- und Ausgabedaten herausfinden. Der Grund, maschinelles Lernen gegenüber herkömmlicher Programmierung zu verwenden, sind komplexe Probleme, bei denen es umständlich wird, alle Regeln manuell zu schreiben. Maschinelles Lernen kann für alles verwendet werden, solange es in Zahlen umgewandelt werden kann, aber die wichtigste Regel von Google beim maschinellen Lernen ist, zuerst zu versuchen, ein einfaches regelbasiertes System zu erstellen, bevor man sich dem maschinellen Lernen zuwendet.

  • 00:10:00 In diesem Abschnitt erläutert der Kursleiter, wozu Deep Learning gut ist und wozu es nicht gut ist. Deep Learning ist hilfreich, um Probleme anzugehen, die lange Listen von Regeln erfordern, sich ständig ändernde Umgebungen zu handhaben und Erkenntnisse aus großen Datensätzen zu gewinnen. Deep Learning ist jedoch nicht ideal für Aufgaben, die eine Erklärbarkeit erfordern, da die von einem Deep-Learning-Modell gelernten Muster normalerweise von Menschen nicht interpretiert werden können. Wenn ein einfaches regelbasiertes System das vorliegende Problem lösen kann, ist es möglicherweise besser, dieses anstelle von Deep Learning zu verwenden.

  • 00:15:00 In diesem Abschnitt des vollständigen Kurses zu PyTorch für Deep Learning und Machine Learning vergleicht der Kursleiter Machine Learning und Deep Learning. Herkömmliche Techniken des maschinellen Lernens, wie Gradienten-gestützte Maschinen wie xg boost, eignen sich am besten für strukturierte Daten in Zeilen und Spalten. Für unstrukturierte Daten wie natürliche Sprache oder Bilder ist Deep Learning im Allgemeinen die bessere Wahl. Deep-Learning-Modelle sind probabilistisch, d. h. sie setzen auf das Ergebnis, während regelbasierte Systeme vorhersagbare Ergebnisse liefern. Darüber hinaus erfordern Deep-Learning-Modelle eine große Datenmenge, um großartige Ergebnisse zu erzielen, aber es gibt Techniken, um mit weniger Daten gute Ergebnisse zu erzielen.

  • 00:20:00 In diesem Abschnitt erklärt der Kursleiter den Unterschied zwischen strukturierten und unstrukturierten Daten und die Algorithmen, die für jeden Typ beim maschinellen Lernen und Deep Learning verwendet werden. Strukturierte Daten funktionieren gut mit flachen Algorithmen wie Random Forest und Gradient Boosted Machines, während unstrukturierte Daten neuronale Netze erfordern. Der Ausbilder vertieft sich dann in die Arten von neuronalen Netzen wie vollständig verbundene neuronale Netze, konvolutionelle neuronale Netze, rekurrente neuronale Netze und Transformatoren. Der Kursleiter weist darauf hin, dass, sobald die grundlegenden Bausteine für neuronale Netze erlernt sind, die anderen Arten von neuronalen Netzen leichter zu verstehen sind. Der Abschnitt endet damit, dass der Kursleiter den Zuschauer ermutigt, vor dem nächsten Video zu recherchieren und sich eine eigene Definition von neuronalen Netzen zu bilden.

  • 00:25:00 In diesem Abschnitt des PyTorch-Kurses gibt der Kursleiter einen Überblick über neuronale Netze und ihre Anatomie. Neuronale Netze bestehen aus einer Eingabeschicht, in der Eingabedaten in Zahlen umgewandelt werden, mehreren verborgenen Schichten, die Muster in den Daten manipulieren und lernen, und einer Ausgabeschicht, die die erlernten Darstellungen ausgibt. Die Anzahl der Knoten in den verborgenen Schichten kann angepasst werden, und das neuronale Netz lernt die Darstellungen, auch Merkmale oder Gewichte genannt, selbstständig. Für unterschiedliche Probleme können verschiedene Arten von neuronalen Netzen verwendet werden, beispielsweise CNNs für Bilder und Transformatoren für die Verarbeitung natürlicher Sprache. Sobald das neuronale Netzwerk seine Darstellungen ausgibt, können sie in ein für Menschen verständliches Format umgewandelt werden. Die Anatomie eines neuronalen Netzwerks kann ebenfalls angepasst werden, wobei die Anzahl der Schichten von wenigen bis zu über hundert reicht.

  • 00:30:00 In diesem Abschnitt wird die Anatomie eines neuronalen Netzes erklärt. Neuronale Netze bestehen aus einer Eingangsschicht, einer oder mehreren verborgenen Schichten mit jeweils vielen Neuronen oder verborgenen Einheiten und einer Ausgangsschicht. Muster und Datensätze werden durch die Verwendung linearer und nichtlinearer Funktionen in numerische Daten umgewandelt. Die Muster werden unter Verwendung einer Kombination aus linearen und nichtlinearen Funktionen gezeichnet, um ein gewünschtes Ergebnis zu erzielen. Verschiedene Lernparadigmen werden diskutiert, darunter überwachtes Lernen, bei dem Daten und Labels zusammen verwendet werden, und unüberwachtes Lernen, bei dem nur Daten verwendet werden. Selbstüberwachte Lernalgorithmen verwenden Daten, um Muster zu finden, während beim Transferlernen Muster verwendet werden, die bereits in einem anderen Modell gelernt wurden.

  • 00:35:00 In diesem Abschnitt erörtert der Kursleiter die verschiedenen Paradigmen des maschinellen Lernens, insbesondere überwachtes Lernen, Transferlernen und bestärkendes Lernen. Während der Schwerpunkt in diesem Kurs auf überwachtem Lernen und Transferlernen liegt, ermutigt der Kursleiter die Lernenden, sich in ihrer eigenen Zeit mit dem bestärkenden Lernen zu beschäftigen. Darüber hinaus stellt der Kursleiter Beispiele dafür bereit, wie Deep Learning verwendet wird, z. B. Empfehlungssysteme, Übersetzung, Spracherkennung und Computer Vision. Die Vielseitigkeit des maschinellen Lernens wird betont, da alles, was in Zahlen umgewandelt und zum Auffinden von Mustern programmiert werden kann, in maschinellen Lernalgorithmen verwendet werden kann.

  • 00:40:00 In diesem Abschnitt des Videos erörtert der Ausbilder mögliche Anwendungen von Deep Learning, wie z. B. die Objekterkennung mithilfe von Computer Vision, um Fahrerflucht zu erfassen und das Auto des Täters zu identifizieren. Der Dozent erklärt das Konzept der Verarbeitung natürlicher Sprache und wie es bei der Spam-Erkennung verwendet wird. Anschließend behandelt das Video die Grundlagen von PyTorch, dem beliebtesten Forschungs-Framework für Deep Learning, das schnelles Deep Learning in Python, Zugriff auf vorgefertigte Modelle und beschleunigte GPU-Leistung ermöglicht. Die PyTorch-Website wird als notwendige Ressource für den Kurs identifiziert.

  • 00:45:00 In diesem Abschnitt erörtert der Kursleiter PyTorch, das seiner Meinung nach das beliebteste Deep-Learning-Forschungsframework ist. Er zitiert Papers with Code, das maschinell lernende Papiere mit Code verfolgt, um die Popularität von PyTorch zu demonstrieren, was zeigt, dass 58 % der 65.000 Papiere, die die Website verfolgt hat, mit PyTorch implementiert sind. Darüber hinaus nennt er verschiedene Gründe für die Popularität von PyTorch, darunter seine Verwendung durch Unternehmen wie Facebook/Meta, Tesla, Microsoft und OpenAI sowie seine Fähigkeit, Forschungsmethoden zu standardisieren. Der Ausbilder hebt auch den Tweet von Francois Chale hervor, der PyTorch als ein Tool lobt, mit dem jeder Probleme lösen kann, ohne dass erhebliche Investitionen oder ein Ingenieurteam erforderlich sind. Insgesamt kommt der Dozent zu dem Schluss, dass PyTorch ein Forschungsfavorit mit einem vielfältigen Ökosystem und einer hohen Akzeptanzrate unter Branchenschwergewichten ist.

  • 00:50:00 In diesem Abschnitt des Kurses „PyTorch for Deep Learning & Machine Learning“ erörtert der Kursleiter die verschiedenen Anwendungen von PyTorch, beispielsweise in der Landwirtschaft und auf Social-Media-Plattformen wie Facebook und Microsoft. Darüber hinaus erklärt er, wie PyTorch es Benutzern ermöglicht, maschinellen Lerncode auf GPUs auszuführen, die bei der Durchführung numerischer Berechnungen, insbesondere bei der Parallelverarbeitung, sehr effizient sind. PyTorch nutzt CUDA, um die Ausführung von maschinellem Lerncode auf NVIDIA-GPUs zu ermöglichen, und obwohl TPUs verfügbar sind, sind GPUs bei der Ausführung von PyTorch-Code tendenziell beliebter. Außerdem lässt er die Frage "Was ist ein Tensor?" dem Publikum zur Recherche, mit dem folgenden Abschnitt, um das Thema eingehend zu behandeln.

  • 00:55:00 In diesem Abschnitt erklärt der Kursleiter, dass Tensoren die grundlegenden Bausteine von PyTorch sind und alles sein können, was Zahlen darstellt. Die Eingabedaten werden numerisch codiert, um sie in einen Tensor umzuwandeln, der ein Bild oder eine Million Bilder sein kann. Die Eingabetensoren werden dann an ein neuronales Netzwerk weitergeleitet, das sie durch mathematische Operationen manipuliert und einen anderen Tensor ausgibt, der dann wieder in ein für Menschen verständliches Format umgewandelt wird. Der Grund für die Verwendung von PyTorch und die Online-Suche nach Antworten auf Fragen wird hervorgehoben, ebenso wie eine Einführung in bestimmte Themen, die im Kurs behandelt werden.

Teil 2

  • 01:00:00 In diesem Abschnitt hebt der Kursleiter die im PyTorch-Kurs behandelten Themen hervor. Der Kurs beginnt mit den Grundlagen von PyTorch, konzentriert sich auf Tensoren und Tensoroperationen, geht dann zur Vorverarbeitung von Daten über, erstellt und verwendet vortrainierte Deep-Learning-Modelle, passt ein Modell an einen Datensatz an, trifft Vorhersagen und bewertet die Vorhersagen des Modells. Der Kursleiter erklärt den Arbeitsablauf, einschließlich Bereitstellen der Daten, Auswählen eines vortrainierten Modells, Auswählen einer Verlustfunktion und eines Optimierers, Erstellen einer Trainingsschleife, Anpassen des Modells und Verbessern des Modells durch Experimentieren. Abschließend betont der Dozent, wie wichtig es ist, mitzucodieren und den Code zu erforschen und damit zu experimentieren, während er außerschulische Ressourcen verknüpft, um mehr über die Theorie hinter dem Code zu erfahren.

  • 01:05:00 In diesem Abschnitt rät der Kursleiter des Kurses „PyTorch for Deep Learning & Machine Learning“ den Lernenden, den Kurs mit dem Verstand eines Wissenschaftlers und Kochs anzugehen. Er betont die Bedeutung von Experimenten und Visualisierung, um die Daten beim Deep Learning zu verstehen. Darüber hinaus ermutigt der Ausbilder die Lernenden, Fragen zu stellen und die bereitgestellten Übungen zu machen sowie ihre Arbeit mit anderen zu teilen, um ihr eigenes Lernen und das anderer zu unterstützen. Schließlich rät er den Lernenden, nicht zu viel nachzudenken und zu sagen, dass sie nicht lernen können, und fordert sie auf, zu vermeiden, dass ihr Gehirn Feuer fängt. Schließlich leitet er die Lernenden zu den grundlegenden Ressourcen, die für den Kurs erforderlich sind, einschließlich eines GitHub-Repos mit allen erforderlichen Materialien.

  • 01:10:00 In diesem Abschnitt erklärt der Referent die für den Kurs verfügbaren Ressourcen und wie man sie effektiv nutzt. Die Kursmaterialien, einschließlich Code und Notebooks, sind auf GitHub verfügbar, während die Fragen und Antworten zum Kurs auf der Registerkarte „Diskussionen“ desselben Repositorys zu finden sind. Zusätzlich gibt es ein Online-Buch unter learnpytorch.io. Für PyTorch-bezogene Fragen, die nicht kursspezifisch sind, werden die PyTorch-Foren und die Website dringend empfohlen. Der Referent stellt dann Google Colab vor, das während des gesamten Kurses das wichtigste Tool sein wird, und ermutigt die Benutzer, mitzucodieren, indem sie über colab.research.google.com darauf zugreifen.

  • 01:15:00 In diesem Abschnitt erklärt der Kursleiter, wie man mit Google Colab ein neues Notebook erstellt und PyTorch-Code schreibt. Google Colab bietet Vorteile wie die Möglichkeit, GPU- oder TPU-Beschleunigung für eine schnellere Rechenzeit zu verwenden, sowie vorinstalliertes PyTorch und andere gängige Data-Science-Pakete von Python. Der Kursleiter verlinkt zu einem Ressourcen-Notebook auf learnpytorch.io und stellt ein GitHub-Repository bereit, in dem Lernende Fragen zum Kurs stellen können. Der Kursleiter erwähnt auch, dass er zwar die kostenpflichtige Version von Google Colab verwendet, die kostenlose Version jedoch ausreicht, um den Kurs abzuschließen.

  • 01:20:00 In diesem Abschnitt stellt das Video vor, wie Sie PyTorch mit Google Colab einrichten oder sich auf das Einrichtungsdokument für die lokale Einrichtung beziehen. Das empfohlene Setup für den Abschluss des Kurses ist PyTorch 1.10 und CUDA 11.3. Das Video schlägt auch vor, einen Split-Window-Ansatz zu verwenden, um mitzumachen und ein Notizbuch zum Üben zu erstellen. Das Hauptaugenmerk des Videos liegt auf einer Einführung in Tensoren, dem Hauptbaustein für Deep Learning, auf der Bereitstellung von Beispielen für die Erstellung eines mit der Zahl sieben gefüllten Skalartensors und dem Zugriff auf die PyTorch-Dokumentation für Torch.Tensor.

  • 01:25:00 In diesem Abschnitt erklärt der Kursleiter die Grundlagen von PyTorch-Tensoren, beginnend mit der Erstellung von Tensoren mit Torch.Dot.Tensor. Er ermutigt die Lernenden, die PyTorch-Dokumentation zu lesen, um mehr über die Bibliothek zu erfahren. Anschließend erklärt der Kursleiter die Attribute von Skalaren, Vektoren und Matrizen. Er stellt klar, dass ein Skalar keine Dimensionen hat und nur eine einzelne Zahl ist, während ein Vektor eine Dimension hat, die normalerweise als Größe und Richtung dargestellt wird. Eine Matrix ist der nächste Schritt und hat zwei Dimensionen, die durch zwei Paare eckiger Klammern dargestellt werden. Er erklärt den Unterschied zwischen Dimension und Form und wie man die Form eines Vektors anhand seiner Dimensionen findet.

  • 01:30:00 In diesem Abschnitt stellt der Kursleiter Tensoren in PyTorch vor und erklärt, dass sie die grundlegenden Bausteine von neuronalen Deep-Learning-Netzwerken sind. Der Dozent zeigt, wie man Tensoren mit unterschiedlichen Dimensionen erstellt, die von einem Skalar über eine Matrix bis hin zu einem Tensor mit drei eckigen Klammerpaaren reichen. Der Kursleiter erklärt, dass die Anzahl der Dimensionen durch die Anzahl der eckigen Klammerpaare angegeben wird und die Form durch die Anzahl der Elemente in jeder Dimension bestimmt wird. Darüber hinaus stellt der Kursleiter fest, dass es zwar mühsam ist, Tensoren von Hand zu schreiben, es aber wichtig ist, zu verstehen, wie sie funktionieren, da PyTorch sie ausgiebig verwendet.

  • 01:35:00 In diesem Abschnitt erörtert der Kursleiter die Bedeutung zufälliger Tensoren in PyTorch für maschinelles Lernen und Deep Learning. Mit Tensoren voller Zufallszahlen zu beginnen und diese dann anzupassen, um die Daten besser darzustellen, ist ein Schlüsselkonzept in neuronalen Netzen. Um einen zufälligen Tensor in PyTorch zu erstellen, zeigt der Kursleiter, wie man die Torch.rand-Funktion verwendet, und erklärt, dass „Größe“ und „Form“ zwei verschiedene Versionen derselben Sache sind. Die Namenskonvention für Variablen im Deep Learning, wie z. B. Skalare und Vektoren in Kleinbuchstaben und Matrizen und Tensoren in Großbuchstaben, wird ebenfalls kurz diskutiert.

  • 01:40:00 In diesem Abschnitt demonstriert der Kursleiter, wie man mit PyTorch zufällige Tensoren erstellt, und erklärt, dass verschiedene Arten von Daten, einschließlich Bilder, im Tensorformat dargestellt werden können. Der Kursleiter erklärt, dass PyTorch den Prozess zum Erstellen von Tensoren vereinfacht und in vielen Fällen den Prozess hinter den Kulissen abwickelt. Sie demonstrieren, wie man einen Zufallstensor mit einer ähnlichen Form wie ein Bildtensor erstellt, und erklären, dass Bilder üblicherweise als Tensoren mit Farbkanälen, Höhe und Breite dargestellt werden. Der Dozent betont, dass fast jede Art von Daten als Tensor dargestellt werden kann, was PyTorch zu einem leistungsstarken Werkzeug für Deep-Learning- und Machine-Learning-Anwendungen macht.

  • 01:45:00 In diesem Abschnitt führt der Kursleiter ein, wie Tensoren aus Nullen und Einsen und eine Reihe von Tensoren erstellt werden. Der Tensor aller Nullen ist nützlich, um eine Tensormaske zu erstellen, die bestimmte Spalten eines Tensors auf Null setzen kann. Auch der Tensor aller Einsen kann in manchen Situationen nützlich sein. Der Kursleiter erklärt die Verwendung von „torch.range“, warnt jedoch davor, dass es in einigen Versionen von PyTorch möglicherweise veraltet ist, und schlägt vor, stattdessen eine Bereichsfunktion zu verwenden.

  • 01:50:00 In diesem Abschnitt wird die PyTorch-Funktion zum Erstellen von Tensoren mit einem Bereich und solchen mit derselben Form wie ein anderer Tensor erläutert. Der Bereich der Tensoren wird mit Torch.arange() erstellt, wo Start, Stopp und Schritt definiert werden können. In ähnlicher Weise wird Torch.zeros_like() verwendet, um einen Tensor aus Nullen mit der gleichen Form wie der Eingabetensor zu erstellen. Der Abschnitt führt dann Tensordatentypen in PyTorch ein und gibt an, dass der Standardtyp Float 32 ist, auch wenn keiner angegeben ist.

  • 01:55:00 In diesem Abschnitt lernen wir die wichtigen Parameter beim Erstellen von Tensoren in PyTorch kennen, z. B. Datentyp, Gerät und benötigt Grad. Wir entdecken, dass sich der Datentyp auf die Genauigkeit beim Rechnen bezieht und häufig mit 32-Bit-Gleitkomma- und 16-Bit-Gleitkomma-Tensoren interagiert. Einfache Genauigkeit ist 32 Bit und halbe Genauigkeit ist 16 Bit, wobei 32 Bit der Standard-Tensortyp in PyTorch ist. Der Hinweis zu Tensor-Datentypen ist wichtig, da dies einer der drei signifikanten Fehler ist, auf die wir bei der Verwendung von PyTorch und Deep Learning stoßen können. Die anderen beiden Fehler beinhalten Tensoren, die nicht die richtige Form haben und sich nicht auf dem richtigen Gerät befinden.

Teil 3

  • 02:00:00 In diesem Abschnitt erläutert der Kursleiter, wie wichtig es ist, bei der Arbeit mit Tensoren in PyTorch die richtige Form und das richtige Gerät beizubehalten. Wenn Tensoren unterschiedliche Formen haben oder sich auf unterschiedlichen Geräten (CPU oder GPU) befinden, können Fehler auftreten. Darüber hinaus erklärt der Kursleiter die Rolle des "grad"-Parameters bei der Verfolgung von Gradienten während numerischer Berechnungen. Die Lektion beinhaltet eine Herausforderung für die Zuschauer, Tensoren verschiedener Datentypen zu erstellen und die Auswirkungen der Multiplikation von Tensoren verschiedener Typen zu testen. Der Kursleiter warnt davor, dass einige Operationen möglicherweise nicht zu Fehlern führen, andere jedoch zu Datentypproblemen führen können, insbesondere beim Trainieren großer neuronaler Netze.

  • 02:05:00 In diesem Abschnitt des Videos geht der Kursleiter darauf ein, wie man Tensoroperationen behebt und sicherstellt, dass Tensoren den richtigen Datentyp und die richtige Form für die Verwendung in maschinellen Lernmodellen haben. Sie demonstrieren, wie der Datentyp, die Form und das Gerät eines Tensors mit PyTorch mithilfe der Befehle tensor.Dtype, tensor.shape und tensor.device überprüft werden. Der Kursleiter weist auch darauf hin, dass PyTorch Fehler auslösen kann, wenn Tensoren nicht den richtigen Datentyp oder die richtige Form haben, und zeigt, wie der Datentyp bei Bedarf geändert werden kann. Schließlich vergleichen sie die Größen- und Formbefehle und stellen fest, dass sie austauschbar sind, wobei einer eine Funktion und der andere ein Attribut ist.

  • 02:10:00 In diesem Abschnitt geht der Kursleiter auf die Manipulation von Tensoren in PyTorch ein, insbesondere auf Tensoroperationen wie Addition, Subtraktion, Multiplikation, Division und Matrizenmultiplikation. Diese Operationen sind wichtig für den Aufbau neuronaler Netze, da sie helfen, die häufigsten Probleme beim Aufbau von Deep-Learning-Modellen zu lösen. Darüber hinaus kombinieren neuronale Netze diese Funktionen auf verschiedene Weise, um die Zahlen eines zufälligen Tensors zu analysieren und anzupassen, um einen Datensatz darzustellen. Der Kursleiter zeigt anhand von PyTorch-Codebeispielen, wie die grundlegenden Tensoroperationen der Addition, Multiplikation und Matrizenmultiplikation durchgeführt werden.

  • 02:15:00 In diesem Abschnitt behandelt der Kursleiter Tensoroperationen mit PyTorch und stellt das Konzept der Matrixmultiplikation vor. Sie demonstrieren, wie man elementweise Multiplikation, Addition und Subtraktion mit Python-Operatoren sowie integrierten PyTorch-Funktionen durchführt. Der Kursleiter fordert die Zuschauer auf, die Matrixmultiplikation zu suchen und zu verstehen, bevor sie sich damit befassen. Sie erklären, dass es zwei Hauptmethoden gibt, Multiplikationen in neuronalen Netzen durchzuführen, die elementweise Multiplikation und die Matrixmultiplikation, die auch als Skalarprodukt bezeichnet wird. Der Dozent gibt Beispiele für beide Arten der Multiplikation mit Matrizen und betont, dass die Matrizenmultiplikation eine der häufigsten Tensoroperationen in neuronalen Netzen ist.

  • 02:20:00 In diesem Abschnitt erklärt der Kursleiter den Unterschied zwischen der elementweisen Multiplikation und der Punktproduktmultiplikation in PyTorch. Um das Konzept zu demonstrieren, durchläuft der Kursleiter einen schrittweisen Prozess der Multiplikation zweier Matrizen, wobei hervorgehoben wird, wie jedes Element multipliziert und addiert wird, um das Endergebnis zu erhalten. Als Nächstes zeigt der Kursleiter anhand eines rudimentären Beispiels, wie eine elementweise Multiplikation durchgeführt wird, gefolgt von einer Matrixmultiplikation unter Verwendung der Torch-Dot-Mat-Mall-Funktion. Der Abschnitt behandelt auch die Durchführung einer Matrixmultiplikation mit einer for-Schleife und erläutert den Leistungsunterschied zwischen den beiden Methoden.

  • 02:25:00 In diesem Abschnitt erläutert das Video die Vorteile der Vektorisierung gegenüber for-Schleifen in PyTorch am Beispiel der Matrixmultiplikation. Die Torch-Methode Torch Dot Matmore ist 10-mal schneller als die Verwendung einer for-Schleife für kleine Tensoren. Das Video warnt jedoch davor, dass zwei Hauptregeln für größere Tensoren erfüllt werden müssen, um Formfehler bei der Matrixmultiplikation zu vermeiden. Die erste Regel lautet, dass die Innenmaße der beiden Tensoren übereinstimmen müssen.

  • 02:30:00 In diesem Abschnitt erklärt der Kursleiter die Regeln der Matrizenmultiplikation und wie man häufige Formfehler bei der Multiplikation von Tensoren vermeidet. Die erste Regel lautet, dass die Innenmaße der Matrix übereinstimmen müssen. Um dies zu demonstrieren, erstellt der Kursleiter einen Tensor der Größe 3x2 und versucht, ihn mit einem anderen Tensor zu multiplizieren, der nicht die gleichen Innenmaße hat, was zu einem Fehler führt. Die zweite Regel ist, dass die resultierende Matrix die Form der äußeren Abmessungen hat. Der Kursleiter gibt Beispiele für die Matrizenmultiplikation mit unterschiedlichen Tensorformen und -dimensionen und wie sie zu unterschiedlichen Matrizenformen führen. Der Kursleiter ermutigt die Zuschauer, vor dem nächsten Video eine Website zum Üben der Matrixmultiplikation als Herausforderung zu nutzen.

  • 02:35:00 In diesem Abschnitt erörtert der Kursleiter Formfehler in neuronalen Netzen, die zu den häufigsten Fehlern beim Deep Learning gehören. Da neuronale Netze aus mehreren Matrixmultiplikationsoperationen zusammengesetzt sind, kann selbst ein geringfügiger Formfehler des Tensors zu einem Formfehler führen. Der Lehrer erstellt dann zwei Tensoren, Tensor a und Tensor b, und versucht, eine Matrixmultiplikation zwischen ihnen durchzuführen, was zu einem Formfehler führt. Um diesen Fehler zu beheben, führt der Kursleiter das Konzept einer Transponierung ein, die die Achsen oder Dimensionen eines bestimmten Tensors vertauscht, und demonstriert, wie damit die Form von Tensoren im PyTorch-Code angepasst werden kann.

  • 02:40:00 In diesem Abschnitt erklärt der Kursleiter das Konzept der Transponierung von Tensoren und seine Bedeutung bei der Matrizenmultiplikation. Die Transposition ordnet die Elemente eines Tensors neu an, ohne die zugrunde liegenden Daten zu ändern, und wird mit "Punkt t" bezeichnet. Der Kursleiter demonstriert auch, wie eine Matrixmultiplikationsoperation funktioniert, wenn Tensor b transponiert wird, und hebt die Bedeutung dieser Operation in neuronalen Netzwerken und Deep Learning hervor. Der Vorgang des Transponierens von Tensoren wird visuell veranschaulicht, und der Kursleiter stellt Schritt-für-Schritt-Codebeispiele bereit, um den Schülern zu helfen, das Konzept zu verstehen und zu üben.

  • 02:45:00 In diesem Abschnitt erklärt der Kursleiter die Matrixmultiplikation mit PyTorch und einer Website namens Matrix Multiplication. Er erstellte zwei Tensoren, Tensor a und Tensor b, und zeigte, dass ihre Multiplikation zu einem neuen Tensor mit einer bestimmten Ausgabeform führt. Er fordert die Zuschauer auf, Tensor a anstelle von Tensor b zu transponieren und die Ergebnisse zu sehen. Als nächstes behandelt der Kursleiter die Tensoraggregation und zeigt, wie man mit PyTorch-Methoden das Minimum, das Maximum, den Mittelwert und die Summe eines Tensors ermittelt. Er erklärt auch, wie die Tensoraggregation hilft, die Anzahl der Elemente in einem Tensor zu reduzieren.

  • 02:50:00 In diesem Abschnitt des PyTorch-Tutorials zeigt der Kursleiter, wie man einen der häufigsten Fehler in PyTorch löst, nämlich den falschen Datentyp. Er demonstriert dies, indem er einen Tensor vom Datentyp long erstellt, der die Verwendung der Torch-Mean-Funktion verhindert. Anschließend erklärt er, wie der Tensor mithilfe der x.type()-Methode in Float 32 umgewandelt wird, was für die mean-Funktion erforderlich ist. Zusätzlich zum Ermitteln von Minimum, Maximum, Mittelwert und Summe des Tensors stellt der Kursleiter auch eine Herausforderung zum Ermitteln des positionellen Minimums und Maximums, die im nächsten Video behandelt wird.

  • 02:55:00 In diesem Abschnitt wurde die Verwendung der argmin- und argmax-Funktionen in PyTorch zum Ermitteln des positionellen Minimums und Maximums eines Tensors erklärt. Die argmin-Funktion gibt die Position im Tensor mit dem minimalen Wert zurück, während die argmax-Funktion die Position im Tensor mit dem maximalen Wert zurückgibt. Diese Funktionen sind hilfreich, wenn die Definition der Minimal- oder Maximalwerte eines Tensors nicht erforderlich ist, sondern nur die Position dieser Werte. Darüber hinaus wurden die Konzepte des Umformens, Stapelns, Zusammendrückens und Entquetschens von Tensoren eingeführt, die für die Verwaltung von Formabweichungen beim maschinellen Lernen und Deep Learning nützlich sind.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

PyTorch für Deep Learning & Machine Learning – Vollständiger Kurs (Beschreibung für Teile 4–9)


PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs


Teil 4

  • 03:00:00 Der Kursleiter erklärt die verschiedenen Tensor-Manipulationsmethoden in PyTorch, wie z. B. Umformen, Anzeigen, Stapeln, Stauchen, Entstauchen und Permutieren. Reshape ändert die Form eines Eingabetensors, view gibt eine Ansicht eines Tensors mit einer anderen Form zurück, Stacking kombiniert mehrere Tensoren entweder vertikal oder horizontal miteinander, Squeeze entfernt alle Dimensionen, die gleich 1 sind, und Unsqueeze fügt eine neue Dimension mit einer Größe hinzu von 1. Schließlich vertauscht permute die Dimensionen eines Tensors. Der Kursleiter stellt Codebeispiele zur Verfügung, um jede dieser Methoden zu demonstrieren, und betont, wie wichtig die Manipulation der Tensorform beim maschinellen Lernen und Deep Learning ist.

  • 03:05:00 Das Video-Tutorial untersucht, wie PyTorch-Tensoren umgeformt und angezeigt werden. Die Umformung erfordert Kompatibilität mit der Originalgröße und kann entweder mit den Funktionen „Umformen“ oder „Ansicht“ durchgeführt werden. Es ist wichtig zu beachten, dass 'view' den gleichen Speicher wie der ursprüngliche Tensor teilt. Darüber hinaus verkettet die „Stack“-Funktion Tensoren entlang einer neuen Dimension, und die Standarddimension ist Null. Benutzern wird empfohlen, ihre Arbeit häufig zu speichern, da bei der Verwendung von Google CoLab oder anderen Formen von Jupyter Notebooks Fehler auftreten können.

  • 03:10:00 Der Kursleiter stellt die Konzepte von Squeeze und Unsqueeze in PyTorch vor. Um den Umgang mit diesen Methoden zu üben, wird der Betrachter ermutigt, die Dokumentation nachzuschlagen und sie auszuprobieren. Der Kursleiter demonstriert die Squeeze-Methode, bei der einzelne Dimensionen aus einem Zieltensor entfernt werden. Um die während dieser Operationen an den Tensoren vorgenommenen Änderungen zu visualisieren, schlägt der Ausbilder vor, jede Änderung auszudrucken und die Größe des Tensors zu überprüfen. Darüber hinaus betont der Ausbilder, wie wichtig es ist, diese Konzepte mehrmals zu üben, um sich mit ihnen vertraut zu machen.

  • 03:15:00 Der Kursleiter erklärt das Konzept des Hinzufügens und Entfernens von Dimensionen in PyTorch-Tensoren mit den Methoden „squeeze“ und „unsqueeze“. Er demonstriert die Auswirkungen dieser Methoden, indem er Dimensionen von Tensoren hinzufügt und entfernt und ihre Formen druckt. Der Kursleiter stellt auch die "Permute"-Methode vor, die die Dimensionen eines Zieltensors in einer bestimmten Reihenfolge neu anordnet. Er liefert ein Beispiel dafür, wie Permute mit Bildern verwendet werden kann, und erörtert die Bedeutung der Umwandlung von Daten in numerische Darstellungen beim Deep Learning.

  • 03:20:00 Der Kursleiter lehrt, wie man einen Tensor permutiert, indem man seine Dimensionen mit der Methode permute() in PyTorch neu anordnet. Das angegebene Beispiel ist ein Bildtensor, bei dem die Farbkanaldimension zum ersten Index verschoben wird. Der Kursleiter erklärt, dass ein permutierter Tensor nur eine Ansicht ist und denselben Speicher wie der ursprüngliche Tensor teilt, was demonstriert wird, indem ein Wert im ursprünglichen Tensor aktualisiert wird und derselbe Wert in den permutierten Tensor kopiert wird. Der Abschnitt behandelt auch die Indizierung in PyTorch und ihre Ähnlichkeit mit der Indizierung mit NumPy, einer anderen beliebten Bibliothek für numerische Berechnungen.

  • 03:25:00 Der Kursleiter führt ein, wie man eine Fackel importiert, und zeigt, wie man einen kleinen Bereich erstellt und ihn auf kompatible Weise umgestaltet. Das Tutorial befasst sich dann mit der Indizierung mit Tensoren und zeigt, wie die erste und zweite Dimension indiziert werden. Das Lernprogramm zeigt auch die Funktionalität der Verwendung eines Semikolons zur Auswahl der gesamten Zieldimension. Der Abschnitt endet mit der Herausforderung, den Code neu anzuordnen, um Nummer neun zu erhalten.

  • 03:30:00 Der Kursleiter zeigt, wie mit PyTorch bestimmte Werte aus einem Tensor ausgewählt werden. In den Beispielen werden Elemente aus verschiedenen Dimensionen des Tensors ausgewählt, indem die entsprechenden Indexwerte angegeben werden. Der Kursleiter fordert die Zuschauer dann auf, zu versuchen, den Tensor zu indizieren, um bestimmte Werte zurückzugeben. Im nächsten Abschnitt erklärt der Kursleiter, wie PyTorch-Tensoren mit der beliebten wissenschaftlichen Bibliothek für numerische Berechnungen, NumPy, interagieren. Da PyTorch dies erfordert, ist eine Funktionalität integriert, die einen einfachen Übergang zwischen NumPy-Arrays und PyTorch-Tensoren ermöglicht.

  • 03:35:00 Das Video erläutert, wie Daten von NumPy in PyTorch-Tensoren konvertiert werden und umgekehrt. Um von NumPy zu PyTorch zu wechseln, wird die Methode „torch.fromNumPy“ auf dem NumPy-Array verwendet, aber es sollte beachtet werden, dass der Standarddatentyp von PyTorch Float32 ist, während der Standardwert von NumPy Float64 ist. Daher kann es erforderlich sein, den Datentyp beim Konvertieren anzugeben. Es ist auch wichtig zu beachten, dass beim Ändern des Werts des ursprünglichen NumPy-Arrays der Wert des PyTorch-Tensors nicht geändert wird, wenn er mit der fromNumPy-Methode erstellt wurde. Um von PyTorch zu NumPy zu gelangen, kann die Methode Torch.tensor.numpy() verwendet werden.

  • 03:40:00 In dem Video wird erläutert, wie zwischen PyTorch und NumPy gewechselt wird und welche Standarddatentypen jeweils verwendet werden. Der Standarddatentyp von PyTorch ist float32, während der Standarddatentyp von NumPy float64 ist, und wenn Sie den Datentyp in PyTorch ändern, gibt der NumPy-Tensor den ursprünglichen Datentyp wieder. Das Video behandelt auch das Konzept der Reproduzierbarkeit in neuronalen Netzwerken und die Verwendung von zufälligen Startwerten, um die Zufälligkeit in Experimenten zu reduzieren. Durch das Festlegen eines Zufallsstartwerts wird die Zufälligkeit gewürzt, und der Computer wird deterministischer, was besser reproduzierbare Ergebnisse ermöglicht.

  • 03:45:00 Der Kursleiter stellt das Konzept der Zufälligkeit und Reproduzierbarkeit in PyTorch vor. Zwei zufällige Tensoren werden mit der Torch.rand-Funktion erstellt, und ihre Werte werden gedruckt und verglichen. Der Kursleiter erklärt das Konzept des Random Seed, das verwendet wird, um reproduzierbare Zufälligkeiten in PyTorch zu erzeugen. Der Zufallsstartwert kann auf einen numerischen Wert Ihrer Wahl eingestellt werden, z. B. 42, und dann in verschiedenen Zufallsfunktionen verwendet werden, um eine geschmackliche Zufälligkeit zu erhalten. Es ist wichtig zu beachten, dass die Funktion „torch.manual_seed“ im Allgemeinen nur für einen Codeblock in einem Notebook funktioniert.

  • 03:50:00 Die Bedeutung der Reproduzierbarkeit beim maschinellen Lernen und Deep Learning wird betont und das Konzept eines Zufallsstartwerts erklärt. Der manuelle Seed ist eine Möglichkeit, die Zufälligkeit von PyTorch-Zufallstensoren zu würzen und sie reproduzierbar zu machen. Das PyTorch-Dokument zur Reproduzierbarkeit wird als hervorragende Ressource zum Erlernen der Reproduzierbarkeit empfohlen. Der Abschnitt behandelt auch das Ausführen von PyTorch-Objekten auf GPUs für schnellere Berechnungen und den Zugriff auf GPUs, einschließlich der Verwendung von Google Colab für eine kostenlose GPU, Google Colab Pro für schnellere GPUs und längere Laufzeit und Google Colab Pro Plus für erweiterte Vorteile.

  • 03:55:00 Der Kursleiter erklärt verschiedene Möglichkeiten für den Zugriff auf GPUs für Deep-Learning- und Machine-Learning-Aufgaben. Die Optionen sind die Verwendung von Google Colab, ein Upgrade auf Colab Pro, die Verwendung Ihrer eigenen GPU oder die Nutzung von Cloud-Computing-Diensten wie GCP, AWS oder Azure. Der Kursleiter empfiehlt, mit Google Colab zu beginnen, das einfach und kostenlos zu verwenden ist. Wenn Sie jedoch mehr Ressourcen benötigen oder größere Experimente durchführen möchten, möchten Sie möglicherweise Ihre eigene GPU oder Cloud Computing aktualisieren oder verwenden. Der Kursleiter zeigt auch, wie Sie eine GPU in Google Colab erhalten, indem Sie den Laufzeittyp ändern und mit PyTorch auf GPU-Zugriff prüfen.

Teil 5

  • 04:00:00 Der Kursleiter erklärt, wie man mit PyTorch auf GPU-Zugriff prüft und geräteunabhängigen Code einrichtet. Mit dem Befehl „torch.cuda.is_available()“ kann der Benutzer prüfen, ob PyTorch auf die GPU zugreifen kann. Um PyTorch auszuführen, sollte die Gerätevariable außerdem so eingestellt werden, dass sie die GPU verwendet, sofern verfügbar, oder standardmäßig die CPU. Es ist auch wichtig, geräteunabhängigen Code einzurichten, der es PyTorch ermöglicht, je nach Verfügbarkeit entweder auf der CPU oder der GPU zu laufen, indem "args.device=torch.device('cuda' if Torch.cuda.is_available()" eingerichtet wird. else 'cpu')" in Python-Skripten. Der Kursleiter betont, dass das Einrichten von geräteunabhängigem Code eine bewährte Methode bei der Arbeit mit PyTorch ist, da der Code dadurch auf verschiedenen Geräten ausgeführt werden kann.

  • 04:05:00 Der Kursleiter erörtert, wie die Verwendung von GPUs zu schnelleren Berechnungen führen und für maschinelle Lernmodelle von Vorteil sein kann, die mit numerischen Berechnungen wie Tensoroperationen arbeiten. Um die GPU zu verwenden, müssen Tensoren und Modelle dorthin übertragen werden, und PyTorch macht dies mit der „to“-Methode einfach. Der Code kann geräteunabhängig gemacht werden, sodass er unabhängig davon ausgeführt wird, ob eine GPU verfügbar ist oder nicht. Ebenso können Tensoren bei Bedarf auch zurück zur CPU verschoben werden, wofür die Methode `cpu()` verwendet werden kann. Der Kursleiter betont, dass Geräteprobleme der dritthäufigste Fehler in PyTorch sind und dass es sich bewährt hat, den Gerätetyp zu berücksichtigen, auf dem Tensoren und Modelle gespeichert werden.

  • 04:10:00 Der Kursleiter bespricht die Grundlagen der Arbeit mit PyTorch auf der GPU. Er erklärt, wie man zwischen CPU und GPU umschaltet und Fehler bei der Verwendung von NumPy-Berechnungen mit Tensoren auf der GPU vermeidet. Er ermutigt die Lernenden auch, das Gelernte durch eine Reihe von Übungen und einen zusätzlichen Lehrplan zu üben, der auf learn.pytorch.io verfügbar ist. Die Übungen basieren auf dem, was in den vorherigen Abschnitten behandelt wurde, und die Lernenden werden ermutigt, die PyTorch-Dokumentation zu verwenden, um sie abzuschließen. Abschließend gibt der Kursleiter Tipps, wie Sie diese Übungen in Colab angehen können, indem Sie zwei Bildschirme einrichten und Torch importieren.

  • 04:15:00 Der Kursleiter bespricht die Übungen und den zusätzlichen Lehrplan im PyTorch-Kurs. Die Übungen sind codebasiert und enthalten Vorlagen für jede der Übungen. Der zusätzliche Lehrplan basiert auf Lektüre, und der Kursleiter empfiehlt, eine Stunde damit zu verbringen, das PyTorch-Grundlagen-Tutorial, den Schnellstart und die Tensor-Abschnitte durchzugehen und sich den Abschnitt „Was ist ein Tensor?“ anzusehen. Video. Der Kursleiter erläutert auch den PyTorch-Workflow, der das Vorbereiten der Daten und das Umwandeln in Tensoren, das Auswählen oder Erstellen eines vortrainierten Modells, das Auswählen und Optimieren einer Verlustfunktion, das Erstellen einer Trainingsschleife, das Anpassen des Modells, das Bewerten des Modells und das Experimentieren umfasst und Verbessern und Speichern und erneutes Laden des trainierten Modells. Der Kursleiter ermutigt die Lernenden, dem Code und der Dokumentation zu folgen, nach Ressourcen zu suchen, es erneut zu versuchen und Fragen in den PyTorch-Foren zu stellen.

  • 04:20:00 Der Kursleiter öffnet zunächst ein neues Notizbuch in Colab und betitelt es mit „01 PyTorch Workflow“. Er erklärt, dass sie sich darauf konzentrieren werden, gemeinsam zu programmieren und einen durchgängigen PyTorch-Workflow zu erstellen, der das Vorbereiten und Laden von Daten, das Erstellen eines Modells für maschinelles Lernen in PyTorch, das Trainieren des Modells, das Auswerten des Modells und das Speichern/Laden des Modells umfasst . Der Kursleiter erwähnt auch, dass er das nn-Modul in PyTorch verwenden wird, das alle Bausteine von PyTorch für neuronale Netze enthält.

  • 04:25:00 Der Kursleiter erörtert die Verwendung von Torch.nn in PyTorch, indem er die grundlegenden Bausteine für Berechnungsgraphen untersucht, die in neuronalen Netzwerken verwendet werden. Durch die Kombination dieser Bausteine können Datenwissenschaftler und Ingenieure für maschinelles Lernen verschiedene Arten von neuronalen Netzen aufbauen. Der Kursleiter betont die Bedeutung des ersten Schritts im PyTorch-Workflow, nämlich das Vorbereiten und Laden von Daten in eine numerische Darstellung für das Modell, um Muster zu lernen. Die Art der numerischen Darstellung, die zum Codieren von Daten verwendet wird, hängt vom Datentyp ab. Der zweite Schritt besteht darin, ein neuronales Netzwerk aufzubauen, um die Muster in der numerischen Darstellung zu lernen, und die gelernten Muster dann für bestimmte Aufgaben wie Bilderkennung oder Spam-Klassifizierung zu verwenden.

  • 04:30:00 Der Kursleiter stellt das zweiteilige Spiel des maschinellen Lernens vor, bei dem Daten in eine numerische Darstellung umgewandelt und ein Modell erstellt wird, um Muster in dieser Darstellung zu finden. Der Ausbilder erstellt dann bekannte Daten unter Verwendung der linearen Regressionsformel, um diesen Prozess zu veranschaulichen. Das Gewicht und die Verzerrung der Formel werden als Parameter verwendet, die ein Modell lernen wird, indem es sich verschiedene Beispiele ansieht. Der Code in Python wird verwendet, um einen Zahlenbereich zu erstellen, der Variablen X einen Wert zuzuweisen und eine Y-Formel zu erstellen, die gleich Gewicht mal X plus Bias ist. Die Länge und der Wert von X und Y werden angezeigt, und die ersten zehn Werte von X und Y werden angezeigt.

  • 04:35:00 Der Kursleiter erörtert die Bedeutung der Aufteilung von Daten in Trainings- und Testsätze beim maschinellen Lernen. Er verwendet die Analogie von Universitätskursen und Prüfungen, um das Konzept zu erklären. Das Trainingsset ist mit allen Kursmaterialien verwandt, das Validierungsset ist wie eine Übungsprüfung und das Testset ist die Abschlussprüfung. Das Ziel ist die Verallgemeinerung, damit sich das Modell an unsichtbare Daten anpassen kann. Der Kursleiter betont, dass das korrekte Aufteilen von Daten von entscheidender Bedeutung ist, um ein genaues Modell zu erstellen.

  • 04:40:00 Der Kursleiter erörtert die Bedeutung der Verallgemeinerung in maschinellen Lernmodellen und die drei Datensätze, die üblicherweise beim Training und Testen verwendet werden: Trainings-, Validierungs- und Testsätze. Er erklärt auch die übliche prozentuale Aufteilung, die für jeden dieser Sätze verwendet wird, wobei der Trainingssatz normalerweise 60–80 % der Daten und der Testsatz 10–20 % enthält. Der Kursleiter demonstriert dann, wie ein Trainings- und Testsatz erstellt wird, indem ein Beispieldatensatz mit X- und Y-Werten verwendet wird, indem die Indizierung verwendet wird, um die geeignete Anzahl von Beispielen für jede Teilung auszuwählen. Abschließend erklärt er, dass es zwar häufig einen Anwendungsfall für einen Validierungssatz in komplexeren Datensätzen gibt, die Trainings- und Testsätze jedoch am häufigsten verwendet werden.

  • 04:45:00 Der Ausbilder betont die Bedeutung der Visualisierung von Daten, indem er eine Funktion namens „Plot-Vorhersagen“ schreibt, die zum Vergleichen der Trainings- und Testdaten verwendet wird. Die Funktion nimmt X-Zug, Y-Zug, X-Test, Y-Test und Vorhersagen als Parameter auf und zeichnet dann die Trainingsdaten in Blau mithilfe eines Streudiagramms mit der Matplotlib-Bibliothek. Die Testdaten werden dann unter Verwendung derselben Streufunktion in Grün dargestellt. Die Funktion prüft auch, ob es Vorhersagen gibt, und stellt sie gegebenenfalls ebenfalls mit der Scatter-Funktion dar. Durch die Visualisierung der Daten werden diese leichter verständlich und interpretierbar.

  • 04:50:00 Der Kursleiter bespricht den Prozess des Trainings und der Bewertung von Modellen für maschinelles Lernen. Sie erklären, dass das Ziel darin besteht, das Modell mit den Trainingsdaten zu trainieren, um die Werte der Testdaten genau vorherzusagen. Sie demonstrieren dies anhand eines einfachen linearen Datensatzes, wobei die Trainingsdaten blau und die Testdaten grün dargestellt sind. Der Kursleiter stellt dann das Konzept der linearen Regression vor und bereitet die Voraussetzungen für den nächsten Abschnitt vor, in dem er ein PyTorch-Modell für die lineare Regression erstellt. Sie bieten auch einige Tipps zur Fehlerbehebung für Google Colab.

  • 04:55:00 Wir lernen, wie man mit reinem PyTorch ein lineares Regressionsmodell erstellt. Der Kursleiter erklärt, dass PyTorch auf dem nn.module aufgebaut ist, das den Lego-Bausteinen von PyTorch-Modellen ähnelt. Fast alles in PyTorch erbt von nn.module, und Module können andere Module enthalten, was den Aufbau komplexer neuronaler Netze vereinfacht. Der Kursleiter führt uns dann durch den Prozess der Erstellung eines Konstruktors mit der Funktion init, der Erstellung eines Gewichtungsparameters mit nn.parameter und der Einstellung auf zufällige Parameter mit Torch.rand. Der Kursleiter erklärt auch, wie require_grad und dtype festgelegt werden.

Teil 6

  • 05:00:00 Der Kursleiter erklärt, wie man mit PyTorch ein lineares Regressionsmodell erstellt. Sie erstellen zunächst eine Klasse für das Modell und initialisieren es mit Parametern für die Gewichtungen und Bias, die automatisch zur Liste der Parameter hinzugefügt werden, wenn sie einem Modulattribut zugewiesen werden. Anschließend erstellen sie eine Vorwärtsmethode, um die Berechnung im Modell zu definieren, die auf der linearen Regressionsformel basiert. Das Ziel des Modells besteht darin, die zufälligen Parameter zu aktualisieren, um das Muster der Trainingsdaten durch Gradientenabstieg darzustellen, was die Voraussetzung für maschinelles Lernen ist.

  • 05:05:00 Der Kursleiter bespricht den Prozess der Anpassung von Zufallswerten, um die gewünschten Werte für Gewichtung und Bias in den Daten besser darzustellen, was mit zwei Hauptalgorithmen erreicht wird: Gradientenabstieg und Backpropagation. Die Verwendung von „requires grad equals true“ wird so erklärt, dass Gradienten über Berechnungen verfolgt werden, die mit dem Modell durchgeführt werden, wodurch der Algorithmus in die richtige Richtung gelenkt wird. Die Bedeutung der objektorientierten Programmierung und die Rolle von PyTorch bei der Implementierung dieser Algorithmen werden betont, wobei zusätzliche Ressourcen vorgeschlagen werden, um eine Intuition für den Code zu erlangen. Der Dozent betont auch die Tatsache, dass das aktuelle Modell zwar mit einfachen Datensätzen mit bekannten Parametern umgeht, komplexere Datensätze jedoch häufig Parameter aufweisen, die von Modulen von nn für uns definiert werden.

  • 05:10:00 Der Kursleiter erklärt die wichtigsten Erkenntnisse aus der Erstellung des ersten PyTorch-Modells. Jedes Modell in PyTorch erbt von nn.modgable und sollte die forward-Methode überschreiben, um die Berechnung zu definieren, die innerhalb des Modells stattfindet. Wenn das Modell lernt, aktualisiert es außerdem seine Gewichte und Bias-Werte über Gradientenabstieg und Rückwärtsausbreitung unter Verwendung des Torch.auto-Grad-Moduls. Der Kursleiter empfiehlt, sich zwei Videos anzusehen, die im Transkript verlinkt sind, um dieses Konzept vollständig zu verstehen. Darüber hinaus führt der Kursleiter in einige Grundlagen des PyTorch-Modellbaus ein, wie z. B. das Torch.nn-Modul, das alle Bausteine enthält, die für neuronale Netze erforderlich sind.

  • 05:15:00 Der Kursleiter erklärt die grundlegenden Module in PyTorch, einschließlich Torch.nn, Torch.nn.module, Torch.optim und Torch.utils.dataset. Das Torch.nn.module ist die Basisklasse für alle neuronalen Netzwerkmodule und erfordert das Überschreiben der Vorwärtsmethode, die definiert, was bei der Vorwärtsberechnung passiert. Torch.optim enthält Algorithmen zur Optimierung der Werte des Modells, das mit zufälligen Werten beginnt und sich anpasst, um die idealen Werte besser darzustellen. Der Kursleiter erwähnt auch den PyTorch-Spickzettel als hilfreiche Ressource für die weitere Erkundung der Bibliothek.

  • 05:20:00 Der Kursleiter fügt dem PyTorch-Workflow etwas Farbe und Code hinzu und behandelt wichtige PyTorch-Module, die zum Erstellen von Datensätzen, zum Erstellen und Trainieren von Modellen, zum Optimieren von Modellparametern, zum Bewerten des Modells und zum Verbessern durch Experimentieren verwendet werden. Der Kursleiter zeigt dann, wie der Inhalt eines PyTorch-Modells überprüft wird, indem eine Instanz des linearen Regressionsmodells erstellt und Punktparameter verwendet werden, um den Wertetensor anzuzeigen. Der Kursleiter legt auch einen Zufallsstartwert fest, um die Parameter mit konsistenten Werten zu erstellen.

  • 05:25:00 Wir haben gelernt, wie Deep-Learning-Modelle mit Zufallswerten für Gewichtungen und Bias-Parameter initialisiert werden. Wir haben auch gelernt, wie wichtig es ist, zufällige Seed-Werte für die Reproduzierbarkeit zu verwenden. Die grundlegende Prämisse von Deep Learning besteht darin, diese Zufallswerte mithilfe von Trainingsdaten durch Gradientenabstieg und Rückwärtsausbreitung so anzupassen, dass sie möglichst nahe an idealen Werten liegen. Im nächsten Abschnitt behandelt das Video Vorhersagen mit den zufälligen Parameterwerten des Modells.

  • 05:30:00 Das Video erklärt den Prozess zum Testen der Vorhersagekraft eines PyTorch-Modells. Die Vorwärtsmethode des Modells nimmt die Eingabedaten X und leitet sie durch das Modell, um Vorhersagen zu treffen. Das Video zeigt, wie die Vorhersagekraft des Modells getestet wird, indem X test eingegeben wird, das aus 10 Variablen besteht, und die Ausgabe Y pred des Modells beobachtet wird. Das Video befasst sich auch mit einem häufigen Fehler, der während der Erstellung eines PyTorch-Modells auftreten kann, und bietet eine Lösung dafür.

  • 05:35:00 Wir sehen die Vorhersagen des Modells, indem wir die Testdaten mit der zuvor definierten Ford-Methode ausführen. Die Vorhersagen scheinen erschreckend weit von den idealen Vorhersagen entfernt zu sein. Der Code führt auch den Torch-Inferenzmodus ein, bei dem es sich um einen Kontextmanager handelt, der zum Deaktivieren der Gradientenverfolgung bei Vorhersagen verwendet wird, sodass PyTorch weniger Daten verfolgen und Vorhersagen schneller treffen kann. Während Torch No Grad etwas Ähnliches tun kann, hat der Inferenzmodus einige Vorteile gegenüber No Grad, wie in der PyTorch-Dokumentation und einem im Video bereitgestellten Twitter-Thread erläutert. Daher ist der Inferenzmodus derzeit die bevorzugte Art der Inferenz.

  • 05:40:00 Das Video erklärt, wie wichtig die Verwendung des Kontextmanagers „torch.inference_mode“ beim Erstellen von Vorhersagen in PyTorch ist, da er sicherstellt, dass sich das Modell im Inferenzmodus statt im Trainingsmodus befindet. Das Video hebt auch hervor, dass die Initialisierung eines Modells mit zufälligen Parametern zu einer schlechten Leistung führen kann, und bietet einige Optionen für die Initialisierung, z. B. die Verwendung von Nullwerten oder die Übertragung von Parametern aus einem anderen Modell. Der Hauptfokus des Videos liegt jedoch auf dem Trainieren eines Modells, indem mithilfe einer Verlustfunktion, die misst, wie schlecht die Vorhersagen des Modells abschneiden, von unbekannten Parametern zu bekannten Parametern gewechselt wird. Das Video weist darauf hin, dass die Begriffe „Verlustfunktion“, „Kostenfunktion“ und „Kriterium“ beim maschinellen Lernen häufig synonym verwendet werden.

  • 05:45:00 Der Kursleiter stellt das Konzept einer Verlustfunktion vor, die verwendet wird, um zu messen, wie falsch die Vorhersagen eines Modells im Vergleich zu den idealen Ergebnissen sind. Der Dozent erklärt am Beispiel der Abstandsmessung zwischen roten und grünen Punkten, wie eine Verlustfunktion berechnet werden kann. Das Video behandelt auch die Bedeutung eines Optimierers, der den Verlust eines Modells berücksichtigt und seine Parameter wie Gewichtung und Bias-Werte anpasst, um die Verlustfunktion zu verbessern. Der Abschnitt schließt mit der Erläuterung, dass die Prinzipien einer Verlustfunktion und eines Optimierers dieselben bleiben, unabhängig davon, ob es sich um Modelle mit zwei Parametern oder um Modelle mit Millionen von Parametern handelt, und ob es sich um Computer-Vision-Modelle oder einfache Modelle wie diejenigen handelt, die Punkte auf einer geraden Linie vorhersagen.

  • 05:50:00 Der Kursleiter erklärt, wie wichtig es ist, einen Optimierer zu verwenden, um die Parameter eines Modells in Richtung Werte zu verschieben, die die Verlustfunktion senken, um die Genauigkeit der Vorhersagen zu verbessern. PyTorch verfügt über integrierte Funktionen zur Implementierung von Verlustfunktionen und Optimierern, und der Kursleiter konzentriert sich auf den L1-Verlust, auch bekannt als mittlerer absoluter Fehler, der die absolute Differenz zwischen vorhergesagten und tatsächlichen Werten misst. Der Kursleiter stellt ein farbenfrohes Diagramm zur Verfügung, um den mittleren absoluten Fehler zu veranschaulichen, und zeigt, wie die Verlustfunktion mit dem NN-Modul von PyTorch implementiert wird. Das Ziel beim Trainieren eines Modells besteht darin, die Abstände zwischen vorhergesagten und tatsächlichen Werten zu minimieren und damit den Gesamtwert des mittleren absoluten Fehlers zu minimieren.

  • 05:55:00 Der Kursleiter erörtert die Rolle des Optimierers beim maschinellen Lernen, der zusammen mit der Verlustfunktion arbeitet, um Modellparameter wie Gewichtung und Bias anzupassen, um den Verlust zu minimieren. PyTorch hat Torch.optim, wo verschiedene Optimierungsalgorithmen verfügbar sind, wie z. B. Stochastic Gradient Descent (SGD) und Adam. Beide passen die Modellparameter nach dem Zufallsprinzip an, um den Verlust zu minimieren, aber es geht darum, den für ein bestimmtes Problem am besten geeigneten auszuwählen. Die meisten entscheiden sich für SGD, das mit zufälligen Anpassungen beginnt und sich dann weiter in die Richtung anpasst, die den Verlust minimiert, bis keine weiteren Anpassungen mehr vorgenommen werden können. Der Optimierer benötigt zwei Argumente, params oder welche Parameter der Optimierer optimieren soll, und die Lernrate (LR), den wichtigsten Hyperparameter, der beim Optimieren festgelegt werden muss.

Teil 7

  • 06:00:00 Der Dozent erklärt, was Modellparameter und Hyperparameter sind und welche Rolle sie im Deep-Learning-Prozess spielen. Modellparameter sind Werte, die das Modell festlegt, während Hyperparameter Werte sind, die vom Data Scientist oder Machine Learning Engineer festgelegt werden. Die Lernrate ist ein Hyperparameter und ihr Wert bestimmt die Größe der Änderung der Parameter während der Optimierung. Eine kleine Lernrate führt zu kleinen Änderungen, während eine große Lernrate zu großen Änderungen führt. Der Kursleiter spricht auch über die Bedeutung der Auswahl der geeigneten Verlustfunktion und des Optimierers für das spezifische Problem. Abschließend erläutert der Kursleiter den Prozess zum Erstellen einer Trainingsschleife in PyTorch.

  • 06:05:00 Der Kursleiter bespricht die Schritte, die zum Erstellen einer Trainingsschleife und einer Testschleife in PyTorch erforderlich sind. Der erste Schritt besteht darin, die Daten mehrmals zu durchlaufen, um Vorhersagen zu verbessern und Verluste zu minimieren, indem Vorwärtsdurchläufe durch das Modell durchgeführt werden. Der Kursleiter erklärt, dass der Vorwärtsdurchgang stattfindet, wenn die Daten die Vorwärtsfunktionen des Modells durchlaufen, und der Verlust berechnet wird, indem die Vorhersagen des Modells mit Ground-Truth-Etiketten verglichen werden. Der Ausbilder stellt dann den Optimierer vor und erklärt, dass der Rückwärtsdurchgang die Gradienten jedes Parameters in Bezug auf den Verlust berechnet, wodurch der Optimierer die Parameter des Modells anpassen kann, um den Verlust durch Gradientenabstieg zu verbessern. Der Kursleiter hebt hervor, dass PyTorch die Rückwärtsausbreitung und die Mathematik des Gradientenabstiegs implementiert, wodurch es für Personen mit begrenztem mathematischem Hintergrund einfacher wird, maschinelles Lernen zu erlernen.

  • 06:10:00 Der Dozent stellt das Konzept des Gradientenabstiegs vor, das zur Optimierung der Modellparameter beim maschinellen Lernen verwendet wird. Am Beispiel eines Hügels erklärt der Instruktor, wie sich das Modell in die Richtung bewegen muss, in der die Neigung weniger steil ist, um den Fuß des Hügels zu erreichen, was einen Nullverlust darstellt. Der Ausbilder schreibt dann Code zum Ausführen des Gradientenabstiegs, der das Festlegen der Anzahl der Epochen und das Versetzen des Modells in den Trainingsmodus mithilfe des Parameters „requires grad equals true“ umfasst. Der Kursleiter erwähnt auch, dass für Pytorch-Modelle verschiedene Modi verfügbar sind, und ermutigt die Zuschauer, mit verschiedenen Einstellungen zu experimentieren.

  • 06:15:00 Der Ausbilder bespricht die Implementierung des Vorwärtspasses zum Trainieren eines PyTorch-Modells. Beim Vorwärtsdurchlauf werden Daten durch die Vorwärtsfunktion des Modells geleitet, um Vorhersagen zu treffen, die dann mithilfe der MAE-Verlustfunktion mit den tatsächlichen Trainingswerten verglichen werden. Außerdem wird die Funktion optimizer.zero_grad() eingeführt, die alle Gradienten auf Null setzt, bevor sie den Verlust rückwärts berechnet und die Modellparameter mittels Gradientenabstieg aktualisiert. Diese Schritte sind entscheidend für das Verständnis, wie ein Modell lernt, und werden in späteren Abschnitten des Kurses weiter optimiert und funktionalisiert.

  • 06:20:00 Der Instruktor geht die fünf Hauptschritte einer Trainingsschleife in PyTorch durch, die den Vorwärtsdurchgang, die Berechnung des Verlusts, das Nullsetzen der Gradienten des Optimierers, die Durchführung der Rückwärtsausbreitung und das schrittweise Absteigen des Optimierers durch den Gradientenabstieg umfasst. Der Kursleiter merkt an, dass die Reihenfolge dieser Schritte manchmal mehrdeutig sein kann, aber es ist wichtig, den Optimiererschritt nach der Rückwärtsausbreitung beizubehalten. Der Kursleiter erklärt auch, warum die Optimierergradienten in jeder Iteration auf Null gesetzt werden müssen, um eine Akkumulation über Schleifen hinweg zu verhindern. Der Kursleiter schlägt vor, das Schreiben einer Trainingsschleife zu üben, um diese Schritte besser zu verstehen, und stellt ein Lied und zusätzliche Ressourcen zum weiteren Lernen bereit.

  • 06:25:00 Der Moderator fasst die Schritte in einer Trainingsschleife in PyTorch zusammen, die den Vorwärtsdurchgang, die Berechnung des Verlustwerts, das Nullsetzen der Optimierergradienten und das Durchführen der Rückwärtsausbreitung der Verlustfunktion umfasst. Die Trainingsschleife hilft dem Modell, Muster auf den Trainingsdaten zu lernen, während die Testschleife die Muster auf unsichtbaren Daten auswertet. Der Moderator erklärt auch, warum wir die Gradienten des Optimierers auf Null setzen, und stellt das Konzept der Backpropagation vor, das den Gradienten der Verlustfunktion berechnet.

  • 06:30:00 Der Kursleiter erklärt das Konzept von Gradienten und Verlustfunktionskurven in PyTorch Deep Learning. Indem „requires grad“ für die Parameter auf „true“ gesetzt wird, ist PyTorch in der Lage, die Gradienten jedes Parameters zu verfolgen und eine Verlustfunktionskurve für alle zu erstellen. Das Ziel der Rückwärtsausbreitung und des anschließenden Gradientenabstiegs ist es, den tiefsten Punkt der Kurve zu berechnen, der den minimalen Verlust darstellt. Der Kursleiter erklärt das Konzept von Gradienten beim maschinellen Lernen und wie der Gradientenabstieg mit Schrittpunkten funktioniert. Durch Rückwärtsoptimierung des Zero-Grad-Verlusts, Optimierung von Step und Requires Grad erledigt PyTorch einen Großteil dieser Arbeit hinter den Kulissen, verfolgt automatisch Gradienten und findet den unteren Rand der Kurve.

  • 06:35:00 Der Ausbilder bespricht den Optimierer und die Lernrate. Der Optimierer nimmt die Modellparameter und erstellt Kurven für jeden Parameter, indem er einen Mechanismus namens Torch Autograd für die automatische Gradientenberechnung verwendet, um näher an den unteren Rand der Kurve heranzukommen. Die Lernrate entscheidet, wie groß oder klein der Optimierer die Parameter bei jedem Schritt ändert, wobei kleinere Schritte unternommen werden, wenn wir uns der Konvergenz nähern. Darüber hinaus geht der Ausbilder auf die fünf Schritte ein, die beim Trainieren eines Modells erforderlich sind, darunter das Initialisieren des Modells, das Definieren des Optimierers, die Lernrate, die Berechnung des Vorwärtsdurchlaufs, die Rückwärtsausbreitung und den Schritt des Optimierers. Abschließend erwähnt der Dozent, dass diese Schleife in eine Funktion umgewandelt werden kann, was dabei hilft, Wiederholungen von Codes zu vermeiden.

  • 06:40:00 Der Ausbilder betont, wie wichtig es ist, die Trainingsschleife in PyTorch zu schreiben, da das Modell auf diese Weise Muster und Daten lernt. Das Video bietet auch zusätzliche Ressourcen zu Backpropagation und Gradient Descent für diejenigen, die sich für den mathematischen Hintergrund interessieren. Der Kursleiter erklärt, dass die Wahl der Verlustfunktion und des Optimierers für jedes Problem spezifisch ist, und empfiehlt MAE-Verlust und L1-Verlust für Regressionsprobleme und binären Kreuzentropieverlust für Klassifizierungsprobleme. Der Abschnitt endet mit einer Demonstration der Trainingsschleife unter Verwendung eines Modells mit nur zwei Parametern und einer einzigen Epoche.

  • 06:45:00 Der Kursleiter trainiert das maschinelle Lernmodell mit PyTorch weiter und zeigt, wie die Verlustfunktion abfällt, wenn die Modellparameter über Gradientenabstieg aktualisiert werden. Der Kursleiter betont, dass ein niedrigerer Verlustwert einen besseren Modellfortschritt anzeigt und dass die kleinen Unterschiede in den Werten aufgrund der Zufälligkeit beim maschinellen Lernen nicht besorgniserregend sein sollten. Der Ausbilder fordert den Betrachter dann auf, den Code für 100 Epochen auszuführen und Vorhersagen zu treffen, um zu sehen, wie niedrig er den Verlustwert erreichen kann. Abschließend erörtert der Kursleiter die Bedeutung des Testens und neckt das nächste Video zum Schreiben von Testcode.

  • 06:50:00 Der Kursleiter erörtert die Bedeutung der Recherche und des Lernens neuer Themen mithilfe externer Ressourcen wie Google und Dokumentation. Sie ermutigen die Lernenden, den Trainingscode für 100 Epochen auszuführen und die Gewichtungs- und Bias-Werte und Vorhersagen zu untersuchen. Anschließend erläutert der Kursleiter den Testcode und den Zweck der Funktion model.eval(), die Einstellungen im Modell, die nicht zum Testen benötigt werden, wie z. B. Dropout- und Batch-Norm-Layer, deaktiviert. Sie besprechen auch den Zweck von torque.no_grad() und wie es die Gradientenverfolgung während des Testens ausschaltet, da in diesem Stadium kein Lernen stattfindet. Schließlich schließt der Abschnitt mit dem Schreiben des Vorwärtsdurchgangs für das Modell im Testmodus ab.

  • 06:55:00 Das Video zeigt, wie man Testvorhersagen erstellt und den Testverlust mit Model Zero in PyTorch berechnet. Die Testvorhersagen werden auf dem Testdatensatz getroffen, den das Modell noch nie zuvor gesehen hat, ebenso wie die Bewertung des eigenen Wissens über Materialien, die es noch nie zuvor gesehen hat. Das Video erklärt, wie wichtig es ist, das Modell den Testdatensatz vor der Auswertung nicht sehen zu lassen, um schlechte Ergebnisse zu vermeiden. Der Code gibt den Verlust und das, was in jeder 10. Epoche passiert, aus, während das Modell für 100 Epochen trainiert, und der Verlust nimmt mit jeder Epoche ab. Das Video behandelt auch das Konzept der Modellgenauigkeit, das später ausgedruckt werden kann.

Teil 8

  • 07:00:00 Der Kursleiter geht das vorherige Video durch, in dem er ein Modell trainiert und Vorhersagen für einen einfachen Datensatz gemacht hat. Dann fordern sie den Betrachter auf, Wege zu finden, um die Fähigkeit des Modells zu verbessern, die vorhergesagten roten Punkte mit den tatsächlichen grünen Punkten auszurichten, möglicherweise durch längeres Training des Modells. Der Ausbilder führt den Code dann für 100 weitere Epochen erneut aus und zeigt eine signifikante Verbesserung des Testverlusts und der Vorhersagen des Modells. Der Kursleiter betont, dass dieser Prozess des Trainierens und Bewertens von Modellen für Deep Learning mit PyTorch von grundlegender Bedeutung ist und im Rest des Kurses verwendet wird. Sie erörtern auch die Bedeutung des Verfolgens des Modellfortschritts mithilfe einer leeren Liste zum Speichern nützlicher Werte.

  • 07:05:00 Der Ausbilder erklärt, warum es wichtig ist, Verlustwerte im Auge zu behalten und wie wir sie verwenden können, um den Fortschritt unseres Modells zu überwachen und ihn in zukünftigen Experimenten zu verbessern. Das dargestellte Code-Snippet fügt die Epochenzahl, den aktuellen Verlustwert und den aktuellen Testverlustwert an verschiedene Listen an, damit sie später gezeichnet werden können. Der Ausbilder zeigt ein Diagramm der aus den Listen generierten Verlustkurven und erklärt ihre Bedeutung. Eine ideale Verlustkurve sollte hoch beginnen und im Laufe der Zeit abnehmen, was einen abnehmenden Verlustwert darstellt.

  • 07:10:00 Der Kursleiter erklärt, wie Verlustwerte von PyTorch in NumPy konvertiert werden, um sie in Matplotlib darzustellen. Er zeigt, dass eine Konvertierung nach NumPy notwendig ist, da Matplotlib nur mit NumPy funktioniert. Er erklärt auch, wie man die Trainingsverlust- und Testverlustkurven im Auge behält, und erwähnt, dass, wenn sie an einem Punkt eng übereinstimmen, dies bedeutet, dass das Modell konvergiert und der Verlust so nahe wie möglich bei Null liegt. Der Ausbilder geht dann durch die Testschleife und erklärt, dass es notwendig ist, die Testdaten durch das Modell zu leiten, den Testverlustwert zu berechnen und auszudrucken, was während des Trainings passiert, um die Werte der Vorgänge im Auge zu behalten. Schließlich schlägt er vor, all diese Schritte in eine Funktion zu packen, und stellt einen inoffiziellen PyTorch-Optimierungs-Loop-Song zur Verfügung, um sich an die Schritte zu erinnern.

  • 07:15:00 Die drei Hauptmethoden zum Speichern und Laden von Modellen in PyTorch. Mit der ersten Methode, torque.save, können Sie ein PyTorch-Objekt im Pickle-Format von Python speichern. Mit der zweiten Methode, torque.load, können Sie ein gespeichertes PyTorch-Objekt laden. Und die dritte Methode, torque.nn.module.loadStateDict, ermöglicht es Ihnen, das gespeicherte Wörterbuch eines Modells zu laden oder das Zustandswörterbuch zu speichern, was wir im folgenden Video untersuchen werden. Diese Methoden sind entscheidend für das Speichern und Wiederverwenden von Modellen, insbesondere wenn Sie mit größeren Modellen arbeiten oder Modelle mit anderen teilen müssen.

  • 07:20:00 Der Kursleiter erklärt das Konzept der Zustandswörterbücher und ihre Bedeutung in PyTorch. PyTorch speichert die wichtigen Parameter eines Modells in einem Wörterbuch, das als Zustandswörterbuch bezeichnet wird und den Zustand des Modells enthält, einschließlich der lernbaren Parameter wie Gewichtungen und Bias. Der Kursleiter demonstriert, wie das PyTorch-Modell gespeichert und geladen werden kann, indem sein Zustandswörterbuch mit den Methoden „torch.save“ und „torch.load“ gespeichert wird. Darüber hinaus bietet der Ausbilder dem Benutzer eine zusätzliche Herausforderung, die Vor- und Nachteile des Speicherns des gesamten Modells und nicht nur des Zustandswörterbuchs zu lesen und zu verstehen. Schließlich teilt der Kursleiter den PyTorch-Code zum Speichern des Modells und zum Erstellen eines Ordners mit dem Namen „models“.

  • 07:25:00 Der Kursleiter demonstriert, wie ein PyTorch-Modell mithilfe der empfohlenen Methode zum Speichern des Zustandsdikts gespeichert wird. Das Modell erhält einen Namen, und der Pfad wird mithilfe der pathlib-Bibliothek erstellt. Sobald der Pfad fertig ist, wird das Modellstatus-Diktat mit der Funktion torque.save() gespeichert, wobei der erste Parameter das Objekt und der zweite der Pfad ist, in dem das Modell gespeichert werden soll. Der Ausbilder zeigt, wie mit dem LS-Befehl geprüft wird, ob das Modell im Models-Verzeichnis gespeichert ist. Das Video bietet auch eine Anleitung zum Herunterladen des gespeicherten Modells auf einen lokalen Computer oder Google Drive. Darüber hinaus ermutigt der Ausbilder den Betrachter, sich selbst herauszufordern, indem er die Dokumentation weiterliest und die Torch.load()-Funktion verwendet, um zu lernen, wie man ein gespeichertes Modell lädt.

  • 07:30:00 Der Kursleiter spricht über das Laden eines PyTorch-Modells und die Verwendung der Fackelpunkt-Lademethode. Das zuvor gespeicherte Wörterbuch der Klasse mit Parametern aus einem Modell wird als Zustandsdeck geladen, und dieser Abschnitt zeigt, wie Sie eine neue Instanz der Klasse des linearen Regressionsmodells erstellen und das gespeicherte Zustandsdeck darin laden. Die Load-State-Deck-Methode des Torch-nn-Moduls ermöglicht es, das State-Wörterbuch direkt in die Modellinstanz zu laden, während die Torch-Dot-Load-Methode F aufnimmt und an den Speicherpfad des Modells weiterleitet, in dem das vorherige State-Deck gespeichert ist.

  • 07:35:00 Der Kursleiter geht das Speichern und Laden eines Modells in PyTorch durch. Sie testen das geladene Modell, indem sie neue Vorhersagen mit den Testdaten treffen und sie mit den Vorhersagen des ursprünglichen Modells vergleichen, indem sie die Äquivalent-ist-gleich-Funktion verwenden. Der Ausbilder behebt die nicht äquivalenten Modelle, indem er einen neuen Satz von Modellvorhersagen macht und die Äquivalenz erneut testet. Sie decken die Hauptaspekte des Speicherns und Ladens eines Modells ab, empfehlen jedoch, Tutorials für weitere Details zu lesen. Der Ausbilder plant, alle bisher behandelten Schritte in den nächsten Videos zusammenzufassen.

  • 07:40:00 Der Kursleiter geht den gesamten Workflow des Deep Learning mit PyTorch durch, einschließlich des Imports von PyTorch, des Speicherns und erneuten Ladens von Modellen und des Erstellens von geräteunabhängigem Code, der es dem Code ermöglicht, die GPU, falls verfügbar, oder standardmäßig die CPU zu verwenden wenn nicht. Der Kursleiter ermutigt die Zuschauer, innezuhalten und zu versuchen, den Code selbst neu zu erstellen, und bietet gleichzeitig Anleitungen und hilfreiche Tipps. Das Video behandelt auch die Erstellung von Dummy-Datensätzen und das Zeichnen von Datenpunkten, die zum Erstellen eines Modells verwendet werden, das lernt, die grünen Punkte anhand der blauen Punkte vorherzusagen.

  • 07:45:00 Der Kursleiter demonstriert, wie Daten mit der linearen Regressionsformel von y gleich Gewicht mal Features plus Bias erstellt werden. Sie erklären, dass die Prinzipien zum Erstellen eines Modells zum Schätzen dieser Werte dieselben bleiben, und fahren mit dem Erstellen der x- und y-Features fort, die zur Vorhersage von Trainings- und Testwerten verwendet werden. Sie teilen die Daten auch in Trainings- und Testsätze auf und zeichnen die Daten auf, um die Muster in den Daten zu visualisieren.

  • 07:50:00 Der Kursleiter stellt das Konzept des Aufbaus eines linearen PyTorch-Modells für die gegebenen linearen Dummy-Daten vor. Sie bilden eine Unterklasse von nn.module, um ein lineares Regressionsmodell zu erstellen und die Parameter mithilfe von Schichten zu initialisieren. Die nn.Linear-Schicht nimmt Features als Eingabe und Ausgabe auf und wendet eine lineare Transformation auf die eingehenden Daten an, wobei dieselbe Formel wie beim linearen Regressionsmodell verwendet wird. Die Eingabe- und Ausgabeformen des Modells hängen von den Daten ab, und der Kursleiter hebt hervor, dass im Laufe des Kurses verschiedene Beispiele für Eingabe- und Ausgabefunktionen zu sehen sein werden.

  • 07:55:00 Der Kursleiter erklärt, wie die lineare Ebene in PyTorch als bereits vorhandene Ebene zum Erstellen eines Modells verwendet wird. Die lineare Schicht ist eine Form der linearen Regression y gleich x, a transponiert plus b, in Features, out Features. Durch Unterklassen von nn.module können wir eine lineare Schicht erstellen und die Vorwärtsmethode überschreiben, um die Daten durch die lineare Schicht zu leiten, die die vordefinierte Vorwärtsberechnung durchführt. Die Stärke von PyTorchs Torch.nn besteht darin, dass es die Parameter hinter den Kulissen für uns erstellt und wir sie nicht manuell initialisieren müssen. Darüber hinaus erläutert der Kursleiter die verschiedenen Namen für die lineare Schicht, z. B. lineare Transformation, Sondierungsschicht, vollständig verbundene Schicht, dichte Schicht und intensiver Fluss.

Teil 9

  • 08:00:00 Der Kursleiter bespricht die verschiedenen Ebenen, die in Torch.nn verfügbar sind, einschließlich Faltung, Pooling, Polsterung, Normalisierung, Rekurrenz, Transformator, Linear und Dropout. Vorgefertigte Implementierungen dieser Schichten werden von PyTorch für gängige Deep-Learning-Aufgaben bereitgestellt. Der Abschnitt fährt dann mit dem Training des zuvor erstellten linearen PyTorch-Modells unter Verwendung von Verlust- und Optimierungsfunktionen fort. Der Optimierer optimiert die Gewichtungs- und Bias-Parameter des Modells, um die Verlustfunktion zu minimieren, die misst, wie falsch das Modell ist. Der Ausbilder richtet die L1-Verlustfunktion und den SGD-Optimierer für diese Aufgabe ein.

  • 08:05:00 Der Kursleiter bespricht die Bedeutung der Wahl einer angemessenen Lernrate für den Optimierer, da ein zu kleiner oder zu großer Schritt die Leistung des Modells negativ beeinflussen kann. Außerdem werden die Schritte zum Schreiben einer Trainingsschleife erläutert, die das Durchführen eines Vorwärtsdurchgangs, das Berechnen des Verlustwerts, das Nullsetzen des Optimierers, das Durchführen der Rückwärtsausbreitung und das Anpassen der Gewichtungen und Vorspannungen umfassen. Darüber hinaus schlägt der Kursleiter die Verwendung von torque.manual_seed() vor, um reproduzierbare Ergebnisse zu gewährleisten, und stellt Code bereit, um den Trainingsverlust und den Testverlust alle 10 Epochen auszudrucken.

  • 08:10:00 Der Kursleiter erklärt, wie geräteunabhängiger Code für Daten geschrieben wird, und betont, dass es entscheidend ist, alle Berechnungen auf demselben Gerät zu haben, um Fehler zu vermeiden. Das Modell und die Daten sollten sich auf demselben Gerät befinden, das eine CPU oder CUDA sein kann. Indem die Trainings- und Testdaten mit X-Train und Y-Train auf das Zielgerät übertragen werden, wird geräteunabhängiger Code erstellt, der beim Trainieren des Modells genauere Ergebnisse liefert. Der Ausbilder erklärt auch, wie das Modell anhand von State Decked bewertet wird, und zeigt, dass die geschätzten Parameter nahe am Idealwert liegen. Der Abschnitt endet mit einer Herausforderung für die Benutzer, Vorhersagen zu treffen und zu bewerten und sie auf den Originaldaten darzustellen.

  • 08:15:00 Der Kursleiter erörtert, wie wichtig es ist, das PyTorch-Modell in den Bewertungsmodus zu versetzen und Vorhersagen zu den Testdaten zu treffen, die das Modell noch nie zuvor gesehen hat. Sie führen die Plot-Vorhersagefunktion ein, um die Vorhersagen des Modells zu visualisieren, aber sie stoßen auf einen Typfehler, wenn sie versuchen, den CUDA-Gerätetyp-Tensor in NumPy zu konvertieren, da Matplotlib mit NumPy und nicht mit PyTorch arbeitet. Sie lösen diesen Fehler, indem sie die Tensor-Punkt-CPU verwenden, um den Tensor zuerst in den Hostspeicher zu kopieren. Der Kursleiter ermutigt die Zuschauer auch, ihr trainiertes Modell mit dem Pfadmodul zu speichern und zu laden, was sie demonstrieren, indem sie ein Modellverzeichnis erstellen und den Modellpfad darauf festlegen.

  • 08:20:00 Der Kursleiter erklärt, wie man PyTorch-Modelle mit dem path lib-Modul von Python speichert und lädt. Zunächst wird ein Modellspeicherpfad mit der Erweiterung .PTH für PyTorch erstellt. Das Modellzustandswörterbuch wird dann unter Verwendung des Torch-Save-Verfahrens gespeichert. Der Kursleiter weist darauf hin, dass das explizite Anzeigen des Zustandsdecks für Modelle mit vielen Parametern möglicherweise nicht praktikabel ist. Um das gespeicherte Modell zu laden, wird das gespeicherte Zustandswörterbuch in eine neue Instanz des linearen Regressionsmodells V2 geladen, wobei die Load State Decked-Methode verwendet wird und der Dateipfad des gespeicherten PyTorch-Objekts übergeben wird. Die Verwendung der vorgefertigten linearen Ebene von PyTorch und deren Aufruf in der Vorwärtsmethode wird ebenfalls besprochen.

  • 08:25:00 Abschließend überprüft der Ausbilder, ob das geladene Modell die gleichen Parameter wie das gespeicherte Modell hat, indem er es mit dem Fackel-Inferenzmodus bewertet. Anschließend gratulieren sie dem Benutzer zum Abschluss des PyTorch-Workflows vom Erstellen eines Modells über das Trainieren und Speichern bis hin zur Wiederverwendung. Anschließend weist der Dozent darauf hin, dass die Nutzer die Übungen und den zusätzlichen Lehrplan in der Buchversion der Kursmaterialien unter learnpytorch.io finden können. Sie bieten auch Vorlagen für Übungsnotizbücher, die nach Abschnitt nummeriert sind und im PyTorch-Deep-Learning-GitHub-Repository unter Extras und Übungen zu finden sind.

  • 08:30:00 Der Kursleiter informiert Sie darüber, wie Sie die Workflow-Übungen durchführen und zusätzliche Ressourcen für den PyTorch-Kurs finden. Er betont, wie wichtig es ist, die Übungen selbst auszuprobieren, bevor man sich Lösungsbeispiele anschaut. Der Abschnitt schließt mit einer Zusammenfassung des behandelten PyTorch-Workflows, der das Bereitstellen von Daten, das Umwandeln in Tensoren, das Erstellen oder Auswählen eines Modells, das Auswählen einer Verlustfunktion und eines Optimierers, das Trainieren des Modells, das Treffen von Vorhersagen und das Bewerten des Modells umfasst. Der nächste Abschnitt konzentriert sich auf die Klassifizierung neuronaler Netzwerke mit PyTorch, was eines der größten Probleme beim maschinellen Lernen ist. Der Kursleiter stellt Ressourcen bereit, um während des gesamten Kurses Hilfe zu erhalten, einschließlich der GitHub-Diskussionsseite des Kurses und der PyTorch-Dokumentation. Er erklärt auch, was Klassifikationsprobleme sind und gibt Beispiele wie die Vorhersage, ob eine E-Mail Spam ist oder nicht.

  • 08:35:00 Der Dozent diskutiert verschiedene Arten von Klassifikationsproblemen beim Deep Learning. Bei einer binären Klassifizierung gibt es nur zwei Optionen, wie Spam oder kein Spam. Bei einer mehrklassigen Klassifizierung gibt es mehr als zwei Optionen, z. B. die Klassifizierung eines Bildes als Sushi, Steak oder Pizza. Multi-Label-Klassifizierung liegt vor, wenn ein Beispiel mehr als ein Label haben kann, wie das Zuweisen von Tags zu einem Wikipedia-Artikel. Der Ausbilder liefert Beispiele aus der Praxis und erklärt die Konzepte gründlich. Er unterscheidet auch zwischen binärer und mehrklassiger Klassifikation mit Beispielen für die Klassifikation von Bildern von Hunden und Katzen in einem binären Klassifikationsproblem und die Klassifikation von Bildern verschiedener Tiere in einem mehrklassigen Klassifikationsproblem.

  • 08:40:00 Der Kursleiter erklärt die Architektur eines Klassifizierungsmodells für neuronale Netze und die Eingabe- und Ausgabeformen eines Klassifizierungsmodells. Er betont die Bedeutung numerischer Eingaben für maschinelle Lernmodelle und erklärt, wie numerische Eingaben je nach Daten oft unterschiedliche Formen annehmen. Er erörtert auch den Prozess der Erstellung benutzerdefinierter Daten für die Anpassung und Vorhersage und behandelt die Schritte zur Modellierung für die Klassifizierung neuronaler Netzwerke. Darüber hinaus erklärt der Kursleiter, wie man eine Verlustfunktion und einen Optimierer für ein Klassifizierungsmodell einrichtet, Trainings- und Bewertungsschleifen erstellt, Modelle speichert und lädt, Nichtlinearität nutzt und Klassifizierungsmodelle auswertet. Abschließend gibt er ein Beispiel dafür, wie Lebensmittelfotos und ihre Vorhersage mithilfe eines maschinellen Lernalgorithmus numerisch dargestellt werden können.

  • 08:45:00 Der Dozent des Kurses PyTorch for Deep Learning & Machine Learning gibt Details zum numerischen Kodierungsprozess und dem Ausgabeformat. Die Eingaben für den maschinellen Lernalgorithmus sind numerisch codierte Bilder, die einige zugehörige Ausgaben in Vorhersagewahrscheinlichkeiten haben. Der Kursleiter stellt fest, dass das Modell umso sicherer in seiner Ausgabe ist, je näher die Vorhersagewahrscheinlichkeit bei eins liegt. Diese Ausgabe ergibt sich aus der Betrachtung mehrerer Stichproben, und es ist möglich, den Algorithmus und die Daten anzupassen, um diese Vorhersagen zu verbessern. Die codierten Ausgaben müssen in Bezeichnungen geändert werden, die für Menschen verständlich sind. Darüber hinaus erörtert der Kursleiter die Form von Tensoren, einschließlich Stapelgröße, Farbkanälen und Höhe/Breite. Eine Chargengröße von 32 ist gängige Praxis, und die Form kann je nach zu lösendem Problem variieren.

  • 08:50:00 Der Kursleiter erklärt die Architektur eines Klassifizierungsmodells, das schematisch darstellt, was ein neuronales Netzwerk ist. Die Form der Eingabeschicht wird durch die Anzahl der Merkmale bestimmt, die als numerische Darstellung codiert werden müssen, und die Ausgabeschicht ist oft eine Vorhersagewahrscheinlichkeit für eine bestimmte Klasse. Es gibt Hyperparameter wie die Anzahl der verborgenen Schichten, Neuronen pro verborgener Schicht und die Form der Ausgabeschicht, die vom Benutzer festgelegt werden müssen. Der Kursleiter gibt auch Codebeispiele zum Erstellen von Ebenen und Neuronen mit PyTorch und stellt fest, dass die Formen je nach zu lösendem Problem variieren.

  • 08:55:00 Der Kursleiter bespricht die Komponenten eines Klassifizierungsproblems, einschließlich der Aktivierung verborgener Schichten, der Ausgangsaktivierung, der Verlustfunktion und des Optimierers, und stellt jeweils Beispiele zur Verfügung. Der Kursleiter stellt dann ein Klassifizierungsproblem mit mehreren Klassen vor und erörtert, wie die Architektur so aufgebaut werden kann, dass sie mehrere Ausgabefunktionen hat. Schließlich wechselt der Kursleiter zum Schreiben von Code mit PyTorch in Google CoLab und erinnert das Publikum daran, dass der gesamte Code in einem GitHub-Repo gespeichert wird. Der Kursleiter betont auch, wie wichtig es ist, jedes maschinelle Lernproblem mit Daten zu beginnen.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs (Teile 10-14)


PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs


Teil 10

  • 09:00:00 Das Video konzentriert sich auf die Erstellung eines benutzerdefinierten Datensatzes mit der scikit-learn-Bibliothek. Der Datensatz Kreise erstellen wird importiert und 1000 Proben werden mit etwas zusätzlichem Rauschen für die Zufälligkeit erstellt. Die Länge von X und Y wird gedruckt, was anzeigt, dass es 1000 Muster von Merkmalen und Etiketten gibt. Die ersten fünf Proben von X und Y werden dann gedruckt, was zeigt, dass die Daten bereits numerisch sind und nur zwei Klassen haben: Null und Eins für die binäre Klassifizierung. Anschließend wird ein Pandas-Datenrahmen mit den als X1 und X2 bezeichneten Merkmalen erstellt, und Zufallsstichproben werden als potenziell hilfreicher Ansatz zur Untersuchung großer Datensätze diskutiert.

  • 09:05:00 Der Kursleiter erklärt den Spielzeugdatensatz, der verwendet wird, um den Aufbau eines neuronalen Netzwerks in PyTorch für die binäre Klassifizierung zu üben. Der Datensatz wurde mit scikit-learn generiert und besteht aus zwei Kreisen mit unterschiedlichen Farben, die die beiden Klassen des binären Klassifizierungsproblems darstellen. Der Kursleiter zeigt, wie Datenvisualisierung helfen kann, den Datensatz zu verstehen und sich auf den Aufbau eines neuronalen Netzwerks vorzubereiten. Die Eingabe- und Ausgabeformen des Problems werden ebenfalls besprochen sowie die Aufteilung des Datensatzes in Trainings- und Testsätze, die im nächsten Abschnitt des Kurses behandelt werden.

  • 09:10:00 Der Kursleiter erörtert die Bedeutung der Überprüfung von Eingabe- und Ausgabeformen beim maschinellen Lernen, da sie häufige Fehlerquellen sind. Sie demonstrieren, wie die Eingabe- und Ausgabeformen eines Datensatzes mithilfe von NumPy-Arrays angezeigt und die Daten in PyTorch-Tensoren konvertiert werden. Der Prozess der Umwandlung von Daten in Tensoren und deren Aufteilung in Trainings- und Testdatensätze ist ein entscheidender Schritt beim maschinellen Lernen, selbst für Spielzeugdatensätze wie den in diesem Beispiel verwendeten. Der Kursleiter zeigt, wie man PyTorch importiert und sicherstellt, dass die verwendete Version 1.10 ist, wie man NumPy-Arrays in PyTorch-Tensoren konvertiert und wie man Trainings- und Testsätze für die Daten erstellt.

  • 09:15:00 Der Kursleiter demonstriert, wie Daten aus NumPy-Arrays mithilfe des Befehls „torch.float“ in PyTorchs Standardtyp Float 32 konvertiert werden. Andernfalls kann es später zu Fehlern kommen. Der Ausbilder zeigt dann, wie Daten mithilfe der zufälligen Aufteilung in Trainings- und Testsätze aufgeteilt werden, was mit der Funktion „train_test_split“ von scikit-learn erfolgt. Das Codebeispiel zeigt die Reihenfolge, in der Features und Beschriftungen angezeigt werden sollen, während sie an die Funktion übergeben werden. Der Kursleiter erklärt auch die Verwendung des Parameters „test_size“, wobei der angegebene Wert der Prozentsatz der Daten ist, die als Testdaten verwendet werden sollen, und des Parameters „random_state“, der wie ein Zufallsgenerator wirkt.

  • 09:20:00 Das Video behandelt die Aufteilung der Daten in Trainings- und Testsätze mithilfe der Scikit-learn-Bibliothek in PyTorch. Der manuelle Startpunkt für Fackelpunkte ist so eingestellt, dass sichergestellt ist, dass dieselben zufälligen Aufteilungen verwendet werden, um sicherzustellen, dass sie mit denen übereinstimmen, die Sie vergleichen möchten. Anhand der Länge des Zugs und der Testsätze erklärt das Video, dass sie 800 bzw. 200 Proben haben, die den Datensatz bilden, mit dem sie arbeiten werden. Der nächste Schritt besteht darin, ein Modell zu erstellen und auszuwählen, um die roten und blauen Punkte zu klassifizieren. Um dies zu erreichen, richten sie einen agnostischen Code ein, der das Gerät so enthält, dass es auf einem Beschleuniger läuft, konstruieren das Modell, definieren Verluste und verwenden PyTorch, um eine Trainings- und Testschleife zu erstellen, die im nächsten Abschnitt weiter untersucht wird.

  • 09:25:00 Wir lernen, wie man eine GPU für PyTorch einrichtet und einen geräteunabhängigen Code erstellt, um sicherzustellen, dass der Code ohne Probleme auf einer CPU ausgeführt wird. Wir fahren dann fort, ein Modell zu konstruieren, indem wir ein nn.Module unterklassen, und folgen vier Hauptschritten. Zuerst erstellen wir ein Modell, das ein nn.Module unterordnet. Zweitens erstellen wir zwei lineare Schichten, die in der Lage sind, die Formen unserer Daten zu verarbeiten. Drittens definieren wir eine Vorwärtsmethode, die den Vorwärtsdurchgang des Modells skizziert. Viertens instanziieren wir die Instanz unserer Modellklasse und senden sie an das Zielgerät. Wir erfahren, dass unser Modell verwendet wird, um rote und blaue Kreise mithilfe eines neuronalen Netzwerks zu trennen.

  • 09:30:00 Der Kursleiter erläutert, wie eine neuronale Netzwerkschicht definiert wird, die in der Lage ist, Eingabefunktionen zu verarbeiten. Er erklärt weiter, dass die Anzahl der für jede Schicht erforderlichen Merkmale vom verwendeten Datensatz abhängt. In diesem Beispiel, in dem X zwei Features hat, ist die erste Ebene als „n-linear“ mit n Features gleich zwei definiert, während die zweite Ebene mit fünf Features definiert ist, um dem Modell zu helfen, mehr Muster zu lernen. Der Kursleiter erklärt auch, dass die In-Features der zweiten Ebene mit den Out-Features der vorherigen Ebene übereinstimmen sollten, um Formfehlanpassungsfehler zu vermeiden. Schließlich definiert er eine Ford-Methode, die den Ford-Durchlauf skizziert und die Selbstschicht zwei zurückgibt (die die Selbstschicht eins und X als Eingaben verwendet).

  • 09:35:00 Der Kursleiter erklärt, wie eine Instanz der Modellklasse instanziiert und an das Zielgerät gesendet wird. Er zeigt, wie man ein einfaches mehrschichtiges neuronales Netzwerk erstellt, das er dann auf dem TensorFlow-Spielplatz demonstriert, indem er zwei Eingabefunktionen verwendet und sie an eine verborgene Schicht mit fünf Neuronen weiterleitet, die in eine andere Schicht mit einer Ausgabefunktion eingespeist werden. Er passt das Netzwerk an einige Daten an, und der Testverlust beträgt ungefähr 50 %. Wenn das Modell also nur zufällig raten würde, würde es einen Verlust von ungefähr 0,5 erhalten, da es nur zwei Klassen gibt.

  • 09:40:00 Der Kursleiter verwendet ein Whiteboard-Tool namens Fig Jam, um ein neuronales Netzwerk für ein binäres Klassifizierungsproblem visuell darzustellen. Der Kursleiter erklärt, dass Sie bei einem binären Klassifizierungsproblem durch zufälliges Raten eine Genauigkeit von etwa 50% erhalten. Das neuronale Netz wird aus Eingaben, verborgenen Einheiten und einer Ausgabeschicht aufgebaut, und der Ausbilder betont, dass die Form der Schichten übereinstimmen muss. Der TensorFlow-Spielplatz wird als unterhaltsame Art und Weise vorgeschlagen, sich selbst beim Aufbau eines neuronalen Netzwerks auf dieser Art von Daten zu erforschen und herauszufordern. Später diskutiert der Kursleiter die Replikation des zuvor erstellten neuronalen Netzwerks mit noch weniger Code unter Verwendung von zwei linearen Schichten, die in der Lage sind, die Eingabefunktionen zu verarbeiten und sie hochzuskalieren, um das Lernen des Netzwerks zu verbessern.

  • 09:45:00 Der Kursleiter demonstriert, wie ein neuronales Netzwerkmodell mit nn.Sequential in PyTorch repliziert wird. Durch die Verwendung von nn.Sequential kann der Code für das Modell vereinfacht werden, da der Großteil des Codes hinter den Kulissen implementiert wird. Der Kursleiter erklärt, dass die Verwendung von nn.Sequential für einfache, unkomplizierte Operationen effizienter sein kann als das Erstellen von Unterklassen, wie in einem vorherigen Abschnitt des Videos gezeigt wurde. Das Erstellen von Unterklassen ermöglicht jedoch komplexere Operationen, z. B. das Erstellen komplexerer Vorwärtspässe. In diesem Abschnitt werden die Flexibilität von PyTorch und die verschiedenen Möglichkeiten zum Erstellen eines Modells hervorgehoben. Der Kursleiter demonstriert auch das Weiterleiten von Daten durch das Modell und das Analysieren des Zustandswörterbuchs.

  • 09:50:00 Der Kursleiter demonstriert, wie PyTorch hinter den Kulissen automatisch Gewichtungs- und Bias-Parameter erstellt, während ein zweischichtiges neuronales Netzwerk implementiert wird. Der Kursleiter hebt die Tatsache hervor, dass das Modell mit Zufallszahlen instanziiert wird und dass PyTorch diese Werte während des Backpropagation- und Gradient Descent-Prozesses geringfügig ändert, um die Daten besser anzupassen oder darzustellen. Der Kursleiter zeigt auch die potenzielle Komplexität vieler Ebenen mit zahlreichen Funktionen und wie das manuelle Nachverfolgen dieser Werte sehr ausführlich werden kann. Abschließend macht der Kursleiter Vorhersagen unter Verwendung des ungeschulten Modells und hebt die Bedeutung der Fehlerbehebung und Visualisierung der Daten hervor.

  • 09:55:00 Das Video erklärt, wie man eine Verlustfunktion und einen Optimierer auswählt, nachdem man ein Modell für Deep Learning erstellt hat. Die Art der Verlustfunktion und des benötigten Optimierers hängt normalerweise von der Art des Datensatzes ab, an dem gearbeitet wird. Bei Regressionsproblemen können der mittlere absolute Fehler oder der mittlere quadratische Fehler angemessen sein. In der Zwischenzeit könnte für Klassifizierungsfragen die binäre Kreuzentropie oder die kategoriale Kreuzentropie gewählt werden. Das Video schließt mit der Feststellung, dass die Verlustfunktion hilft zu messen, wie genau die Vorhersagen eines Modells sind.

Teil 11

  • 10:00:00 In diesem Abschnitt des Videokurses gibt der Kursleiter einen Überblick über verschiedene Verlustfunktionen und Optimierer, die häufig in PyTorch für die Klassifizierung neuronaler Netze verwendet werden. Der Kursleiter erklärt den binären Kreuzentropieverlust, den Kreuzentropieverlust, den mittleren absoluten Fehler und den mittleren quadratischen Fehler und welche davon typischerweise für Regressions- versus Klassifikationsaufgaben verwendet werden. Für binäre Klassifizierungsaufgaben umfassen die bereitgestellten Codebeispiele Torch.nn BCE-Verlust mit Logits und BCE-Verlust. Das Video behandelt auch das Konzept von Logit im Deep Learning und untersucht zwei häufig verwendete Optimierer, SGD und Adam. Der Kursleiter merkt an, dass es zwar andere Optimierer gibt, dass man aber bei vielen Problemen gute Ergebnisse erzielen kann, wenn man sich an diese beiden hält.

  • 10:05:00 In diesem Abschnitt des Videos richtet der Sprecher die Verlustfunktion und den Optimierer in PyTorch für Deep Learning und maschinelles Lernen ein. Die Verlustfunktion heißt BCE mit Logits-Verlust, in die die Sigmoid-Aktivierungsfunktion eingebaut ist. Der Referent erklärt, dass es Online-Ressourcen gibt, wenn man mehr über Aktivierungsfunktionen in neuronalen Netzen erfahren möchte. Der gewählte Optimierer ist stochastischer Gradientenabstieg (SGD) mit einer Lernrate von 0,1, und die Parameter sind so eingestellt, dass sie die Modellparameter in Bezug auf den Verlust aktualisieren. Abschließend erstellt der Sprecher eine Bewertungsmetrik.

  • 10:10:00 In diesem Abschnitt erörtert der Kursleiter die Bedeutung der Genauigkeit als Bewertungsmetrik und demonstriert, wie eine Genauigkeitsfunktion mit Pytorch erstellt wird. Die Genauigkeitsfunktion vergleicht die Vorhersagen mit den Ground-Truth-Labels und gibt den Prozentsatz der richtigen Vorhersagen aus der Gesamtzahl der Stichproben zurück. Der Ausbilder gibt auch einen Überblick über die Schritte einer Pytorch-Trainingsschleife, einschließlich Vorwärtspass, Verlustberechnung, Optimierer-Nullgrad, Rückwärtsausbreitung und Gradientenabstieg. Die Schritte werden aufgelistet und die Wichtigkeit jedes Schrittes wird besprochen.

  • 10:15:00 In diesem Abschnitt erklärt der Kursleiter, wie man von rohen Logits zu Vorhersagewahrscheinlichkeiten zu Vorhersagelabels gelangt. Rohausgaben des Modells werden als Logits bezeichnet, die in Vorhersagewahrscheinlichkeiten umgewandelt werden können, indem sie an eine Aktivierungsfunktion wie Sigmoid für binäre Klassifizierung und Softmax für Mehrklassenklassifizierung übergeben werden. Vorhersagewahrscheinlichkeiten können dann in Vorhersageetiketten umgewandelt werden, indem sie entweder für eine binäre Klassifizierung gerundet werden oder für eine Mehrklassenklassifizierung der Argmax verwendet wird. Der Kursleiter erklärt auch das Konzept einer Aktivierungsfunktion als etwas, das von einer Schicht getrennt ist, und zeigt, wie Daten, die durch eine lineare Schicht geleitet werden, eine lineare Transformation auf die eingehenden Daten durch ein Skalarprodukt und einen Bias-Term anwenden.

  • 10:20:00 In diesem Abschnitt des Videos erklärt der Kursleiter, wie die Sigmoid-Aktivierungsfunktion verwendet wird, um die Rohausgabe eines Modells, Logits genannt, in Vorhersagewahrscheinlichkeiten umzuwandeln, die für die binäre Klassifizierung verwendet werden können. Der Kursleiter demonstriert, wie die Sigmoidfunktion auf den Modelllogits verwendet wird, um Predprobs zu erstellen, die dann an eine Fackelpunktrundungsfunktion übergeben werden können, um Vorhersagelabels zu erhalten. Diese Vorhersageetiketten werden verwendet, um zu bestimmen, zu welcher Klasse eine Eingabe gehört, wobei eine Entscheidungsgrenze verwendet wird, die oft auf 0,5 festgelegt ist. Der Ausbilder betont auch, wie wichtig es ist, diesen Schritt an den Rohprotokollen durchzuführen, um sicherzustellen, dass die Vorhersagewahrscheinlichkeiten dasselbe Format wie die Testdaten haben.

  • 10:25:00 In diesem Abschnitt erläutert das Video den Prozess der Umwandlung von Rohlogits aus dem Modell in Vorhersagewahrscheinlichkeiten mithilfe einer Aktivierungsfunktion und deren anschließende Umwandlung in Vorhersagelabels. Die Schritte werden durch ein gutes Stück Code demonstriert, wobei y-pred aus y-pred-Sonden unter Verwendung des vollständigen Schritts erstellt wird, einschließlich Vorhersagen, Logits zu Pred-Sonden zu Pred-Labels. Die Vorhersagen des Modells werden mit Testetiketten verglichen, und dasselbe Format wird mithilfe der Squeeze-Funktion erstellt. Der nächste Schritt besteht darin, eine Trainings- und Testschleife aufzubauen, bei der ein Vorwärtsdurchgang durchgeführt, der Verlust berechnet und die Gradienten optimiert werden. Das Video ermutigt den Zuschauer, dies selbst zu versuchen, bevor er mit dem nächsten Video fortfährt, um weitere Anweisungen zu erhalten.

  • 10:30:00 In diesem Abschnitt legt der Kursleiter einen manuellen Startwert für die Reproduzierbarkeit fest, insbesondere einen CUDA-Zufallsstartwert für Operationen auf einem CUDA-Gerät. Sie fahren dann damit fort, die Daten auf das Zielgerät zu übertragen und die Trainings- und Bewertungsschleife aufzubauen. Der Ausbilder hebt einen kleinen Leckerbissen im Vorwärtsdurchlauf hervor, wo rohe Logits ausgegeben werden und durch Torch.Round und Torch.Sigmoid geleitet werden müssen, um sie in Vorhersagewahrscheinlichkeiten und Labels umzuwandeln. Schließlich berechnen sie den Verlust und die Genauigkeit und stellen fest, dass die Berechnung der Genauigkeit zwar nicht erforderlich ist, es jedoch nützlich sein kann, verschiedene Metriken zu visualisieren, während das Modell trainiert.

  • 10:35:00 In diesem Abschnitt erläutert das Video den Unterschied zwischen BCE-Verlust und BCE mit Logits-Verlust in PyTorch. Das BCE mit Logits-Verlust erwartet Logits als Eingabe und kombiniert eine Sigmoid-Schicht und BCE-Verlust, wodurch es numerisch stabiler wird. Andererseits erwartet der BCE-Verlust Vorhersagewahrscheinlichkeiten als Eingabe, sodass Torch Sigmoid für die Logits aufgerufen werden muss, um sie in Wahrscheinlichkeiten umzuwandeln. Das Video skizziert auch die Schritte für die PyTorch-Optimierungsschleife, einschließlich Nullstellen der Farbverläufe, Ausführen von Backpropagation und Aktualisieren der Parameter zum Reduzieren der Farbverläufe. Ebenso sollte das Modell beim Testen oder Vorhersagen in den Inferenzmodus versetzt werden, und die Testlogits sollten verarbeitet werden, indem die Sigmoidfunktion aufgerufen wird, um Vorhersagewahrscheinlichkeiten zu erhalten.

  • 10:40:00 In diesem Abschnitt erläutert der Kursleiter, wie der Testverlust und die Genauigkeit für das Klassifizierungsmodell berechnet werden. Um den Testverlust zu berechnen, verwendet der Ausbilder BCE mit der Logit-Verlustfunktion und vergleicht sie mit Y-Testetiketten. Um die Testgenauigkeit zu berechnen, verwendet der Ausbilder die Genauigkeitsfunktion für die Variablen Y true und Y pred. Die Reihenfolge der Variablen ist für die Genauigkeitsfunktion umgekehrt, da der Kursleiter sie auf dem Metrikpaket von scikit-learn basiert. Schließlich druckt der Ausbilder die Epochennummer, den Trainingsverlust und die Genauigkeit sowie den Testverlust und die Genauigkeit bei jeder 10. Epoche aus. Der Ausbilder ermutigt die Benutzer, diesen Mammutcode auszuführen und auftretende Fehler zu beheben.

  • 10:45:00 In diesem Abschnitt diskutiert der Instruktor die Ergebnisse des Modelltrainings aus dem vorherigen Abschnitt, die keine signifikante Verbesserung der Genauigkeit zeigten. Der Ausbilder schlägt vor, dass eine ideale Genauigkeit für das Modell 100 und ein Verlustwert null sein sollte. Die Genauigkeit des aktuellen Modells liegt jedoch unter 50 %, was einem zufälligen Raten gleichkommt. Um den Grund für die schlechte Leistung zu ermitteln, schlägt der Ausbilder vor, die Vorhersagen des Modells zu visualisieren. Der Instruktor importiert eine Funktion namens "Plot Decision Border" aus einer Hilfsfunktionsdatei, die in diesem Visualisierungsprozess verwendet werden soll. Der Kursleiter empfiehlt auch eine Ressource, madewithml.com, für diejenigen, die mehr über die Grundlagen des maschinellen Lernens und ml ops erfahren möchten.

  • 10:50:00 In diesem Abschnitt erklärt der Kursleiter, wie man mithilfe der Python-Module „pathlib“ und „request“ programmgesteuert Hilfsfunktionen aus dem PyTorch-Lernrepository herunterlädt. Der Kursleiter zeigt den Prozess der Überprüfung, ob der Pfad der Hilfsfunktionen bereits vorhanden ist, und falls er nicht vorhanden ist, wird eine Anfrage zum Herunterladen der Hilfsfunktion als Datei mit dem Namen „helper_functions.py“ gestellt. Der Dozent demonstriert den erfolgreichen Import der Methoden „plot_predictions“ und „plot_decision_boundary“ aus der heruntergeladenen Hilfsfunktion, die später im Kurs verwendet werden. Schließlich führt der Ausbilder einen Test durch, um die Hilfsfunktion unter Verwendung der Funktion "plot_decision_boundary" zu visualisieren, die erfolgreich eine Entscheidungsgrenze für den Trainingssatz zeichnet.

  • 10:55:00 In diesem Abschnitt des Videos erörtert der Moderator die Einschränkungen eines linearen Modells beim Trennen kreisförmiger Daten durch gerade Linien, wie in einer Visualisierung der Entscheidungsgrenze des Modells gezeigt. Die Lösung zur Verbesserung der Genauigkeit des Modells besteht darin, mehr Schichten hinzuzufügen, dh die Tiefe des neuronalen Netzwerks zu erhöhen, was mehr Möglichkeiten bietet, etwas über Muster in den Daten zu lernen. Andere Möglichkeiten zur Verbesserung der Leistung eines Modells umfassen die Erhöhung der Menge an Trainingsdaten und die Anpassung von Hyperparametern wie Lernrate und Stapelgröße. Das Importieren und Verwenden von Hilfsfunktionen aus externen Python-Skripten wird ebenfalls als gängige Praxis erwähnt.

Teil 12

  • 11:00:00 In diesem Abschnitt erörtert der Kursleiter Möglichkeiten zur Verbesserung eines Modells: Hinzufügen von mehr versteckten Einheiten, längeres Anpassen, Ändern von Aktivierungsfunktionen, Anpassen der Lernrate und Ändern der Verlustfunktion. Der Kursleiter weist darauf hin, dass eine Erhöhung der Anzahl von Parametern in einem Modell potenziell dazu beitragen kann, die Daten besser darzustellen, aber zu viele Parameter das Modell für einen einfachen Datensatz zu komplex machen können. Der Kursleiter veranschaulicht auch, wie Experimente helfen können, das Modell zu verbessern, indem seine Struktur und Hyperparameter geändert werden. Abschließend zeigt der Kursleiter grafische Beispiele dafür, wie das Hinzufügen von Schichten, das Erhöhen der Anzahl versteckter Einheiten, das Hinzufügen von Aktivierungsfunktionen und das Ändern der Optimierungsfunktion das Modell potenziell verbessern können.

  • 11:05:00 In diesem Abschnitt erläutert der Kursleiter, wie ein Modell aus der Modellperspektive verbessert werden kann. Er erklärt das Konzept der Hyperparameter, bei denen es sich um Werte handelt, die Ingenieure für maschinelles Lernen und Datenwissenschaftler ändern können, um die Ergebnisse des Modells zu verbessern. Der Kursleiter zeigt, wie die Hyperparameter eines Modells geändert werden, z. B. die Anzahl der verborgenen Einheiten, die Anzahl der Schichten und die Anzahl der Epochen. Er betont auch, wie wichtig es ist, diese Änderungen einzeln zu testen, um festzustellen, welche die Verbesserung oder Verschlechterung bietet. Abschließend erklärt er den Unterschied zwischen Parametern und Hyperparametern und warum diese Unterscheidung wichtig ist.

  • 11:10:00 In diesem Abschnitt erstellt der Ausbilder ein dreischichtiges Modell mit mehr versteckten Einheiten, um zu sehen, ob das längere Training dieses Modells zu besseren Ergebnissen führt. Die Vorwärtsmethode wird außer Kraft gesetzt, um Daten durch jede Schicht zu leiten, mit einer zusätzlichen versteckten Einheit und einer zusätzlichen Schicht insgesamt. Es wird auch gezeigt, dass die Methode, die Beschleunigungen nutzt, alle Operationen auf einmal ausführt. Eine Instanz des dreischichtigen Modells wird erstellt und an das Zielgerät gesendet, gefolgt von der Erstellung einer Verlustfunktion und eines Optimierers sowie einer Trainings- und Bewertungsschleife für Modell eins.

  • 11:15:00 In diesem Abschnitt setzt das Video das vorherige fort, in dem das nn.module in Unterklassen umgewandelt wurde, um ein neues Modell, Circle Model V1, mit mehr versteckten Einheiten und einer zusätzlichen Ebene zu erstellen. Der nächste Schritt im Workflow besteht nun darin, eine Verlustfunktion auszuwählen, und das Video verwendet wie zuvor nn.BCEWithLogitsLoss() mit demselben Optimierer, torque.optin.SGD(). Das Video setzt die Lernrate auf 0,1, die Anzahl der Epochen auf 1000 und legt Daten auf dem Zielgerät (CPU oder GPU) ab. Das Video zeigt auch eine Schleife durch die Epochen und leitet die Trainingsdaten durch das Modell mit der neuen Architektur, berechnet den Verlust und aktualisiert die Parameter mit Torch's Autograd.

  • 11:20:00 In diesem Abschnitt des Videos geht der Ausbilder die Schritte zur Bewertung der Genauigkeit und des Verlusts des Modells durch. Die Verlustfunktion nimmt die vorhergesagten Labelwerte auf und vergleicht sie mit den tatsächlichen Labelwerten. Die Genauigkeitsfunktion wird verwendet, um zu bestimmen, wie genau die Vorhersagen des Modells sind. Der Optimierer wird verwendet, um die Parameter des Modells anzupassen, um eine bessere Darstellung der Daten zu erstellen. Das Testen erfolgt durch Aufrufen der Methode eval() des Modells und Einschalten des Inferenzmodus. Logits werden erstellt, indem Eingabedaten an das Modell übergeben werden, und dann werden die Funktionen Torch.Round() und Torch.Sigmoid() verwendet, um sie in Vorhersagen umzuwandeln. Der Verlust und die Genauigkeit werden für die Testdaten berechnet und alle 100 Epochen während des Trainings des Modells ausgedruckt.

  • 11:25:00 In diesem Abschnitt des Kurses „PyTorch for Deep Learning & Machine Learning“ erörtert der Kursleiter Techniken zur Fehlerbehebung, wenn ein Modell nicht funktioniert, z. B. das Testen eines kleineren Problems, um zu sehen, ob das Modell überhaupt etwas lernen kann. Er schlägt vor, den Datensatz aus einem vorherigen Abschnitt zu replizieren, in dem ein lineares Modell in der Lage war, eine gerade Linie anzupassen, und ihn zu verwenden, um zu sehen, ob das aktuelle Modell etwas lernen kann, da es derzeit nur rät und keine gerade Linie ziehen kann, um die zu trennen zirkuläre Daten. Der Kursleiter erwähnt auch, dass einige Methoden zur Verbesserung eines Modells das Ändern der Hyperparameter umfassen, wie z. B. die Anzahl der Schichten und verborgenen Einheiten, und das Ändern der Aktivierungs- und Verlustfunktionen.

  • 11:30:00 In diesem Abschnitt erstellt der Kursleiter einen Datensatz unter Verwendung einer linearen Regressionsformel, um zu sehen, ob das Modell bei irgendeiner Art von Problem funktioniert. Der Datensatz heißt x-Regression und enthält 100 Stichproben mit einem x-Wert pro y-Wert. Der Instruktor erstellt dann Trainings- und Testsplits für die Daten und überprüft deren Länge. Schließlich wird die Plotvorhersagefunktion aus der Hilfsfunktionsdatei verwendet, um die Daten visuell zu inspizieren.

  • 11:35:00 In diesem Abschnitt erörtert der Moderator ein Nebenprojekt, um zu sehen, ob sein Modell an einen geradlinigen Datensatz angepasst werden kann, bevor er versucht, einen nicht geradlinigen Datensatz anzupassen. Sie passen Modell 1 an den neuen Datensatz an, indem sie die Anzahl der Eingabemerkmale von zwei auf eins ändern, um den Daten zu entsprechen, während die Ausgabemerkmale bei 10 bleiben, um dem Modell so viele Parameter wie möglich zu geben. Sie erstellen auch Modell 2 mit NN dot sequential, das Daten durch Schichten leitet, und richten eine Verlust- und Optimierungsfunktion ein.

  • 11:40:00 In diesem Abschnitt führt der Kursleiter die L1-Verlustfunktion ein, um ein Regressionsproblem zu optimieren, und verwendet den SGD-Optimierer mit einer Lernrate von 0,1, um die Parameter des Modells zu optimieren. Nach dem Laden des Datensatzes und dem Ablegen auf dem Zielgerät wird das Modell mit einer Schleife für tausend Epochen trainiert. In jeder Epoche wird der Vorwärtsdurchlauf durchgeführt, der Verlust wird berechnet und die Parameter werden unter Verwendung von Rückwärts- und Schrittfunktionen aktualisiert. Der Trainingsfortschritt wird alle 100 Epochen mit Epoche, Verlust und Testverlust ausgedruckt. Der Verlust sinkt, wenn das Modell optimiert wird.

  • 11:45:00 In diesem Abschnitt des Videos fasst der Ausbilder den vorherigen Abschnitt zusammen, in dem er einen Datensatz mit geraden Linien erstellt und ein Modell darauf trainiert hat, ihn anzupassen. Sie bestätigen, dass das Modell etwas lernt, und schlagen vor, dass Lernende mit verschiedenen Werten der Lernrate herumspielen, um mit maschinellen Lernmodellen zu experimentieren. Anschließend erklärt der Kursleiter, wie der Bewertungsmodus aktiviert und Vorhersagen getroffen werden, die auch als Inferenz bezeichnet werden. Sie lehren auch, wie man die Plot-Vorhersagefunktion verwendet und auf einen Fehler stößt, weil sich die Daten nicht auf demselben Gerät wie das Modell befinden, was sie lösen, indem sie dot CPU für ihre Tensor-Eingaben aufrufen.

  • 11:50:00 In diesem Abschnitt führt der Kursleiter in die Bedeutung der Nichtlinearität beim maschinellen Lernen und Deep-Learning-Modellen ein. Lineare Funktionen allein können die komplexen Muster in Daten nicht erfassen, für deren genaue Darstellung nichtlineare Funktionen wie Kurven erforderlich sind. Neuronale Netze werden aufgebaut, indem lineare Funktionen mit nichtlinearen Funktionen oder Aktivierungen kombiniert werden, um komplexe Datenmuster zu modellieren. Der Kursleiter weist auf kommende Videos hin, die sich mit nichtlinearen Aktivierungen und ihrer Rolle in Deep-Learning-Modellen befassen.

  • 11:55:00 In diesem Abschnitt erörtert der Kursleiter die Macht der Nichtlinearität beim maschinellen Lernen und bei neuronalen Netzen. Nichtlinearität ist beim maschinellen Lernen unerlässlich, da die Daten nicht immer aus geraden Linien bestehen. Der Kursleiter demonstriert dann, wie man nichtlineare Daten mit der Funktion „Kreise erstellen“ erstellt und grafisch darstellt, Daten in Zeiten umwandelt und Teilungen mit PyTorch und der Funktion „Train Test Split“ von sklearn trainiert und testet.

Teil 13

  • 12:00:00 In diesem Abschnitt stellt der Kursleiter eines PyTorch-Kurses für Deep Learning und maschinelles Lernen die Nichtlinearität vor, die eine entscheidende Komponente beim Erstellen eines Modells ist. Der Kursleiter fordert den Betrachter auf, eine bestimmte nichtlineare Funktion im TorchNN-Modul zu finden, die Pooling-Layer, Padding-Layer und Aktivierungsfunktionen umfassen kann, um eine mathematische Operation an einer Eingabe durchzuführen. Beispiele für nichtlineare Aktivierungen wie n-Punkt-Sigmoid und n-Punkt-Relu werden bereitgestellt. Der Kursleiter demonstriert dann, wie ein Klassifizierungsmodell mithilfe von Nichtlinearität mit PyTorch erstellt wird. Nichtlinearität bedeutet, dass der Graph keine gerade Linie ist, während linear das Gegenteil bedeutet.

  • 12:05:00 In diesem Abschnitt des Kurses „PyTorch for Deep Learning & Machine Learning“ stellt der Kursleiter das Konzept der nichtlinearen Daten vor und erläutert, wie neuronale Netze und Modelle für maschinelles Lernen mit Zahlen in Hunderten von Dimensionen arbeiten können, was es ihnen erleichtert Umgang mit nichtlinearen Daten. Ein neues neuronales Netzwerk, das Kreismodell V2, wird unter Verwendung von Klassen mit einem Konstruktor und mehreren Schichten erstellt, die lineare Operationen ausführen, wobei eine nichtlineare Aktivierungsfunktion namens "relu" hinzugefügt wird. Diese Funktion setzt negative Eingaben des Modells auf Null, während die positiven unverändert bleiben. Das neue Modell wird dann durch die Sigmoidfunktion geleitet, um die Ausgabe zu bestimmen.

  • 12:10:00 In diesem Abschnitt fordert der Kursleiter die Zuschauer auf, ein neuronales Netzwerkmodell im TensorFlow Playground mit zwei verborgenen Schichten und fünf Neuronen nachzubilden, wobei die Aktivierungsfunktion Rectified Linear Unit (ReLU) anstelle der linearen Aktivierungsfunktion verwendet wird, die sie verwenden habe verwendet. Der Kursleiter erklärt, dass die ReLU-Aktivierungsfunktion eine beliebte und effektive nichtlineare Aktivierungsfunktion ist, die für die Modellierung nichtlinearer Daten erforderlich ist, wofür neuronale Netze entwickelt wurden. Der Ausbilder demonstriert die Auswirkung einer Änderung der Lernrate auf den Trainingsverlust und ermutigt die Zuschauer, mit verschiedenen Lernraten zu experimentieren, um die Auswirkung auf die Verlustkurve zu beobachten.

  • 12:15:00 In diesem Abschnitt erläutert der Kursleiter den Aufbau eines Optimierers und einer Verlustfunktion für ein binäres Klassifizierungsproblem mit PyTorch. Sie setzen die nichtlineare Aktivierungsfunktion des Modells auf ReLU und erzeugen Zufallsstartwerte für CUDA. Anschließend durchlaufen sie 1000 Epochen, um das Modell zu trainieren, und berechnen den Verlust und die Genauigkeit mithilfe des BCE mit der Logits-Verlustfunktion bzw. einer Genauigkeitsfunktion. Der Kursleiter ermutigt zum Nachdenken darüber, wie der Schulungscode funktionalisiert werden kann, und schlägt vor, dass dieser Abschnitt dazu dient, Erfahrungen und Impulse für die Arbeit an realen PyTorch-Projekten aufzubauen.

  • 12:20:00 In diesem Abschnitt erläutert der Kursleiter den Prozess der Optimierung des Modells mit der Backpropagation-Methode in PyTorch. Bevor die Backpropagation durchgeführt wird, werden die Gradienten des Optimierers auf Null gesetzt, sodass er ganz von vorne beginnen kann. Nach dem Ausführen von loss.backward() wird die Schrittmethode des Optimierers aufgerufen, um einen Gradientenabstieg für die Modellparameter durchzuführen. Der Kursleiter zeigt auch, wie die Parameter des Modells debuggt werden, und erklärt, dass die ReLU-Aktivierungsfunktion keine Parameter hat, was sie effektiv macht. Schließlich druckt der Ausbilder den Trainings- und Testverlust, die Genauigkeit und die Epoche aus, um den Lernfortschritt des Modells zu verfolgen.

  • 12:25:00 In diesem Abschnitt behebt der Kursleiter ein Formproblem im PyTorch-Code und behebt es, indem er die Squeeze-Funktion verwendet, um eine zusätzliche Dimension in der Punktform der Testprotokolle zu entfernen. Anschließend diskutieren sie die Stärke der Nichtlinearität und wie das Hinzufügen von Relu-Layern die Leistung des Modells verbessert hat, sodass es möglicherweise eine Linie ziehen kann, um die Kreise im Datensatz zu trennen. Der Ausbilder betont auch die Bedeutung der Visualisierung bei der Bewertung des Modells und der Erstellung von Vorhersagen und fordert die Zuschauer auf, die Entscheidungsgrenzen zu zeichnen.

  • 12:30:00 In diesem Abschnitt demonstriert der Kursleiter die Verwendung der Plot Decision Boundary-Funktion zur Visualisierung der Leistung eines nichtlinearen Modells im Vergleich zu einem linearen Modell. Das nichtlineare Modell hat eine bessere Genauigkeit als das lineare Modell, aber der Ausbilder fordert den Betrachter auf, die Genauigkeit noch weiter zu verbessern. Anschließend erläutert der Kursleiter, wie neuronale Netze lineare und nichtlineare Funktionen als Werkzeuge zum Erkennen von Mustern in Daten verwenden, was zu einer Demonstration führt, wie Tensoren erstellt und nichtlineare Aktivierungsfunktionen in PyTorch verwendet werden.

  • 12:35:00 In diesem Abschnitt erklärt der Kursleiter, wie benutzerdefinierte Aktivierungsfunktionen in PyTorch erstellt werden, indem die beliebten ReLU- und Sigmoid-Funktionen repliziert werden. Der Ausbilder stellt zuerst einen Datentyp des Brennerschwimmers 32 ein und visualisiert eine gerade Linie, die unter Verwendung der negativen 10 bis 10-Werte auf der x-Achse aufgetragen ist. Die ReLU-Funktion wird dann unter Verwendung der Torch.relu- und nn.relu-Funktionen erstellt, indem ein Eingabetensor genommen und das Maximum von Null und x zurückgegeben wird. In ähnlicher Weise wird die Sigmoid-Funktion erstellt, indem ein Eingabetensor genommen und eins geteilt durch eins plus die Exponentialfunktion von negativem x zurückgegeben wird. Der Kursleiter demonstriert die Effektivität der benutzerdefinierten ReLU- und Sigmoid-Funktionen, indem er sie grafisch darstellt und sie mit den integrierten PyTorch-Funktionen vergleicht.

  • 12:40:00 In diesem Abschnitt des PyTorch-Kurses erklärt der Kursleiter, wie wichtig es ist, lineare und nichtlineare Funktionen zu kombinieren, um Muster in Daten zu finden, um einen Datensatz anzupassen. Die Idee hinter neuronalen Netzen besteht darin, Schichten dieser Funktionen zu stapeln, um ein Modell zu erstellen. Obwohl es möglich ist, diese Schichten von Grund auf neu zu erstellen, bietet Pytorch vorgefertigte Schichten an, die auf Fehler getestet wurden und hinter den Kulissen so schnell wie möglich rechnen und gleichzeitig die Verwendung von GPUs ermöglichen. Der Kursleiter erörtert auch den Unterschied zwischen der binären Klassifikation, die zwei mögliche Ergebnisse beinhaltet, und der Mehrklassenklassifikation, die mehr als zwei mögliche Ergebnisse beinhaltet. Abschließend schließt der Abschnitt mit einer Wiederholung der Bedeutung der Nichtlinearität in neuronalen Netzen, und der Kursleiter stellt eine Herausforderung, um sein vorheriges binäres Klassifizierungsmodell zu verbessern.

  • 12:45:00 In diesem Abschnitt stellt der Kursleiter die Mehrklassenklassifikation und die Unterschiede zwischen ihr und der binären Klassifikation vor. Die Softmax-Aktivierungsfunktion wird anstelle von Sigmoid und Kreuzentropie anstelle von Binärkreuzentropie verwendet. Der Kursleiter fährt dann damit fort, einen Datensatz mit 20 mehreren Klassen zu erstellen, indem er die Funktion make blobs aus scikit-learn.datasets verwendet, um vier Klassen mit jeweils zwei Merkmalen zu generieren. Die mittlere Standardabweichung wird angepasst, um den Clustern eine gewisse Zufälligkeit zu verleihen und sie ein wenig aufzurütteln, wodurch es für das Modell etwas schwieriger wird.

  • 12:50:00 In diesem Abschnitt erläutert der Transkriptauszug, wie Daten für ein Mehrklassen-Klassifizierungsmodell mit PyTorch vorbereitet werden. Sie wandeln die Daten in Tensoren um und verwenden die Train-Test-Split-Funktion von scikit-learn, um die Daten in Trainings- und Testsätze aufzuteilen. Sie visualisieren die Daten auch mit plot.figure und setzen den zufälligen Seed, um die Reproduzierbarkeit zu gewährleisten. Nach dem Erstellen des mehrklassigen Klassifizierungsdatensatzes prüfen sie, ob Nichtlinearität erforderlich ist, um die Daten zu trennen, und fahren dann mit dem Erstellen eines Modells für die Daten fort.

  • 12:55:00 In diesem Abschnitt erläutert der Kursleiter, wie ein Klassifikationsmodell mit mehreren Klassen mithilfe von PyTorch eingerichtet wird. Er erklärt den Prozess Schritt für Schritt, beginnend mit der Definition der Form der Eingabeschicht und der Bestimmung der Anzahl der Neuronen pro verborgener Schicht. Der Kursleiter erklärt dann, wie die Ausgabe-Layer-Form festgelegt wird, wofür ein Ausgabe-Feature pro Klasse erforderlich ist. Um das Modell zu erstellen, erstellt der Kursleiter eine Klasse namens "Blob-Modell", die von nn.module erbt und einige Parameter für das Modell festlegt. Abschließend demonstriert der Kursleiter, wie das Mehrklassen-Klassifizierungsmodell mit Eingabe-Features und Ausgabe-Features initialisiert wird.

Teil 14

  • 13:00:00 In diesem Abschnitt erläutert der Kursleiter die Erstellung eines linearen Schichtstapelmodells mithilfe der nn.Sequential-Methode von PyTorch. Um das Modell zu instanziieren, wird auf die Anzahl der Eingabemerkmale und die Anzahl der Ausgabeklassen zugegriffen, um die Konfiguration der verborgenen Schichten zu bestimmen. Der Kursleiter richtet einen sequentiellen Stapel von Schichten ein, um Daten nacheinander durch jede Schicht zu leiten. Sie bieten auch Anweisungen zum Hinzufügen von Nichtlinearität zum Datensatz und erstellen dann eine Vorwärtsmethode, damit die Eingabe die angegebenen Schichten nacheinander durchlaufen kann. Schließlich wird eine Instanz des Blob-Modells mit der entsprechenden Anzahl von Eingabe- und Ausgabemerkmalen erstellt.

  • 13:05:00 In diesem Abschnitt des Videos erstellt der Kursleiter ein Klassifikationsmodell mit mehreren Klassen, indem er Unterklassen für ein nn.Module erstellt und Parameter für den Klassenkonstruktor einrichtet, um die Eingabe- und Ausgabefunktionen anzupassen. Sie erklären auch, dass der Ausgabefeatures-Parameter mit der Anzahl der Klassen in den Daten übereinstimmt. Um eine Verlustfunktion für ein Klassifikationsmodell mit mehreren Klassen zu erstellen, sucht und findet der Kursleiter den Kreuzentropieverlust im Modul Torch.nn, das den Verlust zwischen Eingabe und Ziel berechnet und beim Trainieren eines Klassifikationsproblems mit C-Klassen hilfreich ist. Der Instruktor erklärt auch, dass der Gewichtsparameter nützlich ist, wenn man mit einem unausgewogenen Trainingssatz umgeht.

  • 13:10:00 In diesem Abschnitt erörtert der Kursleiter die Erstellung einer Verlustfunktion und eines Optimierers für die Mehrklassenklassifizierung. Er empfiehlt zwei gängige Optimierer, SGD und Adam, entscheidet sich jedoch für die Verwendung von SGD für dieses Beispiel. Dann fordert er die Zuschauer auf, mit dem im vorherigen Video erstellten Modell einen Vorwärtsdurchlauf zu machen und zu überlegen, was die Rohausgaben eines Modells sind. Der Kursleiter erinnert die Zuschauer auch daran, auf die Geräteparameter zu achten, da ein Laufzeitfehler auftreten kann, wenn sich Tensoren nicht auf demselben Gerät befinden. Schließlich schaltet er das Modell in den Evaluierungsmodus und trifft einige Vorhersagen.

  • 13:15:00 In diesem Abschnitt erklärt der Kursleiter, wie die Ausgabelogits eines Modells in Vorhersagewahrscheinlichkeiten und Vorhersagelabels für Klassifikationsprobleme mit mehreren Klassen konvertiert werden. Dazu werden die Logits mit der Softmax-Funktion in Vorhersagewahrscheinlichkeiten umgewandelt, und dann wird die Vorhersage mit der höchsten Wahrscheinlichkeit als vorhergesagtes Label betrachtet. Der Kursleiter demonstriert diesen Prozess mithilfe von PyTorch-Code und stellt außerdem fest, dass die Summe der Wahrscheinlichkeiten für jedes Beispiel aufgrund der Art der Softmax-Funktion immer eins ist.

  • 13:20:00 In diesem Abschnitt erklärt der Kursleiter, wie man von der Rohausgabe eines PyTorch-Modells für ein Klassifizierungsproblem mit mehreren Klassen zu Vorhersagewahrscheinlichkeiten mithilfe der Softmax-Aktivierungsfunktion und dann zu Vorhersagebezeichnungen durch Verwenden des argmax von wechselt Vorhersagewahrscheinlichkeiten. Dieser Prozess umfasst das Konvertieren der Rohausgabe des Modells in Logits, das Verwenden der Softmax-Funktion zum Abrufen der Vorhersagewahrscheinlichkeiten und das Verwenden des Argmax dieser Wahrscheinlichkeiten zum Abrufen der Vorhersagelabels. Der Kursleiter stellt fest, dass die aktuellen Vorhersagen zwar zufällig sind, da das Modell noch nicht trainiert wurde, diese Schritte jedoch in einer Trainingsschleife verwendet werden, um das Modell zu trainieren und zu bewerten.

  • 13:25:00 In diesem Abschnitt beginnt der Ausbilder mit dem Aufbau einer Trainings- und Testschleife für ein Modell mit mehreren Klassen. Zuerst richten sie manuelle Seeds ein, um zu versuchen, jedes Mal die gleiche Ausgabe zu erhalten, aber beachten Sie, dass dies nicht garantiert ist. Anschließend setzen sie die Anzahl der Epochen auf 100 und übertragen die Daten auf das Zielgerät. Die Schleife durch die Daten beginnt, und für jede Epoche wird das Modell mit einem Vorwärtsdurchgang und aus x Blob-Zug erstellten Logits trainiert. Die Ausgabe der Torch-Softmax-Funktion wird verwendet, um den Verlust mit Cross-Entropie-Verlust und Genauigkeit zu berechnen. Der Optimierer wird dann auf Null gesetzt, und eine Rückwärtsausbreitung wird durchgeführt, bevor der Optimierer gestuft wird. Der Code zum Testen oder Inferieren wird ebenfalls präsentiert, was beinhaltet, das Modell in den Evaluationsmodus zu versetzen.

  • 13:30:00 In diesem Abschnitt erläutert der Kursleiter Dropout-Layer, das Deaktivieren der Match-Norm und den Fackel-Inferenzmodus, um Vorhersagen schneller zu treffen. Sie erklären, dass Dropout-Schichten während des Trainings zufällig einige der Neuronen auslassen, um eine Überanpassung zu vermeiden. Der Ausbilder demonstriert auch, wie Testprotokolle und Testgenauigkeit berechnet werden, indem Testverluste und Testetiketten hinter den Kulissen weitergegeben werden. Anschließend besprechen sie ein lästiges Datentypproblem, das einen Laufzeitfehler verursacht hat, und wie sie es gelöst haben. Der Kursleiter betont, dass die Fehlersuche im Code ein wesentlicher Bestandteil des maschinellen Lernens ist und dass es Zeit braucht, um Fehler zu identifizieren und zu beheben.

  • 13:35:00 In diesem Abschnitt begegnet der Erzähler verschiedenen Herausforderungen bei der Fehlerbehebung, während er ein Klassifizierungsmodell mit mehreren Klassen erstellt. Zuerst findet er heraus, dass der Fehler in seinem Code darauf zurückzuführen ist, dass einer der Tensoren den falschen Datentyp hat. Durch einige Nachforschungen und Experimente ändert er den Tensor in einen „torch.long-Tensor“, der die Berechnung für Kreuzentropieverluste optimiert. Später stößt er auf einen weiteren Fehler aufgrund unterschiedlicher Größen seiner Trainings- und Testdaten. Durch schnelles Debuggen des Codes identifiziert er das Problem und weist die Daten neu zu. Trotz dieser Herausforderungen verhalten sich die Genauigkeit und der Verlust des Modells wie erwartet, was darauf hinweist, dass das Modell für einen Klassifikationsdatensatz mit mehreren Klassen funktioniert.

  • 13:40:00 In diesem Abschnitt erläutert der Kursleiter, wie das trainierte Klassifikationsmodell mit mehreren Klassen ausgewertet wird, indem er Vorhersagen trifft und diese auswertet. Der Kursleiter erklärt, dass Vorhersagen getroffen werden, nachdem das Modell in den Bewertungsmodus versetzt, die Testdaten bestanden und als Ergebnis Rohprotokolle erhalten wurden. Der nächste Schritt besteht darin, Logits in Vorhersagewahrscheinlichkeiten umzuwandeln, indem Torch.softmax für Logits aufgerufen wird. Anschließend werden Vorhersagelabels durch Aufrufen von „torch.argmax“ für die Vorhersagewahrscheinlichkeiten abgerufen. Der Ausbilder betont, wie wichtig es ist, die Vorhersagen zu visualisieren, indem er sie grafisch darstellt und sie mit den tatsächlichen Daten vergleicht.

  • 13:45:00 In diesem Abschnitt wertet der Kursleiter das Mehrklassen-Klassifikationsmodell visuell aus und untersucht die linearen und nichtlinearen Funktionen, die zum Trennen der Daten verwendet werden. Der Kursleiter erwähnt auch, dass die meisten Daten sowohl lineare als auch nichtlineare Funktionen für die Klassifizierung erfordern, und PyTorch macht es einfach, diese Funktionen zu Modellen hinzuzufügen. Darüber hinaus behandelt der Abschnitt die Bedeutung der Bewertung von Modellen und führt Präzision und Erinnerung als wichtige Metriken ein, wenn es um Klassen mit unterschiedlichen Wertmengen geht.

  • 13:50:00 In diesem Abschnitt erörtert der Kursleiter verschiedene Bewertungsmethoden für die Klassifizierung, einschließlich Genauigkeit, Präzision, Erinnerung, F1-Punktzahl, Konfusionsmatrix und Klassifizierungsbericht. Der Kursleiter erklärt, dass Genauigkeit zwar die Standardmetrik für Klassifizierungsprobleme ist, aber möglicherweise nicht die beste für unausgewogene Datensätze. Bei unausgeglichenen Datensätzen sollten Precision und Recall verwendet werden. Die Präzision wird durch das Verhältnis von richtig positiv zu richtig positiv plus falsch positiv bestimmt, während der Rückruf durch das Verhältnis von richtig positiv zu richtig positiv plus falsch negativ bestimmt wird. Der Ausbilder weist auch auf den Kompromiss zwischen Präzision und Erinnerung hin, bei dem die Erhöhung einer Metrik die andere senken würde. Die Verwendung von Torchmetrics und Scikit-Learn-Bibliotheken für Klassifizierungsmetriken wird ebenfalls diskutiert.

  • 13:55:00 In diesem Abschnitt zeigt der Kursleiter, wie vorgefertigte Metrikfunktionen in PyTorch mithilfe des Torchmetrics-Pakets importiert und verwendet werden. Sie demonstrieren, wie man Torchmetrics installiert, die Genauigkeitsmetrik importiert und damit die Genauigkeit eines Mehrklassenmodells berechnet. Sie warnen jedoch auch davor, dass sich die Metriken bei der Verwendung von Torchmetriken auf demselben Gerät wie die Daten befinden müssen, wobei geräteunabhängiger Code verwendet wird. Der Kursleiter stellt einen Link zum Torchmetrics-Modul und zu außerschulischen Artikeln zur weiteren Erkundung bereit. Sie stellen auch Übungen und Lösungen zum Üben des in den vorherigen Abschnitten behandelten Codes vor.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

PyTorch for Deep Learning & Machine Learning – Vollständiger Kurs (Beschreibung der Teile 15-19)


PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs


Teil 15

  • 14:00:00 In diesem Abschnitt berät der Kursleiter die Zuschauer darüber, wo sie Hilfe für den Computer Vision-Code von PyTorch erhalten können, einschließlich der Verfolgung des Codes, der Verwendung der Doc-String-Funktion von Google Colab, der Suche nach Code auf Stack Overflow oder in der PyTorch-Dokumentation und Stellen von Fragen auf der Registerkarte „Diskussionen“ des PyTorch-Deep-Learning-Repositorys. Der Abschnitt behandelt auch Beispiele für Computer-Vision-Probleme, z. B. binäre oder mehrklassige Klassifizierungsprobleme, bei denen ein maschinelles Lernmodell Muster aus verschiedenen Bildbeispielen lernt, um festzustellen, ob es sich bei einem Bild um ein Steak oder eine Pizza handelt, oder um Bilder in mehrere Kategorien zu klassifizieren .

  • 14:05:00 In diesem Abschnitt diskutiert der Referent verschiedene Anwendungen von Computer Vision unter Verwendung von maschinellem Lernen, wie z. B. Mehrklassenklassifizierung für Bildprobleme, Objekterkennung und Bildsegmentierung. Der Referent liefert ein Beispiel für Nutrify, das maschinelles Lernen nutzt, um bis zu 100 verschiedene Lebensmittel aus einem hochgeladenen Bild zu klassifizieren. Der Redner erörtert auch, wie Tesla Computer Vision nutzt, um die Bewegungen seiner selbstfahrenden Autos mithilfe des dreidimensionalen Vektorraums und des maschinellen Lernens zu planen. Der Referent merkt an, dass Tesla PyTorch verwendet, das ist derselbe Code, der im Kurs gelehrt wird.

  • 14:10:00 In diesem Abschnitt des Videos erläutert der Kursleiter die Verwendung von PyTorch zum Erstellen eines Computer-Vision-Modells für die mehrklassige Bildklassifizierung. Am Beispiel von Nutrify, einer Fotoerkennungstechnologie für Lebensmittel, erläutert der Dozent die typischen Inputs und Outputs für ein Computer-Vision-Problem. Zu den Eingaben gehört ein Tensor, der die Höhe, Breite und Farbkanäle eines Bildes darstellt. Der Kursleiter erwähnt auch, dass möglicherweise bereits vorhandene Algorithmen für gängige Computer-Vision-Probleme vorhanden sind, aber bei Bedarf einer erstellt werden kann. Die gewünschte Ausgabe für das Nutrify-Beispiel sind drei Ausgaben, eine für jede Lebensmittelklasse.

  • 14:15:00 In diesem Abschnitt erklärt das Video, wie maschinelle Lernmodelle zur Bildklassifizierung verwendet werden können, indem PyTorch und Convolutional Neural Networks (CNNs) verwendet werden, um Informationen numerisch darzustellen und das Modell zu trainieren, Muster in den Daten zu erkennen. Das angegebene Beispiel ist die Vorhersage der Lebensmittelarten in einem Bild, wie Sushi, Steak und Pizza, mit der Verwendung von PyTorch zur Codierung der Informationen und CNNs zur Erkennung von Mustern in den Bildern. Das Video betont, dass die Eingabe- und Ausgabeformen je nach zu lösendem Problem variieren und dass CNNs normalerweise die beste Wahl für Bilddaten sind, obwohl andere Modelle verwendet werden können. Schließlich führt das Video ein Problem mit Graustufenbildern von Modeartikeln ein, das verwendet wird, um die gleichen Prinzipien, die in diesem Abschnitt erlernt wurden, weiter zu demonstrieren.

  • 14:20:00 In diesem Abschnitt erörtert der Kursleiter die Darstellung von Bilddaten in PyTorch und anderen Deep-Learning-Bibliotheken. Diese Bibliotheken erwarten oft Farbkanäle zuletzt, aber PyTorch stellt Bilddaten standardmäßig zuerst mit Farbkanälen dar. Das Video erklärt, wie wichtig es ist, die Eingabe- und Ausgabeformen eines Modells für ein bestimmtes Problem auszurichten. Der Kursleiter gibt einen Überblick über den PyTorch-Workflow zum Erstellen von Modellen, einschließlich der Bereitstellung von Daten mithilfe von Transformationen und Datenladeprogrammen, dem Erstellen oder Auswählen eines vortrainierten Modells, dem Auswählen eines Optimierers und einer Verlustfunktion, dem Bewerten des Modells mithilfe von Metriken und dem Experimentieren zur Verbesserung das Model. Im nächsten Abschnitt wird die Architektur eines Convolutional Neural Network (CNN) erörtert.

  • 14:25:00 In diesem Abschnitt erläutert der Kursleiter die Architektur eines typischen Convolutional Neural Network (CNN). Die Eingabedaten durchlaufen verschiedene Ebenen, einschließlich Faltungs-, Aktivierungs- und Pooling-Ebenen, bis sie in eine Ausgabeform konvertiert werden, die in Klassennamen konvertiert werden kann. Der Kursleiter betont, dass es fast unbegrenzte Möglichkeiten gibt, ein CNN zu stapeln, und demonstriert eine Möglichkeit, dies durch Folien zu tun. Der beste Weg, um zu lernen, ist jedoch, es zu programmieren, und der Kursleiter leitet die Benutzer zu einem Google Colab-Notebook, wo sie üben können, ein CNN mit PyTorch und der TorchVision-Bibliothek zu erstellen. Der Kursleiter stellt außerdem zusätzliche Ressourcen bereit, darunter ein Referenznotizbuch und einen PyTorch-Abschnitt zum maschinellen Sehen in LearnPyTorch.io.

  • 14:30:00 In diesem Abschnitt des Videos stellt der Kursleiter die verschiedenen PyTorch-Bibliotheken für verschiedene Bereiche vor und hebt die Stärke von PyTorch im Bereich Computer Vision hervor. Die Hauptbibliothek für Computer Vision ist Torch Vision, die Datensätze, vortrainierte Modelle für Computer Vision und Transformationen zur Manipulation von Vision-Daten in Zahlen enthält, die von Modellen für maschinelles Lernen verwendet werden können. Der Kursleiter demonstriert das Importieren von PyTorch, NN und Torch Vision und geht durch das Transformationsmodul, das allgemeine Bildtransformationen enthält und gemeinsam mit Compose trainiert werden kann. Die to_tensor-Funktion wird als Haupttransformation zum Umwandeln von Bilddaten in ein Tensorformat eingeführt.

  • 14:35:00 In diesem Abschnitt des Kurses „PyTorch for Deep Learning & Machine Learning“ behandelt der Kursleiter die grundlegenden Computer-Vision-Bibliotheken in PyTorch, einschließlich TorchVision, Modulen, die von TorchVision abstammen, und TorchUtils.data.dataset, dem Basisdatensatz Klasse für PyTorch. Der Kursleiter erörtert auch die Bedeutung der Verwendung von Matplotlib für die Visualisierung und die Notwendigkeit, Bilder in Tensoren umzuwandeln, um sie mit Modellen zu verwenden. Der Kursleiter stellt dann den FashionMNIST-Datensatz vor, der eine Übernahme der ursprünglichen MNIST-Datenbank ist und Graustufenbilder von Kleidungsstücken enthält. Dieser Datensatz wird verwendet, um Computer-Vision-Techniken zu demonstrieren. Der Kursleiter erklärt, dass ernsthafte Forscher des maschinellen Lernens MNIST zwar als überstrapaziert und nicht repräsentativ für moderne Computer-Vision-Aufgaben betrachten, FashionMNIST jedoch ein nützlicher Datensatz für den Einstieg ist.

  • 14:40:00 In diesem Abschnitt erläutert der Kursleiter, wie Datensätze aus der TorchVision-Bibliothek heruntergeladen und verwendet werden. Sie erwähnen verschiedene Datensätze zur Bildklassifizierung wie Caltech101, CIFAR-100 und CIFAR-10 und wie sie mit dem Modul „torchvision.datasets“ heruntergeladen werden können. Anschließend demonstriert der Kursleiter, wie der Fashion-MNIST-Datensatz heruntergeladen und verwendet wird, und erklärt die verschiedenen Parameter und Transformationen, die auf den Datensatz angewendet werden können. Sie bieten auch Beispielcode zum Herunterladen der Trainings- und Testdatensätze.

  • 14:45:00 In diesem Abschnitt erklärt der Kursleiter, wie man die PyTorch-Torchvision.datasets verwendet, um beispielhafte Computer-Vision-Datasets herunterzuladen, insbesondere das FashionMNIST-Dataset. Wir können die Daten in einer Variablen namens "data" speichern und die Bilddaten mit Torchvision.transforms in Tensoren umwandeln. Der Kursleiter zeigt auch, wie man die Länge der Trainings- und Testdatensätze überprüft, das Bild und die Beschriftung eines Trainingsbeispiels anzeigt und durch die Verwendung von Attributen wie „.classes“ und „.class_to_idx“ weitere Informationen zu den Klassennamen erhält. Schließlich erklären sie, dass ein Etikett keine Form hat, weil es nur eine ganze Zahl ist.

  • 14:50:00 In diesem Abschnitt erörtert der Kursleiter die Eingabe- und Ausgabeformen des Fashion MNIST-Datensatzes, der aus Graustufenbildern verschiedener Arten von Kleidung besteht. Die Eingabeform der Bilder ist im NCHW-Format, wobei die Stapelgröße auf „keine“ und die Ausgabeform auf 10 festgelegt ist. Um die Daten besser zu verstehen, verwendet der Kursleiter Matplotlib, um ein Bild und seine Form zu visualisieren, trifft jedoch auf eine Fehler, da das Datenformat nicht dem erwarteten Format entspricht. In diesem Abschnitt wird betont, wie wichtig es ist, Eingabe- und Ausgabeformen und -formatierungen bei der Arbeit mit Modellen für maschinelles Lernen zu verstehen.

  • 14:55:00 In diesem Abschnitt untersucht das Video, wie Bilddaten mit PyTorch und Matplotlib gezeichnet und visualisiert werden. Der Kursleiter demonstriert, wie man ein einzelnes Bild plottet und zusätzliche Dimensionen mit image.squeeze() entfernt. Als nächstes zeichnen sie einen Satz von 16 zufälligen Bildern aus dem Datensatz mit einem festen Zufallsstartwert und der Subplot-Funktion von Matplotlib. Der Kursleiter zeigt auch, wie Sie die cmap-Eigenschaft oder den cmap-Parameter verwenden, um die Farbabbildung des Diagramms in Graustufen zu ändern. Anschließend besprechen sie die Bedeutung der visuellen Untersuchung eines Datensatzes, um die Daten besser zu verstehen und potenzielle Probleme zu identifizieren, z. B. Ähnlichkeiten zwischen Pullovern und Hemden im Datensatz.

Teil 16

  • 15:00:00 In diesem Abschnitt erklärt der Kursleiter, wie wichtig es ist, Daten für ein Computer-Vision-Modell vorzubereiten, und wie dies mit PyTorch-Datensätzen und Datenladern erfolgt. Er erörtert auch den potenziellen Bedarf an Nichtlinearität bei der Modellierung der 60.000 Bilder von Kleidung, die in 10 verschiedene Klassen eingeteilt werden sollen, und wie die Aufteilung des Datensatzes in kleinere Chargen die Recheneffizienz verbessern kann. Das Ziel dieser Vorbereitung besteht darin, eine Python-Iterable zu erstellen, die vom Modell verwendet werden kann, um Muster in den Daten zu identifizieren.

  • 15:05:00 In diesem Abschnitt erklärt der Kursleiter das Konzept von Mini-Batches und warum es häufig im Deep Learning verwendet wird, beginnend mit der Aufteilung eines Datensatzes von 60.000 Bildern in Batches von 32. Die zwei Hauptgründe für die Verwendung von Mini-Batches sind: Machen Sie das neuronale Netzwerk recheneffizienter, indem Sie GPU-Speicherbeschränkungen vermeiden, und geben Sie dem Netzwerk mehr Möglichkeiten, seine Gradienten pro Epoche zu aktualisieren. Die Daten werden mit dem Data Loader von Torch.utils.data gestapelt, indem ein Datensatz übergeben, die Stapelgröße definiert und shuffle auf true gesetzt wird, um zu vermeiden, dass das Netzwerk die Reihenfolge der Daten speichert. Der Kursleiter stellt Code zum Erstellen von Trainings- und Testdatenladern bereit, die in der Schulungsschleife verwendet werden.

  • 15:10:00 In diesem Abschnitt wird die Bedeutung von Mini-Batches bei Deep-Learning-Problemen betont und der Prozess zum Erstellen von Zug- und Testdatenladeprogrammen mit PyTorch erläutert. Der Hyperparameter für die Stapelgröße wird auf 32 festgelegt, und die Datensätze werden in Iterables umgewandelt. Die Zug- und Testdatensätze werden mit DataLoader geladen, wobei die Stapelgröße für die Zugdaten und die Testdaten auf 32 festgelegt ist und Shuffle für Zugdaten auf True und für Testdaten auf False festgelegt ist. Die Attribute des Zugdatenladers, wie z. B. Stapelgröße und Datensatz, werden untersucht. Die Länge sowohl des Zug- als auch des Testdatenladers wird gedruckt, um die Anzahl der Stapel in jedem zu bestimmen.

  • 15:15:00 In diesem Abschnitt erläutert der Kursleiter, wie Bildstapel mit PyTorch visualisiert werden. Der Transkriptauszug zeigt, wie die Länge des Zugdatenladers basierend auf der Stapelgröße und der Anzahl der Trainingsbeispiele bestimmt wird. Dann zeigt der Kursleiter, wie ein einzelnes Bild aus einem Stapel mithilfe von Zufälligkeit visualisiert wird, und überprüft die Bildgröße und das Etikett, die mit dieser Probe verknüpft sind. Der Kursleiter betont, dass diese Eingabe- und Ausgabeformen je nach spezifischem Problem variieren, aber die grundlegende Prämisse bleibt gleich – Daten werden in Stapel umgewandelt, um sie an ein Modell weiterzugeben.

  • 15:20:00 In diesem Abschnitt erklärt der Videolehrer, wie man Bilder in einem Stapel visualisiert und die Daten in Datenlader umwandelt. Sie haben auch das Konzept eines Baseline-Modells eingeführt, das als Ausgangspunkt verwendet wird und ein einfaches Modell ist, das später durch Experimentieren verbessert werden kann. Der Kursleiter führt dann eine neue Ebene „Flatten“ ein, die einen kontinuierlichen Bereich von Dims in einen Tensor für die Verwendung mit sequentiellen glättet, und zeigt, wie er als eigenständiges Modell verwendet wird.

  • 15:25:00 In diesem Abschnitt erfahren wir etwas über das Abflachen und wie es verwendet wird, um mehrdimensionale Daten in einen einzelnen Vektor umzuwandeln. Nachdem wir die Formen vor und nach dem Abflachen gedruckt haben, sehen wir, dass die Ausgabe jetzt ein eindimensionaler Vektor mit einer Länge von 1784 ist. Wir sehen auch, dass dieser Prozess der Codierung von Informationen in Teslas Kameras zur Verwendung in Deep-Learning-Modellen ähnelt. Wir sehen dann, wie die abgeflachten Daten in der linearen Ebene unseres PyTorch-Modells verwendet werden. Das Modell wird mit nn.Sequential definiert und umfasst eine Flatten-Schicht und zwei lineare Schichten. Die Eingabe- und Ausgabeformen sind definiert, und wir sehen, dass die Out-Features der ersten linearen Ebene mit den In-Features der zweiten linearen Ebene übereinstimmen.

  • 15:30:00 In diesem Abschnitt erklärt der Kursleiter, wie ein einfaches neuronales Netzwerkmodell mit PyTorch erstellt wird. Das Modell besteht aus einer flachen Schicht, gefolgt von zwei linearen Schichten ohne Nichtlinearitäten. Die Vorwärtsmethode des Modells wird definiert, die eine Eingabe nimmt, sie durch die Abflachungsschicht und dann durch die beiden linearen Schichten leitet und die Ausgabe zurückgibt. Der Ausbilder richtet dann eine Instanz des Modells ein und führt einen Dummy-Forward-Pass durch, um sicherzustellen, dass das Modell wie erwartet funktioniert. Darüber hinaus erklären sie auch die Eingabe- und Ausgabeform jeder Schicht und wie sie angeordnet sind, um die gewünschte Ausgabeform zu erhalten. Schließlich demonstrieren sie die Bedeutung der Verwendung der Abflachungsebene und warum es erforderlich ist, die Ausgabe der vorherigen Ebene in einem einzigen Vektor zu kombinieren.

  • 15:35:00 In diesem Abschnitt wiederholt der Kursleiter das vorherige Video, in dem er das Modell Null für ein Computervisionsproblem erstellt hat, und wiederholt, wie wichtig es ist, sicherzustellen, dass Eingabe- und Ausgabeformen dort ausgerichtet sind, wo sie sein müssen. Sie erklären auch, dass die Gewichtungs- und Bias-Matrizen verschiedene Merkmale in den Bildern darstellen, die das Modell durch Deep Learning und maschinelles Lernen lernen wird. Im weiteren Verlauf diskutieren sie die Auswahl einer Verlustfunktion, eines Optimierers und einer Bewertungsmetrik für das Modell, wobei sie den Cross-Entropie-Verlust, den stochastischen Gradientenabstiegsoptimierer bzw. die Genauigkeitsbewertungsmetrik auswählen. Sie bieten auch einen Verweis auf eine Online-PyTorch-Ressource für Klassifizierungsauswertungsmetriken.

  • 15:40:00 In diesem Abschnitt erläutert der Videolehrer das Konzept der Verwendung von Hilfsfunktionen in Python-Projekten für maschinelles Lernen. Er stellt einen Beispielcode zum Importieren eines Python-Skripts bereit, das allgemeine Funktionen enthält, einschließlich einer Hilfsfunktion namens Genauigkeit. Die Genauigkeitsfunktion berechnet die Genauigkeitsmetrik, und der Kursleiter demonstriert, dass sie erfolgreich importiert werden kann, indem er nach einer Dokumentzeichenfolge sucht. Er erklärt auch, dass die Verwendung von Hilfsfunktionen in Python-Projekten viel Zeit und Mühe sparen kann, insbesondere wenn es um allgemeine Funktionalitäten geht, die nicht jedes Mal neu geschrieben werden müssen. Schließlich richtet er eine Verlustfunktion gleich nn Punktkreuz-Entropieverlust und einen Optimierer ein, um das Modell zu trainieren.

  • 15:45:00 In diesem Abschnitt richtet der Kursleiter den Optimierer für den stochastischen Gradientenabstieg ein und legt eine relativ hohe Lernrate von 0,1 für den einfachen Datensatz mit 28x28-Bildern fest. Anschließend besprechen sie die Bedeutung der Verfolgung der Leistung eines Modells sowie seiner Laufzeit, da es häufig einen Kompromiss zwischen beiden gibt. Sie fahren fort, um zu demonstrieren, wie man eine Funktion erstellt, um das Training des Modells mit dem time-Modul in Python zu timen und das Torch.device zu übergeben, um zu vergleichen, wie schnell das Modell auf verschiedenen Geräten läuft.

  • 15:50:00 In diesem Abschnitt erläutert der Ausbilder die Bedeutung von Timing-Funktionen für die Messung der Trainingsdauer eines Modells. Er demonstriert, wie man mit dem Python-Modul „timer“ einen Timer erstellt und wie man ihn in den Trainingsprozess integriert. Der Kursleiter erklärt auch, wie die Wiederverbindungsfunktion von Google Colab verwendet wird, und erinnert an die Verwendung von Datenladeprogrammen, um Daten für Schulungszwecke in Stapel aufzuteilen. Anschließend skizziert er die Schritte, die zum Erstellen einer Trainingsschleife und zum Trainieren eines Modells mit Datenstapeln erforderlich sind, und betont die Notwendigkeit, Epochen und Stapel zu durchlaufen, Trainingsschritte durchzuführen und den Zugverlust pro Stapel zu berechnen. Abschließend erwähnt er, dass das Modell im selben Schritt wie das Training evaluiert wird.

  • 15:55:00 In diesem Abschnitt beginnt der Ausbilder die Testphase, indem er TQDM für einen Fortschrittsbalken importiert, der anzeigt, wie viele Epochen die Trainingsschleife durchlaufen hat. TQDM ist ein Python-Fortschrittsbalken mit geringem Overhead und Open-Source-Software. Da TQDM so beliebt ist, ist es in Google CoLab integriert. Der Ausbilder legt den Seed fest und startet den Timer, bevor er die Anzahl der Epochen auf drei einstellt, um die Trainingszeit zu verkürzen und mehr Experimente durchzuführen. Sie erstellen eine Trainings- und Testschleife, instanziieren den Zugverlust und berechnen den Trainingsverlust pro Epoche. Die Daten werden in Batches zusammengefasst, und es wird eine Schleife hinzugefügt, um die Trainingsbatchdaten zu durchlaufen.

Teil 17

  • 16:00:00 In diesem Abschnitt richtet der Ausbilder die Trainingsschleife für das neuronale Netz ein. Das Modell wird in den Trainingsmodus versetzt und der Vorwärtsdurchlauf wird durchgeführt, um den Verlust zu berechnen. Die Trainingsverlustwerte werden bei jedem Batch akkumuliert und der Optimierer wird einmal pro Batch statt einmal pro Epoche aktualisiert. Der Instruktor druckt auch die betrachteten Proben und den durchschnittlichen Trainingsverlust pro Batch pro Epoche zu Überwachungszwecken aus. Diese Schleife wird fortgesetzt, bis alle Stapel im Zugdatenlader verarbeitet wurden.

  • 16:05:00 In diesem Abschnitt geht der Kursleiter durch den Code für die Testschleife in PyTorch, die das Einrichten einer Testverlustvariablen und die Verwendung eines Vorwärtsdurchgangs zum Auswerten der anhand der Trainingsdaten erlernten Muster umfasst. Die Genauigkeit für Tests wird auch mithilfe der heruntergeladenen Genauigkeitsfunktion berechnet, und die Testverlust- und Testgenauigkeitswerte werden pro Batch akkumuliert und dann durch die Anzahl der Batches dividiert, um den Durchschnitt pro Epoche zu ermitteln. Diese Werte werden dann ausgedruckt, um den Fortschritt des Modells zu verfolgen.

  • 16:10:00 In diesem Abschnitt erläutert der Ausbilder die letzten Schritte zum Einrichten der Trainingsschleife, die das Drucken des Zugverlusts, des Testverlusts und der Testgenauigkeit sowie das Berechnen der Trainingszeit umfasst. Sie bieten auch Tipps zur Fehlerbehebung für potenzielle Fehler, die beim Codieren in PyTorch auftreten können. Abschließend demonstrieren sie, wie der Code ausgeführt wird, und zeigen den Fortschrittsbalken der Trainingsschleife an.

  • 16:15:00 In diesem Abschnitt diskutiert der Ausbilder die Ergebnisse der Trainingsschleife und stellt die Idee der Grundliniengenauigkeit und Trainingszeit vor. Er betont, dass die Zahlen aufgrund der inhärenten Zufälligkeit des maschinellen Lernens und der verwendeten Hardware leicht variieren können. Anschließend wertet der Kursleiter das Modell aus, indem er eine Funktion erstellt, um mehrere Modelle zu erstellen und die Ergebnisse später zu vergleichen. Die Funktion nimmt ein Modell, einen Datenlader, eine Verlustfunktion und eine Genauigkeitsfunktion auf und gibt ein Wörterbuch zurück, das die Ergebnisse der Modellvorhersage auf dem Datenlader enthält. Er erklärt, dass die Funktion der Testschleife ähnelt, aber für die Verwendung mit mehreren Modellen und Datenladern funktionalisiert ist. Der Kursleiter erwähnt auch, dass in den folgenden Abschnitten Vorhersagen getroffen und das Modell auf der GPU und dem Convolutional Neural Network bewertet werden.

  • 16:20:00 In diesem Abschnitt zeigt der Videoersteller, wie man die Verlust- und Genauigkeitsfunktion verallgemeinern kann, sodass sie mit jedem Modell und Datenlader verwendet werden kann. Sie demonstrieren, wie die Verlust- und Genauigkeitswerte pro Charge akkumuliert, skaliert werden, um den durchschnittlichen Verlust/die durchschnittliche Genauigkeit pro Charge zu ermitteln, und die Ergebnisse in einem Wörterbuchformat zurückgeben. Sie zeigen auch, wie Sie eine neue Funktion erstellen, um die Ergebnisse des Modells für das Testdataset zu berechnen, indem Sie die zuvor definierten Funktionen verwenden. Schließlich verwenden sie einen Fortschrittsbalken, um die Leistung des Modells auf dem Testdatensatz zu verfolgen.

  • 16:25:00 In diesem Abschnitt des Kurses „PyTorch for Deep Learning and Machine Learning“ erläutert der Kursleiter, wie geräteunabhängiger Code eingerichtet wird, um Modelle sowohl auf CPUs als auch auf GPUs zu trainieren. Sie demonstrieren die Überprüfung der Verfügbarkeit von CUDA und den Wechsel zur GPU, um deren Verarbeitungsleistung zu nutzen. Der Kursleiter empfiehlt außerdem, mit kleineren Datensätzen und Modellen zu beginnen, bevor Sie die Komplexität und Größe erhöhen. Schließlich schlagen sie vor, ein neues Modell für den Datensatz zu erstellen und seine Leistung mit und ohne Nichtlinearitäten zu testen, während er auf der GPU läuft.

  • 16:30:00 In diesem Abschnitt führt der Kursleiter in das Konzept der Nichtlinearität in neuronalen Netzen ein und ermutigt die Zuschauer, mit der Erstellung eines Modells mit nichtlinearen Funktionen zu experimentieren. Die Vorteile der Nichtlinearität für die Modellierung nichtlinearer Daten werden erörtert, und der Kursleiter erklärt, wie ein neuronales Netzwerk mit sowohl linearen als auch nichtlinearen Schichten mit PyTorch implementiert wird. Sie gehen Schritt für Schritt durch den Code und betonen die Bedeutung des Experimentierens, um das beste Modell für einen bestimmten Datensatz zu finden.

  • 16:35:00 In diesem Abschnitt erörtert der Kursleiter das Anpassen neuronaler Netzwerke mit linearen und nichtlinearen Funktionen und demonstriert das Hinzufügen von zwei ReLU-Aktivierungsfunktionen zu einem zuvor definierten Netzwerk. Die Weiterleitungsmethode wird dann außer Kraft gesetzt, damit die Eingabe den Schichtstapel passieren kann, und das Modell wird auf dem Gerät instanziiert. Das Video fährt dann mit der Erstellung einer Verlustfunktion, eines Optimierers und von Bewertungsmetriken für das neue Modell fort, das nichtlineare Schichten hinzugefügt hat, und betont die Bedeutung der Durchführung von Experimenten, um zu verstehen, wie verschiedene Funktionen neuronale Netze beeinflussen können.

  • 16:40:00 In diesem Abschnitt erörtert der Referent das Erstellen von Hilfsfunktionen und das Funktionieren von Trainings- und Bewertungsschleifen in PyTorch. Sie erwähnen das Importieren der Genauigkeitsfunktion und das Einrichten einer Verlustfunktion sowie den Optimierer. Der nächste Schritt besteht darin, Trainings- und Bewertungsschleifen als Funktionen zu bauen, damit sie ohne Fehlerrisiko wiederholt aufgerufen werden können. Der Sprecher geht durch den Prozess der Erstellung einer Zugschrittfunktion, die ein Modell, einen Datenlader, eine Verlustfunktion, einen Optimierer und optional eine Genauigkeitsfunktion und ein Zielgerät als Eingaben erfordert. Die Train-Step-Funktion durchläuft einen Datenlader, führt einen Vorwärtsdurchlauf durch, berechnet den Verlust, führt eine Backpropagation durch und aktualisiert die Modellparameter mit dem Optimierer.

  • 16:45:00 In diesem Abschnitt erklärt der Moderator, wie ein Trainingsschritt in PyTorch durchgeführt wird. Sie beginnen mit der Definition der Eingaben der Funktion, einschließlich eines Modells, eines Datenladers, einer Verlustfunktion, eines Optimierers und eines Geräts. Dann durchlaufen sie jede Zeile der Funktion, beginnend mit einer Schleife durch den Datenlader und legen die Daten auf dem Zielgerät ab. Sie fügen auch eine Genauigkeitsfunktion hinzu, um die Genauigkeitspunktzahl pro Charge zu akkumulieren. Schließlich berechnen sie am Ende des Trainingsschritts den durchschnittlichen Verlust und die Genauigkeit pro Charge und drucken die Ergebnisse aus. Insgesamt bietet dieser Abschnitt eine klare und prägnante Erklärung zur Verwendung von PyTorch für Deep Learning und maschinelles Lernen.

  • 16:50:00 In diesem Abschnitt funktionalisiert der Trainer die Testschleife, indem er eine Testschrittfunktion erstellt, die ein Modell, einen Datenlader, eine Verlustfunktion, eine Genauigkeitsfunktion und ein Gerät als Eingaben verwendet. Der Trainer demonstriert, wie man einen Testverlust und eine Genauigkeit einrichtet und das Modell in den Evaluierungsmodus versetzt, bevor er den Datenlader durchläuft und einen Vorwärtsdurchgang durchführt. Der Trainer erklärt auch, wie wichtig es ist, den Kontextmanager des Inferenzmodus zu verwenden und geräteunabhängigen Code zu erstellen. Der Testpred wird berechnet, indem X übergeben wird, und der Testverlust und die Genauigkeit werden pro Batch unter Verwendung der entsprechenden Funktionen akkumuliert. Schließlich wandelt der Trainer die ausgegebenen Logits in Vorhersagelabels um, indem er argmax verwendet.

  • 16:55:00 In diesem Abschnitt des vollständigen PyTorch-Kurses demonstriert der Kursleiter, wie eine Testschrittfunktion und eine Optimierungs- und Bewertungsschleife mithilfe der Trainingsschritt- und Testschrittfunktionen erstellt werden. Die neuen Funktionen werden verwendet, um ein Modell zu trainieren und seine Genauigkeit für drei Epochen zu bewerten. Der Kursleiter zeigt auch, wie man die Zeit misst, die das Modell benötigt, um auf der GPU im Vergleich zur CPU ausgeführt zu werden.

Teil 18

  • 17:00:00 In diesem Abschnitt führt uns der Kursleiter durch die Einrichtung des Testschritts für unser Deep-Learning-Modell und die Erstellung eines Timers zur Messung der Trainingszeit. Der Code ist einfach und effizient, da er so konzipiert ist, dass er in zukünftigen Projekten wiederverwendet werden kann. Darüber hinaus führen wir das zweite Modellierungsexperiment durch und vergleichen die Ergebnisse mit dem ersten Modell, das nichtlineare Schichten verwendet. Obwohl das zweite Modell in Bezug auf die Trainingszeit etwas schneller war, lieferte es keine besseren Ergebnisse als das vorherige, was bedeutet, dass Ihre Zahlen möglicherweise nicht mit denen des Ausbilders übereinstimmen, aber in der Richtung ziemlich ähnlich sein sollten. Abschließend erklärt der Kursleiter, dass unser Modell nicht zu komplex und unser Datensatz nicht sehr groß ist, was erklären könnte, warum die CPU- und GPU-Trainingszeiten nicht dramatisch unterschiedlich sind.

  • 17:05:00 In diesem Abschnitt erklärt der Ausbilder, dass ein Modell auf einer CPU manchmal schneller trainiert als auf einer GPU. Die beiden Hauptgründe dafür sind, dass der Overhead für das Kopieren von Daten/Modellen auf und von der GPU die Rechenvorteile der GPU überwiegt und dass die verwendete Hardware eine bessere CPU in Bezug auf die Rechenleistung als die GPU hat. Der Kursleiter stellt jedoch fest, dass dies weniger häufig vorkommt und dass eine moderne GPU im Allgemeinen schneller Deep-Learning-Algorithmen berechnet als eine allgemeine CPU. Als Nächstes teilt der Kursleiter eine Ressource, in der es unter anderem darum geht, wie Deep Learning beschleunigt werden kann, indem Bandbreite und Overhead-Kosten optimiert werden. Schließlich erstellt der Ausbilder ein Ergebniswörterbuch für Modell eins, um die Modellierungsergebnisse später zu vergleichen.

  • 17:10:00 In diesem Abschnitt erörtert der Kursleiter einen häufigen Fehler, der in Deep-Learning-Modellen auftreten kann, was Gerätekonflikte zwischen Daten und Modell betrifft. Er erklärt, dass der Fehler aufgetreten ist, weil sich die Daten und das Modell auf unterschiedlichen Geräten befanden, und schlägt eine Lösung vor, indem er den Code geräteunabhängig macht. Er warnt auch davor, dass es immer besser ist, geräteunabhängigen Code zu erstellen. Schließlich stellt der Dozent das nächste Modellierungsexperiment vor, bei dem es um den Aufbau eines Convolutional Neural Network (CNN) geht, und erklärt die Architektur eines typischen CNN.

  • 17:15:00 In diesem Abschnitt erklärt der Kursleiter die verschiedenen Arten von Schichten in einem einfachen Convolutional Neural Network (CNN). Das CNN beginnt mit einer Eingabe, die für ein Bild zu einem Tensor in Rot, Grün und Blau vorverarbeitet wird. Die Eingabe durchläuft dann eine Kombination aus Faltungsschichten, Relu-Schichten und Pooling-Schichten. Dem Deep-Learning-Modell können weitere Schichten hinzugefügt werden, um mehr Muster in den Daten zu finden, wobei jede Schicht eine andere Kombination mathematischer Operationen mit den Daten durchführt. Der Kursleiter demonstriert das CNN mithilfe der CNN-Erklärer-Website, auf der die Eingabe verschiedener Bilder verschiedene Ebenen durchläuft, wobei die endgültige Ausgabe die Klasse mit dem höchsten Wert ist.

  • 17:20:00 In diesem Abschnitt erklärt der Kursleiter, wie Convolutional Neural Networks funktionieren und die Schönheit von Deep Learning. Jede Schicht des Netzwerks ist so konzipiert, dass sie verschiedene Merkmale der Daten lernt, wobei das Netzwerk selbst den besten Weg findet, diese Merkmale zu lernen. Der Ausbilder stellt dann die CNN-Erklärer-Website als Ressource vor, um mehr über Convolutional Neural Networks zu erfahren, ermutigt aber auch
    Lernende, sich an der Replikation des neuronalen Netzwerks im PyTorch-Code zu beteiligen. Der Kursleiter fährt dann damit fort, ein winziges VGG Convolutional Neural Network in PyTorch zu bauen und erklärt, dass Autoren von Forschungsarbeiten neue Modellarchitekturen benennen können, um es für zukünftige Referenzen einfacher zu machen. Der Code wird mit Eingabeform, verborgenen Einheiten und Ausgabeform initialisiert, die typische Parameter beim Erstellen eines PyTorch-Modells sind.

  • 17:25:00 In diesem Abschnitt erklärt der Kursleiter, wie ein neuronales Netzwerk mithilfe von Blöcken in PyTorch erstellt wird, die oft als Faltungsblöcke bezeichnet werden. Diese Blöcke bestehen aus mehreren Schichten, und eine Gesamtarchitektur besteht aus mehreren Blöcken. Der Kursleiter zeigt, wie Faltungsblöcke erstellt werden, indem er zwei Beispiele für Ebenen mit Hyperparametern wie Eingangs- und Ausgangskanälen, Kernelgröße, Stride und Padding schreibt. Der Kursleiter bietet den Lernenden auch interaktive Ressourcen, um die Grundlagen von Hyperparametern zu verstehen, und ermutigt sie, diese durchzugehen.

  • 17:30:00 In diesem Abschnitt geht der Kursleiter durch den Code zum Erstellen eines Deep-Learning-Modells mit PyTorch, wobei er sich speziell auf die Faltungsblockschichten konzentriert. Das Modell nimmt 2D-Bilddaten auf und die Schichten werden verwendet, um eine komprimierte Darstellung der Eingabedaten zu lernen, wobei Max Pooling verwendet wird, um den Maximalwert der Eingabedaten zu nehmen. Der Code wird in zwei Blöcke zerlegt, und dann wird eine Ausgabeschicht hinzugefügt. Die Eingaben der letzten Schicht werden abgeflacht, bevor sie durch die letzte lineare Schicht geleitet werden, um die endgültige Ausgabe zu erzeugen.

  • 17:35:00 In diesem Abschnitt erstellt der Kursleiter die Klassifikatorschicht für ein Convolutional Neural Network (CNN) namens Tiny VGG, das zwei Schichten hat, die als Merkmalsextrahierer fungieren, und eine letzte Schicht, die diese Merkmale in Zielklassen klassifiziert. Der Kursleiter codiert die Klassifikatorebene mit sequenziell und übergibt eine Abflachungsebene, um die Ausgabe der beiden vorherigen Ebenen zu einem einzigen Merkmalsvektor abzuflachen. Der Feature-Vektor wird dann an einen nn.linear-Layer übergeben, der in-Features basierend auf der Anzahl der verborgenen Einheiten und out-Features basierend auf der Länge der Klassen berechnet. Schließlich richtet der Ausbilder die Vorwärtsmethode ein und druckt die X-Punktform aus, um die Formänderungen jeder Schicht zu verfolgen. Der Kursleiter erstellt die Eingabeform für das CNN-Modell, das nur einen Farbkanal für Schwarz-Weiß-Bilder hat, legt den Wert der verborgenen Einheiten für jede Ebene fest und fertigt die Instanziierung des Modells an.

  • 17:40:00 In diesem Abschnitt des Videos geht der Kursleiter den Code durch, den er im vorherigen Abschnitt geschrieben hat, um mit PyTorch ein Convolutional Neural Network zu erstellen. Sie identifizieren und korrigieren einige Tippfehler im Code und erklären, dass die maxpool2d-Schicht keine lernbaren Parameter hat. Dann stellen sie die conv2d-Schicht vor und erklären, dass ihr Gewichtungstensor und ihr Bias-Wert die Eingabe manipulieren, um die Ausgabe zu erzeugen. Sie zeigen, wie die erste Ebene der CNN-Erklärer-Website mithilfe einer Dummy-Eingabe in PyTorch reproduziert werden kann, und bieten einen Link zur PyTorch-Dokumentation zum Weiterlesen. Sie demonstrieren auch, wie Sie zuerst Stapelbilder im PyTorch-Stil mit Farbkanälen erstellen.

  • 17:45:00 In diesem Abschnitt untersucht das Video-Tutorial die Zusammensetzung eines PyTorch-Modells und wie Faltungen in der Praxis funktionieren. Der Kursleiter erklärt, wie das Modell, das aus Zufallszahlen besteht, diese Ebenen anpasst, um die Daten mithilfe von comp2d-Ebenen am besten darzustellen. Nachdem einige zufällige Daten durch eine dieser Schichten geleitet wurden, taucht das Tutorial in die Kernelgröße ein und wie sie die von der Faltung durchgeführte Operation bestimmt. Der Kursleiter erläutert den Zweck einer Faltungsschicht, die sicherstellen soll, dass dieser Kernel in der Lage ist, die Operation korrekt auszuführen, um die richtige Ausgabe bereitzustellen.

  • 17:50:00 In diesem Abschnitt erläutert der Kursleiter die Auswirkungen der Änderung der Stride- und Padding-Werte in einer Faltungsebene in PyTorch. Ein Schrittwert von 1 bedeutet, dass die Faltung jeweils über ein Pixel springt, während ein Schrittwert von 2 jeweils über zwei Pixel springt, was zu einer Verringerung der Ausgabegröße führt. In der Zwischenzeit ermöglicht das Hinzufügen von Padding an den Rändern des Bildes dem Kernel, mit Bildinformationen an den Rändern zu arbeiten. Der Kursleiter weist auch darauf hin, dass es üblich ist, vorhandene Werte zu kopieren und nach Bedarf anzupassen, wenn er sich nicht sicher ist, welche Werte für die verschiedenen Parameter eingestellt werden sollen. Der Abschnitt schließt mit einer Demonstration, wie Sie einem Testbild eine Batch-Dimension hinzufügen und es durch eine Faltungsebene in PyTorch leiten.

  • 17:55:00 In diesem Abschnitt behandelt das Video die Convolutional- und Max-Pooling-Layer in PyTorch für Deep Learning und maschinelles Lernen. Das Video zeigt, wie Sie mit PyTorch Faltungsebenen erstellen, indem Sie ein Testbild durch eine Faltungsebene leiten, um eine Ausgabe zu erzeugen. Durch das Spielen mit den Werten Kernelgröße, Stride und Padding können Benutzer beobachten, wie sich die Ausgabegröße ändert. Das Video behandelt auch die Max-Pooling-Schicht und zeigt, wie Sie eine Beispiel-Max-Pooling-Schicht mit einer Kernelgröße von zwei erstellen.

Teil 19

  • 18:00:00 In diesem Abschnitt demonstriert der Kursleiter, wie Daten in PyTorch durch eine Faltungsschicht und eine Max-Pool-Schicht geleitet werden. Sie beginnen damit, das Testbild zuerst durch die Conv-Schicht zu führen und dann die Form auszudrucken. Anschließend leiten sie die Ausgabe der Conv-Schicht durch die Max-Pool-Schicht und drucken die resultierende Form erneut aus. Der Kursleiter erklärt, dass die Max-Pool-Schicht das Maximum eines bestimmten Bereichs des inneren Tensors nimmt und die Ausgabegröße der Faltungsschicht reduziert. Sie zeigen auch, wie sich die Formen ändern, wenn die Werte der Ebenen und Parameter geändert werden.

  • 18:05:00 In diesem Abschnitt erläutert der Kursleiter das Konzept von Max Pooling in Convolutional Neural Networks (CNNs). Das Ziel besteht darin, die Eingabedaten in einen kleineren Merkmalsvektor zu komprimieren, der für zukünftige Vorhersagen verwendet werden kann. Beim Max-Pooling wird der Maximalwert eines bestimmten Abschnitts von Eingabedaten verwendet, um das wichtigste Merkmal in dieser Region zu bestimmen. Der Kursleiter demonstriert die Auswirkungen der Variation der Kernelgröße für maximales Pooling und wie sich dies auf den Funktionsraum auswirkt. Sie bieten auch ein visuelles Beispiel mit einem kleineren zufälligen Tensor, um den Prozess des Max-Pooling zu zeigen. Insgesamt ist Max Pooling eine nützliche Technik zum Reduzieren der Datendimensionalität, während wichtige Funktionen für Vorhersagen beibehalten werden.

  • 18:10:00 In diesem Abschnitt des Kurses erörtert der Kursleiter den Zweck der Max-Pool-Schicht in einem Convolutional Neural Network, der darin besteht, die erlernten Merkmale aus der Convolutional Layer auf einen kleineren Raum zu komprimieren, was letztendlich zu einer komprimierten Darstellung führt der Eingabedaten, die verwendet werden können, um Vorhersagen zu treffen. Der Kursleiter fordert die Zuschauer auch auf, einen Dummy-Tensor zu erstellen und ihn durch das winzige VGG-Netzwerk zu führen, das sie in den vorherigen Videos konstruiert haben, um zu sehen, was mit der Form des Dummy-Tensors passiert, wenn er sich durch die Faltungsblöcke bewegt. Abschließend erklärt der Kursleiter, dass der Zweck, ein Modell von einem anderen Ort zu replizieren und Daten hindurchzuleiten, eine gängige Praxis im Deep Learning ist.

  • 18:15:00 In diesem Abschnitt stellt der Kursleiter ein Beispiel für einen Vorwärtspass in PyTorch bereit und demonstriert, wie mit Shape-Mismatch-Fehlern umgegangen wird. Sie verwenden ein zuvor erstelltes Bild aus dem Fashion MNIST-Datensatz und erstellen einen Tensor mit der gleichen Form wie das Bild. Sie erhalten jedoch einen Fehler, da der Tensor eine zusätzliche Dimension für die Stapelgröße hat. Um dies zu beheben, heben sie den Tensor bei Dimension Null auf, um die Batch-Dimension hinzuzufügen. Sie stellen auch sicher, dass sich der Tensor auf demselben Gerät wie das Modell befindet, und zeigen, wie Fehler behoben und die Formen gefunden werden, die für verschiedene Ebenen des Modells benötigt werden. Der Abschnitt endet damit, dass der Ausbilder das Modell unter Verwendung der gesammelten Informationen über Formen neu erstellt.

  • 18:20:00 In diesem Abschnitt des Videos demonstriert der Kursleiter einen Trick zum Debuggen der Formen der Schichten in einem neuronalen Netzwerkmodell. Indem Dummy-Daten durch das Modell geleitet und die Formen der Ausgabe auf jeder Ebene gedruckt werden, kann der Kursleiter feststellen, wo die Formabweichungen auftreten, und Probleme mit der Klassifikatorebene identifizieren. Der Kursleiter zeigt dann, wie die Eingabe- und Ausgabeformen von Faltungsschichten von Hand berechnet werden, betont aber auch die Vorteile der Verwendung von Code zur Durchführung dieser Berechnungen. Schließlich verwendet der Ausbilder den Trick, um sicherzustellen, dass das Modell mit den Matrizenmultiplikationsregeln kompatibel ist, und um zu bestätigen, dass das Modell Daten mit der gewünschten Form verarbeiten kann.

  • 18:25:00 In diesem Abschnitt erläutert der Kursleiter die Eingabe- und Ausgabeformen jeder Schicht in dem von ihm erstellten Modell. Sie führen einen zufälligen Tensor durch das Modell und erhalten eine Ausgabeform von eins und zehn, da sie zehn Klassen in ihrem Datensatz haben. Anschließend richten sie eine Verlustfunktion und einen Optimierer für ihr zweites Modell ein und erklären, wie sie ihr erstes Convolutional Neural Network (CNN) trainieren werden. Sie importieren eine Genauigkeitsfunktion, richten eine Cross-Entropie-Loss-Funktion ein und lassen den Optimierer so wie zuvor, Torch.opt in SGD. Anschließend demonstrieren sie, wie sie ihre Trainingsschritt- und Testschrittfunktionen verwenden, um Modell zwei zu trainieren, was sie im nächsten Video ausführlich behandeln werden. Schließlich richteten sie die Trainings- und Testfunktion ein, indem sie den Trainingsschritt mit dem Modell durchführten und versuchten, auf einem Datenlader zu lernen.

  • 18:30:00 In diesem Abschnitt konzentriert sich das Video auf das Training eines Convolutional Neural Network und misst die Zeit, die es braucht, um es zu trainieren, indem TQDM verwendet wird, um den Fortschritt zu messen. Sie richten die Genauigkeitsfunktion, die Verlustfunktion, den Optimierer, den Zugdatenlader und den Testdatenlader ein. Sie messen auch die Endzeit, um zu wissen, wie lange die Ausführung des Codes gedauert hat. Sie hatten ein Codeproblem mit einem Ausdruck, haben es aber behoben und ihr erstes CNN erfolgreich trainiert, wobei sie in etwa 42 Sekunden eine Testgenauigkeit von 88,5 % erreichten. Das Video rät dazu, sich bewusst zu sein, dass ein leistungsstärkeres Modell im Allgemeinen länger zum Trainieren braucht.

  • 18:35:00 In diesem Abschnitt erläutert der Kursleiter die Bedeutung des Vergleichs von Ergebnissen und Trainingszeiten verschiedener Modelle in Experimenten zum maschinellen Lernen. Sie führen drei Wörterbücher für Modellergebnisse ein und erstellen mithilfe von Pandas einen Datenrahmen, um die Genauigkeit, den Verlust und die Trainingszeit jedes Modells zu vergleichen. Sie stellen fest, dass das Convolutional Neural Network (Modell 2) die anderen Modelle mit einer Genauigkeit von 88 % übertroffen hat, und ermutigen Zuschauer, mit verschiedenen Modellarchitekturen, Hyperparametern und Trainingszeiten zu experimentieren, um bessere Ergebnisse zu erzielen. Der Ausbilder betont, wie wichtig es ist, den Kompromiss zwischen Modellleistung und Geschwindigkeit in praktischen Anwendungen zu berücksichtigen.

  • 18:40:00 In diesem Abschnitt erörtert der Kursleiter den Vergleich der Ergebnisse der drei im vorherigen Abschnitt durchgeführten Experimente unter Verwendung eines Datenrahmens und einer Grafik. Die Trainingszeit und Genauigkeit werden für jedes Modell verglichen, und der Ausbilder weist darauf hin, dass die Trainingszeit je nach verwendeter Hardware variieren wird. Das leistungsstärkste Modell war das Convolutional Neural Network, aber es hatte die längste Trainingszeit. Der Kursleiter schlägt vor, zu versuchen, Vorhersagen für zufällige Stichproben aus dem Testdatensatz zu treffen, indem das Modell mit der besten Leistung verwendet wird.

  • 18:45:00 In diesem Abschnitt erläutert der Kursleiter, wie eine Funktion namens „Vorhersagen treffen“ erstellt wird, um ein trainiertes maschinelles Lernmodell zu bewerten. Die Funktion nimmt ein Brenner- und Endmodultypmodell, einige Daten und einen Gerätetyp auf. Ziel ist es, Zufallsstichproben aus dem Testdatensatz zu entnehmen, mithilfe des Modells Vorhersagen darüber zu treffen und die Vorhersagen zu visualisieren. Die Funktion bereitet die Probe vor, indem sie sie entquetscht und an das Zielgerät weiterleitet. Dann wird das Modell vorwärts weitergegeben, um die Rohprotokolle zu erhalten, und die Softmax-Aktivierungsfunktion angewendet, um die Vorhersagewahrscheinlichkeit zu erhalten. Schließlich werden die Vorhersagewahrscheinlichkeiten in Vorhersageetiketten umgewandelt, und die Liste der Vorhersagewahrscheinlichkeiten, die sich auf bestimmte Proben beziehen, wird gestapelt, um die Liste in einen Tensor umzuwandeln. Der Abschnitt endet mit einer Demonstration der Funktion in Aktion anhand von Testmustern.

  • 18:50:00 In diesem Abschnitt erklärt der Kursleiter, wie Testdaten nach dem Zufallsprinzip abgetastet und Testetiketten erstellt werden, um die Vorhersagen des Modells zu bewerten. Die Testdaten werden noch nicht in einen Datenlader konvertiert, und der Code tastet neun zufällige Testdatenproben ab. Der Kursleiter betont, wie wichtig es ist, Vorhersagen für zufällige Testdatenproben zu treffen, selbst nachdem das Modell trainiert wurde, um zu verstehen, wie das Modell funktioniert. Der Kursleiter erläutert auch, wie Vorhersagewahrscheinlichkeiten mithilfe von argmax in Vorhersageetiketten konvertiert werden, um den Index des höchsten Werts in den Wahrscheinlichkeiten zu verwenden.

  • 18:55:00 In diesem Abschnitt schreibt der Kursleiter Code, um die Vorhersagen und Bilder für Zufallsstichproben zu zeichnen. Der Code erstellt eine Matplotlib-Figur mit drei Zeilen und drei Spalten und zählt jedes Beispiel in den Testbeispielen auf. Für jede Probe wird ein Subplot erstellt und das Zielbild geplottet. Die Vorhersagekennzeichnung und die Wahrheitskennzeichnung werden ebenfalls gefunden und unter Verwendung von Klassennamen und den Indizes für pred-Klassen und Testkennzeichnungen in Textform umgewandelt. Schließlich wird ein Titel für die Handlung erstellt, und die Farbe des Titeltexts wird auf Grün geändert, wenn die Vorhersagekennzeichnung gleich der Wahrheitskennzeichnung ist, und auf Rot, wenn sie nicht gleich sind.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

PyTorch for Deep Learning & Machine Learning – Vollständiger Kurs (Beschreibung der Teile 20-24)


PyTorch für Deep Learning & maschinelles Lernen – Vollständiger Kurs

Teil 20

  • 19:00:00 In diesem Abschnitt erörtert der Referent die Bedeutung der Visualisierung von Modellvorhersagen für maschinelles Lernen und zeigt, wie die Vorhersagen eines trainierten Convolutional Neural Network (CNN) auf zufällig ausgewählte Stichproben aus einem Testdatensatz aufgetragen werden. Der Moderator demonstriert, wie man Bilder mit ihren vorhergesagten und wahren Beschriftungen plottet und die Farbe des Titeltexts ändert, je nachdem, ob die Vorhersage richtig ist oder nicht. Durch die Analyse der Vorhersagen zeigt der Präsentator mögliche Verwechslungen zwischen Bezeichnungsklassen auf und schlägt vor, dass die Visualisierung von Vorhersagen Erkenntnisse zur Verbesserung der Bezeichnungen oder des Modells selbst liefern kann. Der Referent stellt dann das Konzept der Konfusionsmatrix als eine weitere Möglichkeit zur Bewertung der Modellleistung vor, indem er die vorhergesagten und wahren Bezeichnungen einer großen Menge von Testproben vergleicht.

  • 19:05:00 In diesem Abschnitt erläutert der Kursleiter, wie ein Klassifikationsmodell mit mehreren Klassen mithilfe einer Konfusionsmatrix in PyTorch ausgewertet wird. Die Konfusionsmatrix ist eine visuelle Darstellung, die die Leistung des Modells in verschiedenen Klassen zeigt. Der Kursleiter erklärt, wie Fackelmetriken für Bewertungsmetriken verwendet werden, und zeigt, wie auf Konfusionsmatrix-Bewertungsmetriken zugegriffen wird. Zusätzlich wird ML extend verwendet, um die Konfusionsmatrix zu zeichnen. Wichtig ist, dass der Kursleiter erklärt, dass Google Colab nicht über die erforderliche Version von ML Extend verfügt und Version 0.19.0 benötigt wird, um die ordnungsgemäße Installation des Pakets sicherzustellen. Schließlich zeigt das Video, wie Vorhersagen über den Testdatensatz getroffen werden und wie das Modell mit dem Torch-Inferenzmodus als Kontextmanager in den Bewertungsmodus versetzt wird.

  • 19:10:00 In diesem Abschnitt demonstriert der Kursleiter, wie der Testdatenlader durchlaufen wird, um mit PyTorch Vorhersagen zu treffen. Die Vorhersagen werden an eine Liste angehängt und dann mit Torch.cat zu einem Tensor verkettet. Der resultierende Tensor hat eine Vorhersage pro Testprobe. Der Kursleiter installiert auch Torch-Metriken und zeigt, wie man eine Try-and-Accept-Schleife verwendet, um sie zu importieren. Schließlich wird die erforderliche Version von ML-Extend unter Verwendung einer Assert-Anweisung zur Verwendung in der Plot-Confusion-Matrix-Funktion überprüft.

  • 19:15:00 In diesem Abschnitt erläutert der Kursleiter die Installation und Aktualisierung von Paketen in Google Colab anhand des Beispiels der Installation von Torch-Metriken und der Aktualisierung von ML Extend auf Version 0.19.0 oder höher. Der Instruktor geht durch den Code und erklärt, wie man überprüft, ob die Installation gut gelaufen ist und was zu tun ist, wenn während des Prozesses Fehler auftreten, einschließlich, wie man die Laufzeit bei Bedarf neu startet. Sobald die Installation abgeschlossen ist, erklärt der Kursleiter, wie eine Konfusionsmatrix mit den Vorhersagen erstellt wird, die im vorherigen Video für den gesamten Testdatensatz getroffen wurden.

  • 19:20:00 In diesem Abschnitt erklärt der Kursleiter, wie eine Konfusionsmatrix erstellt und gezeichnet wird, um die Leistung eines Deep-Learning-Modells zu bewerten. Zunächst werden die Verwirrungsmatrixklasse aus Fackelmetriken und die Verwirrungsmatrixfunktion aus ML Extend importiert. Dann wird eine Verwirrungsmatrixinstanz eingerichtet, indem die Anzahl der Klassen als Länge der Klassennamenliste übergeben wird. Der Konfusionsmatrix-Tensor wird erstellt, indem Vorhersagen und Ziele im Testdatensatz übergeben werden. Schließlich wird die Konfusionsmatrix unter Verwendung der Plot-Konfusionsmatrixfunktion gezeichnet, indem der Konfusionsmatrix-Tensor und die Liste der Klassennamen übergeben werden, wodurch eine optisch ansprechende Diagonale erstellt wird, die korrekte Vorhersagen und potenzielle Bereiche zeigt, in denen das Modell Fehler macht.

  • 19:25:00 In diesem Abschnitt erläutert der Kursleiter die Bedeutung der Verwendung einer Konfusionsmatrix zur visuellen Bewertung der Vorhersagen eines Klassifizierungsmodells, insbesondere wenn die Fehler des Modells erheblich sind, z. B. zwei ähnlich aussehende Datenklassen wie Hemden und zu verwechseln Mäntel. Die Verwendung einer Konfusionsmatrix ist eine leistungsstarke Möglichkeit, die Leistung eines Modells zu bewerten, und kann dabei helfen, Probleme mit den vorhandenen Bezeichnungen zu identifizieren. Er spricht auch darüber, wie wichtig es ist, ein trainiertes Modell zu speichern und zu laden, insbesondere wenn die Leistung des Modells zufriedenstellend ist. Durch Speichern des Modells in einer Datei kann es an anderer Stelle verwendet oder erneut geladen werden, um sicherzustellen, dass es korrekt gespeichert wurde. Der Kursleiter erklärt, wie ein Modellverzeichnispfad und ein Modellspeicherpfad erstellt werden, und zeigt dann, wie das Modellzustandsdiktat mithilfe der Methode „torch.save“ gespeichert wird.

  • 19:30:00 In diesem Abschnitt zeigt der Kursleiter, wie ein PyTorch-Modell gespeichert und geladen wird. Das Zustandswörterbuch wird gespeichert, das alle gelernten Parameter des Modells darstellt, nachdem es trainiert wurde. Um das gespeicherte Modell zu laden, wird eine neue Instanz mit denselben Parametern wie die ursprüngliche erstellt. Es ist wichtig, das geladene Modell mit den gleichen Parametern wie das Original einzurichten, um einen Shape-Mismatch-Fehler zu vermeiden. Das geladene Modell wird dann ausgewertet, um sicherzustellen, dass es ähnliche Ergebnisse wie das Originalmodell liefert. Der Ausbilder betont, wie wichtig es ist, ein Modell nach dem Speichern und Laden zu bewerten, um sicherzustellen, dass es korrekt gespeichert wurde.

  • 19:35:00 In diesem Abschnitt sehen wir, dass das geladene Modell die gleichen Ergebnisse liefert wie das zuvor trainierte Modell, bevor es gespeichert wurde, und wir können Torch.is_close verwenden, um programmgesteuert zu prüfen, ob die Modellergebnisse nahe beieinander liegen. Das absolute Toleranzniveau kann angepasst werden, um sicherzustellen, dass die Ergebnisse ähnlich genug sind, und wenn es Diskrepanzen gibt, wird empfohlen zu überprüfen, ob das Modell korrekt speichert und zufällige Startwerte eingerichtet sind. Der Arbeitsablauf für ein Computer-Vision-Problem wird ebenfalls besprochen, von der Verwendung von Referenzmaterialien und Bibliotheken wie Torchvision über die Bewertung des Modells bis hin zum Experimentieren mit Nichtlinearitäts- und Convolutional Neural Network-Modellen, um das beste Modell zu finden.

  • 19:40:00 In diesem Abschnitt von „PyTorch for Deep Learning & Machine Learning“ ermutigt der Kursleiter die Zuschauer, das bisher Gelernte zu üben, indem sie auf die Website Learn pytorch.io gehen und die bereitgestellten Übungen durchführen. Die Übungen konzentrieren sich auf das Üben des Codes und der Konzepte, die in den vorherigen Abschnitten behandelt wurden, und es gibt auch einen zusätzlichen Lehrplan für diejenigen, die tiefer in Computer Vision eintauchen möchten. Darüber hinaus behandelt der Abschnitt das Thema benutzerdefinierte Pytorch-Datensätze und bietet Ressourcen, um bei Bedarf Hilfe zu erhalten, z. B. die Pytorch-Dokumentation und den Stapelüberlauf.

  • 19:45:00 In diesem Abschnitt des PyTorch-Kurses wird die Arbeit mit benutzerdefinierten Datensätzen sowie die verschiedenen Domänenbibliotheken wie Fackelbild, Fackeltext, Fackelaudio und Fackelaufnahme erläutert. Domänenbibliotheken enthalten Funktionen zum Laden von Daten für verschiedene Datenquellen und verfügen über integrierte Datensätze wie Taschenlampen-Datensätze für vorgefertigte Vision-Datensätze wie Fashion MNIST und benutzerdefinierte Datensätze. Jede Domänenbibliothek verfügt auch über ein „Datensätze“-Modul, das Benutzern hilft, mit verschiedenen Datensätzen in verschiedenen Domänen zu arbeiten, und abhängig von der Domäne, in der Sie arbeiten, wie z. B. Bild, Text, Audio, Empfehlung, wird empfohlen, sich die benutzerdefinierte Bibliothek anzusehen in PyTorch.

  • 19:50:00 In diesem Abschnitt erläutert der Kursleiter, wie benutzerdefinierte Datensätze in PyTorch geladen werden, um sie beim Erstellen eines Computer-Vision-Modells zu verwenden. Das Modell, das sie bauen werden, heißt Food Vision Mini, das Bilder von Pizza, Sushi und Steak klassifizieren wird. Der Ausbilder behandelt verschiedene Schritte beim Trainieren eines Modells, wie z. B. das Auswählen einer Verlustfunktion und eines Optimierers, das Erstellen einer Trainingsschleife und das Bewerten des Modells. Sie erklären auch, wie Daten für die Verwendung mit einem Modell transformiert werden, und vergleichen Modelle mit und ohne Datenerweiterung. Schließlich zeigen sie, wie Vorhersagen zu benutzerdefinierten Daten getroffen werden können, und stellen eine Ressource für den Zugriff auf das Video-Notizbuch im PyTorch-Deep-Learning-Repository bereit.

  • 19:55:00 In diesem Abschnitt erläutert der Kursleiter, wie Sie Ihre eigenen Daten über benutzerdefinierte Datasets in PyTorch abrufen. Sie betonen die Bedeutung der Verwendung von Domänenbibliotheken für Datenladefunktionen und anpassbare Datenladefunktionen und geben Beispiele dieser Bibliotheken für verschiedene Kategorien wie Bild, Text, Audio und Empfehlung. Der Kursleiter zeigt auch, wie Sie die erforderlichen Bibliotheken importieren und geräteunabhängigen Code für Best Practices mit PyTorch einrichten. Sie zeigen, wie Sie nach verfügbaren CUDA-Geräten suchen und den Laufzeittyp ändern, um GPUs für eine schnellere Verarbeitung zu verwenden. Abschließend gibt der Kursleiter Hinweise zur Gewinnung von Daten für die Arbeit im nächsten Video.

Teil 21

  • 20:00:00 In diesem Abschnitt des Kurses stellt der Kursleiter den Food 101-Datensatz vor, der 101 verschiedene Lebensmittelkategorien mit 101.000 Bildern enthält. Um die Verwendung von PyTorch zu üben, hat der Kursleiter jedoch eine kleinere Teilmenge dieses Datensatzes erstellt, die drei Lebensmittelkategorien und nur 10 % der Bilder enthält. Dieses kleinere Dataset enthält 750 Trainingsbilder, 250 Testbilder und etwa 75 Trainingsbilder und 25 Testbilder pro Klasse. Indem Sie mit diesem kleineren Datensatz beginnen, besteht das Ziel darin, das Experimentieren zu beschleunigen und die Zeit zu verkürzen, die zum Trainieren von Modellen benötigt wird. Der Kursleiter stellt ein Notizbuch zur Erstellung dieses benutzerdefinierten Datensatzes zur Verfügung und ermutigt die Schüler, klein anzufangen und bei Bedarf zu aktualisieren.

  • 20:05:00 In diesem Abschnitt erläutert der Kursleiter den Vorgang zum Herunterladen und Vorbereiten eines Bilddatensatzes für PyTorch. Der Datensatz enthält Bilder von Pizza, Steak und Sushi, die in einem Ordner namens data gespeichert sind. Der Kursleiter verwendet die Python-Anforderungsbibliothek, um die Daten herunterzuladen, und entpackt sie dann in den Datenordner. Der Zweck dieses Abschnitts besteht darin, zu demonstrieren, wie Bilddaten in PyTorch geladen werden, was auf jedes ähnliche Projekt angewendet werden kann. Der Dozent betont die Wichtigkeit eines separaten Verzeichnisses für Daten, das sich auf einem lokalen Rechner oder in der Cloud befinden kann.

  • 20:10:00 In diesem Abschnitt erklärt der Kursleiter, wie die Python-Bibliothek Zipfile verwendet wird, um Daten aus einer Zip-Datei zu extrahieren. Sie verwenden das Beispiel des Extrahierens einer ZIP-Datei mit Bildern von Pizza, Steak und Sushi für ein Computer-Vision-Problem mit maschinellem Lernen. Der Kursleiter zeigt, wie der Inhalt der ZIP-Datei mithilfe der Methode zipfile.extractall() in einen bestimmten Dateipfad extrahiert wird. Sie behandeln auch einen Fehler im Code, der aus dem Kopieren der falschen Linkadresse von GitHub resultierte, und betonen, wie wichtig es ist, sicherzustellen, dass der richtige Link zum Herunterladen von Datensätzen verwendet wird. Insgesamt kann der gezeigte Prozess verwendet werden, um jeden benutzerdefinierten Datensatz zur Verwendung in PyTorch herunterzuladen und zu extrahieren. Im nächsten Video werden die Daten weiter untersucht.

  • 20:15:00 In diesem Abschnitt erläutert der Kursleiter, wie wichtig es ist, durch Datenaufbereitung und -exploration eins mit den Daten zu werden. Er teilt ein erfundenes Zitat aus der Abraham-Verlustfunktion und betont die Notwendigkeit, viel Zeit für die Vorbereitung des Datensatzes aufzuwenden. Der Ausbilder geht dann durch jedes Verzeichnis der heruntergeladenen Musterdaten, die in einem Standard-Bildklassifizierungsformat vorliegen. Er verwendet die Dot-Walk-Funktion des Betriebssystems, um für jedes Verzeichnis einen Verzeichnisbaum zu erstellen, der Informationen über die Verzeichnisse und Bilder anzeigt, die in jedem Verzeichnis vorhanden sind. Schließlich richtet der Ausbilder die Trainings- und Testteile ein und demonstriert die standardmäßige Einrichtung der Bildklassifizierung für sie.

  • 20:20:00 In diesem Abschnitt erläutert der Kursleiter die standardmäßige Datenstruktur zur Bildklassifizierung, bei der ein Gesamtdatensatzordner Schulungs- und Testordner mit nach Klassen benannten Unterverzeichnissen enthält, die entsprechende Bilder enthalten. Der Dozent weist darauf hin, dass standardisierte Arten der Speicherung bestimmter Datentypen als Referenz für Datenformate existieren. Um Bilddaten für die Verwendung mit PyTorch vorzubereiten, wird Code geschrieben, um die Daten in Tensoren umzuwandeln. Der Ausbilder hebt das Datenformat hervor, das zum Klassifizieren von Hunde- und Katzenbildern erforderlich ist, wobei die Schulungs- und Testbildverzeichnisse entsprechende Klassenordner enthalten. Der Kursleiter erwähnt auch Pläne, ein Bild und Code zu visualisieren, um dies zu erreichen, was das Abrufen aller Bildpfade, das Auswählen eines zufälligen Bildpfads und das Abrufen des Bildklassennamens mit dem Pathlib-Modul beinhaltet.

  • 20:25:00 In diesem Abschnitt erklärt der Kursleiter, wie Bilder mit der Python-Bildbibliothek namens Pillow geöffnet und bearbeitet werden. Zuerst generieren sie eine Liste aller Bildpfade in einem bestimmten Ordner und verwenden die Zufallsbibliothek von Python, um zufällig ein Bild aus dieser Liste auszuwählen. Anschließend öffnen und zeigen sie das Bild an und extrahieren Metadaten darüber. Darüber hinaus bietet der Kursleiter einen Überblick über die Möglichkeiten der Torch Vision-Bibliothek, einschließlich Methoden zum Laden und Verarbeiten von Bildern.

  • 20:30:00 In diesem Abschnitt demonstriert der Kursleiter, wie mit Bildern unter Verwendung der PIL-Bibliothek gearbeitet wird und wie Bildmetadaten geöffnet und analysiert werden. Die Bildklasse ist der Name des Verzeichnisses, in dem die Bilddaten gespeichert sind, und die Metadaten werden mit der Druckfunktion abgerufen. Der Kursleiter zeigt dann einige zufällige Lebensmittelbilder aus dem Datensatz, darunter Pizza, Sushi und Steak, und erklärt, wie wichtig es ist, Bilder zufällig zu visualisieren, um sich mit dem Datensatz vertraut zu machen. Der Ausbilder stellt den Zuschauern eine kleine Herausforderung, die darin besteht, ein Bild mit Matplotlib für den nächsten Abschnitt zu visualisieren.

  • 20:35:00 In diesem Abschnitt zeigt der Kursleiter, wie man Bilder und Daten mit Matplotlib plottet und Bilder mit der NumPy-Methode NP in Arrays umwandelt. Es wird betont, wie wichtig es ist, die Form von Daten zu verstehen, um Probleme mit Formabweichungen zu vermeiden. Das Standardformat für die Pill-Bibliothek und Matplotlib ist das letzte Format der Farbkanäle, aber PyTorch verwendet standardmäßig das erste Format der Farbkanäle. Der Kursleiter zeigt auch, wie Sie verschiedene Bilder visualisieren und sich mit den Daten vertraut machen und die Daten transformieren, indem Sie sie in PyTorch-Tensoren konvertieren, um sie mit PyTorch zu verwenden.

  • 20:40:00 In diesem Abschnitt erläutert der Kursleiter den Prozess der Transformation von Zieldaten in PyTorch-Tensoren und das Erstellen von PyTorch-Datensätzen und Datenladern. Anhand der PyTorch-Dokumentation zeigt der Kursleiter, wie Datensätze mit dem Bildordnermodul erstellt werden, und stellt den Transformationsparameter vor, der die Anwendung spezifischer Transformationen auf die Daten ermöglicht. Der Kursleiter demonstriert dann, wie eine Transformation für Bilddaten erstellt wird, die die Größe der Bilder auf 64 x 64 ändert und sie zufällig auf der horizontalen Ebene dreht, um die Vielfalt des Datensatzes künstlich zu erhöhen. Dies geschieht mit der Methode transforms.compose, die eine Liste von Transformationen als Argument verwendet.

  • 20:45:00 In diesem Abschnitt erklärt der Kursleiter, wie ein Bild mithilfe des Transformationsmoduls in PyTorch in einen Torch-Tensor umgewandelt wird. Dies geschieht mit der Funktion „transforms.ToTensor()“, die ein PIL-Bild oder ein NumPy-Array von Höhe mit Farbkanälen im Bereich von 0 bis 255 in einen Fackelfloat-Tensor der Form Farbkanäle Höhe Breite im Bereich von 0 bis konvertiert 1. Der Kursleiter schlägt vor, zu versuchen, Daten durch diese Transformation zu leiten, und zeigt, wie die Bildform mit der Funktion „transforms.Resize()“ geändert werden kann. Der Abschnitt endet mit einer Diskussion der verschiedenen Transformationen, die in der Torchvision-Bibliothek verfügbar sind, einschließlich Datenerweiterungstransformationen, und einer Vorschau auf den kommenden Visualisierungscode zum Erkunden der transformierten Bilder.

  • 20:50:00 In diesem Abschnitt demonstriert der Kursleiter, wie man Bilder zufällig aus einem Pfad abtastet, sie lädt und transformiert und dann die ursprüngliche und die transformierte Version mit PyTorch vergleicht. Der Code verwendet die Zufallsstartwertfunktion, um den Startwert für die Zufallsfunktion festzulegen, und tastet zufällig k Bilder aus der Liste von Bildpfaden ab. Der Kursleiter verwendet dann die Matplotlib-Bibliothek, um einen Subplot mit einer Zeile und n Spalten zu erstellen, um die ursprünglichen und transformierten Bilder nebeneinander zu plotten. Die Form des transformierten Bildes muss so geändert werden, dass es zuletzt dem bevorzugten Format der Farbkanäle der Matplotlib-Bibliothek entspricht. Schließlich setzt der Code den Titel des ursprünglichen und transformierten Bildes und setzt den Supertitel auf den Klassennamen des Bildes.

  • 20:55:00 In diesem Abschnitt des Videos demonstriert der Kursleiter, wie Transformationen verwendet werden, um Bilddaten für Deep-Learning-Modelle mit PyTorch zu manipulieren. Der Kursleiter setzt die Transformation gleich der Datentransformation, was bedeutet, dass die Größe des Bilds geändert, zufällig horizontal gespiegelt und in einen Tensor umgewandelt wird. Sie zeigen auch, wie die Permutierungsfunktion verwendet wird, um die Form der Daten neu anzuordnen, indem die Reihenfolge der Achsen vertauscht wird. Die Bilder werden dann geplottet, um die ursprüngliche und die transformierte Version nebeneinander anzuzeigen, wobei die transformierten Bilder im Tensorformat vorliegen, was ideal für die Verwendung mit Deep-Learning-Modellen ist. Der Kursleiter weist darauf hin, dass die Größe des Bildes ein Hyperparameter ist, der angepasst werden kann, und ermutigt die Zuschauer, die große Auswahl an Transformationen zu erkunden, die in PyTorch verfügbar sind.

Teil 22

  • 21:00:00 In diesem Abschnitt erklärt der Kursleiter, wie Bilddaten mit der Bildordneroption geladen werden. Sie verwenden das Taschenlampen-Datensatzmodul, um zu zeigen, wie Daten in das generische Bildklassifizierungsformat geladen werden. Die vorgefertigte Datensatzfunktion, Bildordner, wird demonstriert, die dann verwendet werden kann, um alle benutzerdefinierten Bilder mit Hilfe von Transformationen in Tensoren zu laden. Der Ausbilder zeigt dann, wie der Trainingsdatensatz transformiert und ein Testdatensatz erstellt wird, der ebenfalls auf die gleiche Weise wie der Trainingsdatensatz transformiert wird. Abschließend drucken sie die erstellten Datensätze aus.

  • 21:05:00 In diesem Abschnitt erklärt der Kursleiter, wie die Bildordnerfunktion in PyTorch verwendet wird, um Bilder in Tensoren zu laden und sie mithilfe einer Pipeline zu transformieren, die dann mit einem PyTorch-Modell verwendet werden kann. Sie demonstrieren, wie Sie auf verschiedene Attribute zugreifen und diese verwenden, die mit dem vorgefertigten Data Loader geliefert werden, wie z. B. das Abrufen von Klassennamen als Liste oder Wörterbuch und das Überprüfen der Länge des Datensatzes. Darüber hinaus zeigen sie, wie Proben und Beschriftungen aus dem Trainingsdatensatz mithilfe der Indizierung visualisiert werden.

  • 21:10:00 In diesem Abschnitt des Kurses demonstriert der Kursleiter, wie ein Bilddatensatz in das Tensorformat konvertiert wird, das das Standarddatenformat für PyTorch ist. Sie verwenden ein Beispiel für ein Pizzabild und zeigen, wie man das zugehörige Etikett erhält und es in ein numerisches Format konvertiert. Sie drucken dann einige wichtige Informationen über die Tensordaten aus, wie z. B. Datentyp und -form, die später für die Fehlerbehebung nützlich sein werden. Schließlich plotten sie das Bild mit matplotlib und setzen den Titel auf den Klassennamen, der in diesem Fall Pizza ist. Sie ermutigen die Schüler, dies mit verschiedenen Bildern auszuprobieren und verschiedene Transformationen zu erkunden.

  • 21:15:00 In diesem Abschnitt des Videos erläutert der Kursleiter den Vorgang zum Konvertieren geladener Bilder in Datenlader in PyTorch. Ein Datenlader kann dabei helfen, Datensätze in Iterables umzuwandeln, sodass Benutzer die Stapelgröße anpassen und eine bestimmte Anzahl von Bildern gleichzeitig anzeigen können. Dies ist wichtig, denn wenn alle Bilder auf einmal geladen wurden, besteht die Gefahr, dass der Speicherplatz knapp wird. Daher hilft das Stapeln von Bildern bei der Nutzung des gesamten verfügbaren Speichers. Der Ausbilder gibt eine Schritt-für-Schritt-Anleitung zum Erstellen eines Zugdatenladers und stellt auch das Konzept der Anzahl der Worker-Parameter vor, die entscheiden, wie viele CPU-Kerne zum Laden von Daten verwendet werden.

  • 21:20:00 In diesem Abschnitt erläutert der Kursleiter, wie Datenladeprogramme zum Trainieren und Testen von Daten in PyTorch erstellt und angepasst werden. Er zeigt, wie Datensätze initialisiert und Hyperparameter für die Data Loader angepasst werden, wie z. B. Batchgröße und Anzahl der Worker. Der Kursleiter demonstriert auch, wie man die Ladeprogramme durchläuft und Informationen über die Form der Bilder und Beschriftungen erhält. Der Abschnitt schließt mit einer Zusammenfassung des Ladevorgangs und einer Empfehlung zum Aufbau eines Convolutional Neural Network zur Identifizierung von Mustern in Bildtensoren.

  • 21:25:00 In diesem Abschnitt erläutert der Kursleiter den Prozess zum Erstellen einer benutzerdefinierten Datenladeklasse zum Laden von Bilddaten in das Tensor-Format. Das Ziel besteht darin, die Funktionalität des Bildordners durch diese benutzerdefinierte Klasse zu replizieren, da dies eine bewährte Vorgehensweise ist und in Fällen erforderlich sein kann, in denen keine vordefinierte Funktion vorhanden ist. Der Kursleiter listet die Schritte auf, die für die benutzerdefinierte Klasse erforderlich sind, um Bilder zu laden, Klassennamen als Liste abzurufen und Klassen als Wörterbuch aus dem Datensatz abzurufen. Die Vor- und Nachteile der Erstellung eines benutzerdefinierten Datensatzes werden ebenfalls erörtert, einschließlich der Flexibilität, einen Datensatz aus fast allem zu erstellen, aber auch das Potenzial für Fehler und Leistungsprobleme. Der Kursleiter importiert dann die erforderlichen Module zum Erstellen der benutzerdefinierten Klasse, einschließlich Betriebssystem und Pfadbibliothek, um mit dem Dateisystem zu arbeiten.

  • 21:30:00 In diesem Abschnitt lernen wir, wie man ein benutzerdefiniertes Dataset in PyTorch erstellt, und konzentrieren uns darauf, eine Funktion zu schreiben, um Klassennamen aus dem Zielverzeichnis abzurufen. Das benutzerdefinierte Dataset wird verwendet, um Bilder aus einer Datei zu laden, Klassennamen aus dem Dataset abzurufen und Klassen als Wörterbuch aus dem Dataset abzurufen. Die Funktion verwendet den OS-Scanner, um das Zielverzeichnis zu durchlaufen und Klassennamen abzurufen, und löst einen Fehler aus, wenn die Klassennamen nicht gefunden werden, was auf ein Problem mit der Verzeichnisstruktur hinweist. Wir werden später eine Unterklasse von Torch.utils.data.Dataset erstellen, um ein benutzerdefiniertes Dataset zu erstellen.

  • 21:35:00 In diesem Abschnitt des Videos demonstriert der Kursleiter, wie eine Funktion namens „find_classes“ erstellt wird, die ein Verzeichnis als Zeichenfolge annimmt und eine Liste mit Klassennamen und ein Wörterbuch zurückgibt, das die Klassennamen ganzen Zahlen zuordnet. Die Funktion verwendet den OS-Scanner, um das Zielverzeichnis zu scannen und die Klassennamen abzurufen. Der Kursleiter zeigt auch, wie ein Fehler ausgelöst wird, wenn die Klassennamen nicht gefunden werden können. Die Funktion kann für jedes beliebige Verzeichnis verwendet werden und repliziert die Funktionalität, die zuvor für das Trainingsverzeichnis ausgeführt wurde.

  • 21:40:00 In diesem Abschnitt des Videos erklärt der Kursleiter, wie ein benutzerdefiniertes Dataset durch Unterklassifizierung von „torch.utils.data.dataset“ erstellt wird. Der Datensatz sollte eine Karte von Schlüsseln zu Datenproben darstellen, wobei sich Schlüssel auf Ziele oder Etiketten beziehen und Datenproben in diesem Fall Lebensmittelbilder sind. Die Unterklasse sollte die get item-Methode überschreiben, die ein Datenbeispiel für einen bestimmten Schlüssel abruft, und optional die len-Methode überschreiben, um die Größe des Datensatzes zurückzugeben. Der Kursleiter führt Sie durch die Schritte zum Erstellen des benutzerdefinierten Datensatzes und erklärt, wie Sie die im vorherigen Abschnitt erstellte Hilfsfunktion verwenden, um Klassennamen ganzen Zahlen zuzuordnen.

  • 21:45:00 In diesem Abschnitt erklärt der Kursleiter, wie ein benutzerdefiniertes Dataset in PyTorch erstellt wird. Dazu müssen wir die Klasse „torch.utils.data.Dataset“ unterklassen und unseren benutzerdefinierten Datensatz initialisieren, indem wir das Zielverzeichnis (in dem sich die Daten befinden) übergeben und transformieren (um Datentransformationen durchzuführen). Darüber hinaus müssen wir mehrere Attribute wie Pfade, Transformation, Klassen und Klasse zu ID X erstellen. Außerdem müssen wir eine Funktion zum Laden von Bildern erstellen, die LAN-Methode überschreiben, um die Länge unseres Datensatzes zurückzugeben, und die get item-Methode, um ein bestimmtes Beispiel zurückzugeben, wenn ein Index übergeben wird. Schließlich schreiben wir einen benutzerdefinierten Datensatz, indem wir pathlib implementieren und Zielverzeichnisse wie die Test- oder Zugverzeichnisse übergeben.

  • 21:50:00 In diesem Abschnitt erläutert der Kursleiter die verschiedenen Schritte zum Erstellen einer benutzerdefinierten PyTorch-Datensatzklasse. Der erste Schritt besteht darin, alle Bildpfade zu erhalten, die der richtigen Dateinamenskonvention folgen. Der nächste Schritt besteht darin, einen Satz von Bildtransformationen zu erstellen, die optional sein können. Außerdem wird eine Funktion zum Laden von Bildern erstellt, die einen Index übernimmt und ein Bild zurückgibt. Der Kursleiter zeigt dann, wie die „len“-Methode überschrieben wird, um die Gesamtzahl der Stichproben im Datensatz zurückzugeben, was optional ist. Zuletzt wird die Methode „Get Item“ überschrieben, sodass sie ein bestimmtes Sample zurückgibt, wenn ein Index übergeben wird.

  • 21:55:00 In diesem Abschnitt erfahren Sie, wie Sie in Unterklassen von „torch.utils.data.Dataset“ unterteilen, um die Art und Weise anzupassen, wie Daten in PyTorch geladen werden. Die Klasse wird mit einem Stammverzeichnis und einem Wörterbuch initialisiert, das Klassennamen Indizes zuordnet. Die Methode __len__ gibt die Länge des Datensatzes zurück, während __getitem__ die Indexierung in den Datensatz ermöglicht, um ein Tupel eines Torch-Tensor-Bildes und die entsprechende ganzzahlige Bezeichnung zurückzugeben. Die Klasse hat auch einen optionalen Transformationsparameter, um Transformationen auf das Bild anzuwenden, bevor das Tupel zurückgegeben wird. Die Vorteile der Unterklassifizierung von torque.utils.data.Dataset sind die Anpassungsmöglichkeiten, die es bietet, aber es erfordert das Schreiben erheblicher Mengen an Code, der fehleranfällig sein kann.

Teil 23

  • 22:00:00 In diesem Abschnitt zeigt der Kursleiter, wie ein benutzerdefiniertes Dataset in PyTorch mit dem Torchvision-Modul erstellt wird. Sie erstellen eine Transformation, um rohe JPEG-Bilder in Tensoren umzuwandeln, und richten Train- und Test-Transformationen ein. Anschließend testen sie die benutzerdefinierte Bildordnerklasse und sehen, ob sie mit ihrem eigenen benutzerdefinierten Dataset funktioniert. Sie überprüfen die Längen- und Klassenattribute, um sicherzustellen, dass es ordnungsgemäß funktioniert. Schließlich inspizieren sie die Zugdaten und die Testdaten, um sicherzustellen, dass alles wie erwartet funktioniert.

  • 22:05:00 In diesem Abschnitt des vollständigen Kurses „PyTorch for Deep Learning and Machine Learning“ demonstriert der Kursleiter, wie er die Gleichheit zwischen dem ursprünglichen Bildordner-Dataset und dem benutzerdefinierten Dataset überprüft, das er im vorherigen Abschnitt erstellt hat, indem er die Klasse mit der ID vergleicht X beider Datensätze. Er bestätigt, dass wir die Hauptfunktionalität der Dataset-Klasse des Bildordners replizieren können, indem wir unsere eigene benutzerdefinierte Dataset-Ladefunktion erstellen, und die daraus resultierenden Erkenntnisse sind, dass PyTorch eine Basis-Dataset-Klasse bereitstellt, von der geerbt werden kann, und solange wir das Land und überschreiben Item-Methoden abrufen und eine Art Werte zurückgeben, können wir unsere eigene Funktion zum Laden von Datensätzen erstellen. Der Kursleiter erklärt weiter, wie eine Funktion erstellt wird, um zufällige Bilder aus der benutzerdefinierten Klasse für trainierte Daten anzuzeigen, um unsere Daten zu visualisieren.

  • 22:10:00 In diesem Abschnitt führt der Kursleiter die Schritte zum Erstellen einer Funktion mit dem Namen „Anzeige zufälliger Bilder“ durch, die einen „Datensatz“, „Klassen“ und „n“ als Parameter akzeptiert. Die Funktion zeigt n zufällig ausgewählte Bilder aus dem Datensatz an und druckt ihre Form aus, wenn "Form anzeigen" auf wahr gesetzt ist. Der Ausbilder geht auch die Implementierungsdetails durch, wie z. B. das Anpassen der Anzeige, wenn n größer als 10 ist, und das Festlegen des Zufallsstartwertes für die Reproduzierbarkeit. Darüber hinaus durchläuft die Funktion die zufälligen Beispielbilder oder Indizes und zeichnet sie mit Matplotlib.

  • 22:15:00 In diesem Abschnitt fährt der Kursleiter damit fort, sein Deep-Learning-Modell in PyTorch aufzubauen, indem er den Plot einrichtet und sicherstellt, dass die Abmessungen seiner Bilder mit matplotlib übereinstimmen. Sie passen ihre Tensordimensionen für das Plotten an, fügen einen Subplot zu ihrem Matplotlib-Plot hinzu und passen den Titel des Plots basierend auf der Klassenvariablen, einer Liste von Klassen, an. Anschließend erstellen sie eine Funktion, um zufällige Bilder aus dem Bildordner anzuzeigen, sowohl für den integrierten Pytorch-Bildordner als auch für den vom Kursleiter erstellten benutzerdefinierten Datensatz. Schließlich passen sie den Seed an und plotten die Bilder, um zu sehen, wie ihr Code zum Anpassen des Plots sinnvoll ist.

  • 22:20:00 In diesem Abschnitt des Transkripts demonstriert der Kursleiter, wie ein benutzerdefinierter geladener Bilddatensatz in Data Loader umgewandelt wird, was ein notwendiger Schritt ist, um die Bilder zu stapeln und sie mit einem Modell zu verwenden. Mithilfe von „torchvision.datasets.ImageFolder“ und „torchvision.transforms“ wird der benutzerdefinierte Datensatz in ein Tensorformat umgewandelt. Der nächste Schritt besteht darin, den Datensatz mithilfe von Torch.utils.data.DataLoader in einen Datenlader umzuwandeln. Der Ausbilder legt die Stapelgröße auf 32 und die Anzahl der Arbeiter auf 0 fest, sowohl für das benutzerdefinierte Ladeprogramm für Zugdaten als auch für das benutzerdefinierte Ladeprogramm für Testdaten. Der Unterschied zwischen ihnen besteht darin, dass die Zugdaten gemischt werden, während die Testdaten nicht gemischt werden.

  • 22:25:00 In diesem Abschnitt behandelt das Video benutzerdefinierte Datenladeprogramme und das Transformieren von Daten in PyTorch. Der Instruktor setzt zunächst den OOS-CPU-Count zurück und setzt die num Worker auf Null, um sicherzustellen, dass das Training reibungslos abläuft. Nach dem Einrichten des benutzerdefinierten Datenladeprogramms verwendet er die Druckfunktion, um die Bildform und die Stapelgröße zu überprüfen, die von der zuvor eingerichteten Transformation auf 32 festgelegt wurden. Der Kursleiter erklärt auch, wie die Datenerweiterung die Vielfalt des Trainingsdatensatzes künstlich erhöhen kann, und demonstriert die verschiedenen Möglichkeiten, wie Daten mithilfe des Torch-Vision-Transformationsmoduls transformiert werden können, einschließlich Größenänderung, Mittenzuschnitt, Graustufen, zufällige Transformationen und zufällige Erweiterung .

  • 22:30:00 habe etwas über Datenaugmentation gelernt, bei dem es darum geht, Ihren Trainingsdaten durch Anwenden verschiedener Bildtransformationen künstlich Diversität hinzuzufügen. Dies trägt dazu bei, das Modell besser auf unsichtbare Daten zu verallgemeinern. Es gibt viele verschiedene Arten der Datenerweiterung wie Zuschneiden, Ersetzen, Scheren und mehr. PyTorch verfügt über ein Torch-Vision-Paket, das Primitive oder Funktionen enthält, die dabei helfen können, Modelle für eine gute Leistung zu trainieren. Durch die Verwendung von Datenerweiterungen und anderen Verbesserungen konnte PyTorch modernste Modelle mit hoher Genauigkeit trainieren, wie z. B. das ResNet 50-Modell.

  • 22:35:00 In diesem Abschnitt erörtert der Kursleiter Möglichkeiten zur Verbesserung der Modellgenauigkeit, z. B. Optimierung der Lernrate, längeres Training und Verwendung verschiedener Augmentationstechniken. Der Kursleiter konzentriert sich auf die triviale Augment-Technik, die die Kraft der Zufälligkeit nutzt, um Bilder mithilfe einer Reihe von Magnituden-Bins auf verschiedene Weise zu verändern. Der Kursleiter demonstriert, wie man triviale Erweiterungen mithilfe der PyTorch Torch Vision Transforms-Bibliothek implementiert, und bietet einen Link zum Dokument für diejenigen, die daran interessiert sind, mehr darüber zu lesen. Darüber hinaus empfiehlt der Ausbilder, verschiedene Augmentationstechniken und Experimente auszuprobieren, um zu sehen, was für individuelle Probleme am besten funktioniert. Abschließend zeigt der Kursleiter, wie die Erweiterungspipeline getestet wird, indem alle Bildpfade abgerufen und alle Dateien und Ordner, die einem bestimmten Muster entsprechen, erfasst werden.

  • 22:40:00 In diesem Abschnitt demonstriert das Video die Verwendung von Trivial Augment, einer Datenerweiterungstechnik, bei der Transformation von Bildern, um einem Trainingsdatensatz künstlich Diversität hinzuzufügen. Die Kraft der Zufälligkeit wird genutzt, indem aus verschiedenen Augmentationstypen ausgewählt und mit unterschiedlicher Intensität angewendet wird. Dieser Abschnitt zeigt, wie triviales Augment auf zufällig transformierte Bilder angewendet wird, und die Ergebnisse werden angezeigt. Ziel ist es, dass das maschinelle Lernmodell die Muster der manipulierten Bilder lernt und entsprechend identifizieren kann. Der nächste Abschnitt konzentriert sich auf den Aufbau des ersten Computer-Vision-Modells ohne Datenerweiterung unter Verwendung der winzigen VGG-Architektur.

  • 22:45:00 In diesem Abschnitt geht der Moderator durch den Prozess der Erstellung von Transformationen und des Ladens von Daten für ein PyTorch-Modell. Das Ziel besteht darin, Bilder aus dem Datenordner zu laden, in diesem Fall Pizza, Steak und Sushi, und sie in Tensoren umzuwandeln. Die Transformationen umfassen die Größenänderung der Bilder auf 64 x 64 und ihre Umwandlung in Tensoren, sodass die Werte zwischen 0 und 1 liegen. Der Referent erklärt auch, wie Datenlader erstellt und die Stapelgröße und die Anzahl der CPU-Kerne angepasst werden, die für das Laden der Daten bestimmt sind. Die in diesem Beispiel verwendete Stapelgröße ist 32.

  • 22:50:00 In diesem Abschnitt erklärt der Kursleiter, wie Daten mit dem DataLoader von PyTorch geladen und transformiert werden. Der Prozess umfasst das Erstellen einer Transformation und das gleichzeitige Laden und Transformieren der Daten mithilfe der DataLoader-Funktion. Der Kursleiter stellt auch einen einfachen Code zum Erstellen der Tiny VGG-Architektur von Grund auf bereit, der das Erstellen des ersten COM-Blocks umfasst, der aus Schichten wie COM, ReLU, MaxPool und ComToD besteht. Das Modell wird mit Eingabeform, verborgenen Einheiten und Ausgabeformparametern initialisiert. Der Ausbilder ermutigt die Lernenden, mit verschiedenen Werten für Hyperparameter wie Kernelgröße und Schrittweite zu experimentieren.

  • 22:55:00 In diesem Abschnitt sehen wir die Erstellung eines Convolutional Neural Network mit PyTorch. Wir beginnen mit der Definition der Faltungsblöcke und der maximalen Pooling-Schichten für das Netzwerk. Dann replizieren wir denselben Block, um einen anderen zu erstellen, und ändern die Eingabeform, damit sie mit der Ausgabeform übereinstimmt. Anschließend erstellen wir eine Klassifikatorebene, um die Ausgabe von Faltungsblöcken in einen Merkmalsvektor umzuwandeln, und leiten sie durch eine lineare Ebene, um zehn Klassen auszugeben. Schließlich überschreiben wir die Vorwärtsmethode, um die Daten durch die Faltungsblöcke zu leiten und ihre Form bei jedem Schritt auszudrucken. Die Vorwärtsmethode könnte auch so umgeschrieben werden, dass sie eine Operatorfusion enthält, die die GPU-Berechnung beschleunigt.

Teil 24

  • 23:00:00 In diesem Abschnitt erörtert der Kursleiter das Konzept der Operatorfusion, die die wichtigste Optimierung in Deep-Learning-Compilern darstellt. Sie erstellen auch ein Modell mit der winzigen VGG-Architektur für RGB-Farbbilder und überprüfen seine Eingabe- und Ausgabeformen. Der Kursleiter betont, wie wichtig es ist, die Operatorfusion zu verwenden, um die Berechnung großer neuronaler Netze zu beschleunigen, indem der Transport zwischen Speicher und Computer vermieden wird. Sie schlagen auch vor, Dummy-Daten durch das Modell zu leiten, um Fehler zu beheben und sicherzustellen, dass die Vorwärtsmethode ordnungsgemäß funktioniert. Schließlich wird eine Fehlermeldung angezeigt, wenn versucht wird, den Bildstapel aufgrund einer Nichtübereinstimmung der Eingabetypen an das Modell zu übergeben.

  • 23:05:00 In diesem Abschnitt behebt der Ausbilder einen Formfehler für das Modell. Sie erklären, dass Matrizenmultiplikationsregeln erfüllt werden müssen, wenn Tensoren durch lineare Schichten geleitet werden. Der Kursleiter untersucht die Matrixformen und stellt fest, dass 10, die die Anzahl der verborgenen Einheiten darstellt, ein Problem verursacht, wenn sie mit 2560 multipliziert wird. Sie verwenden die Ausgabeform der vorherigen Ebene, um zu bestimmen, dass 10 mit 16 x 16 multipliziert werden sollte, um 2560 zu erhalten. Nach der Korrektur Dies und nachdem sie überprüft haben, ob die Formen des Modells mit der Ausgabe des CNN-Erklärers übereinstimmen, fahren sie mit der weiteren Fehlerbehebung fort und stellen schließlich fest, dass das Entfernen der Polsterung aus den Faltungsschichten die Formen mit der Ausgabe des CNN-Erklärers ausrichten wird.

  • 23:10:00 In diesem Abschnitt stellt der Kursleiter Torch Info vor, ein Paket, mit dem Benutzer eine Zusammenfassung ihrer PyTorch-Modelle ausdrucken können. Zunächst kommentiert der Kursleiter die print-Anweisungen der forward-Methode aus und installiert Torch Info in Google CoLab mit dem Befehl pip install. Der Ausbilder importiert dann eine Zusammenfassung aus Torch Info und verwendet sie, um das Modell und eine Eingabegröße zu übergeben, um die Formen der Daten zu erhalten, die durch das Modell fließen. Der Kursleiter zeigt, wie Torch Info eine Zusammenfassung des Modells ausdruckt, einschließlich der Schichten und ihrer entsprechenden Formen.

  • 23:15:00 In diesem Abschnitt erörtert der Referent das Fackel-Infopaket, das verwendet wird, um eine Vorstellung von den Eingabe- und Ausgabeformen jeder Schicht in einem PyTorch-Modell zu vermitteln. Sie erklären, dass das Paket auch Informationen über die Anzahl der Parameter in jeder Schicht bereitstellt, was bei der Bestimmung der Modellgröße und Speicherbeschränkungen für zukünftige Anwendungen hilfreich sein kann. Der Sprecher merkt an, dass ein Modell, wenn es größer wird und mehr Schichten hat, mehr Parameter hat, was zu einer größeren Eingabegröße und geschätzten Gesamtgröße führt. Im nächsten Abschnitt bewegt sich der Sprecher zum Training eines benutzerdefinierten Datensatzes und erstellt zwei Funktionen – Trainingsschritt und Testschritt – die generisch sind und mit fast jedem Modell und Datenlader verwendet werden können. Die Trainingsschrittfunktion nimmt ein Modell, einen Datenlader, eine Verlustfunktion und einen Optimierer auf und versetzt das Modell in den Trainingsmodus, während Bewertungsmetriken eingerichtet werden.

  • 23:20:00 In diesem Abschnitt erörtert der Referent das Einrichten von Zugverlust- und Zuggenauigkeitswerten für eine Zugschleifenfunktion in PyTorch. Die Daten werden mit dem Data Loader durchgeschleift, und für jeden Stapel wird der Vorwärtsdurchgang durchgeführt, um Vorhersagen zu treffen und den Verlust zu berechnen. Der Optimierer wird dann verwendet, um eine Backpropagation durchzuführen und einen Schritt zu machen. Sobald die Zugschleife abgeschlossen ist, wird die Genauigkeit berechnet, indem die vorhergesagte Klasse abgerufen und mit den richtigen Etiketten verglichen wird. Dies erfolgt außerhalb der Batch-Schleife, wo der Zugverlust und die Zuggenauigkeit angepasst werden, um den Durchschnitt pro Epoche über alle Batches hinweg zu erhalten. Der Sprecher fordert die Zuschauer dann auf, eine Testschleifenfunktion zu schreiben.

  • 23:25:00 In diesem Abschnitt führt der Kursleiter den Prozess der Erstellung eines Testschritts durch, um die Leistung eines PyTorch-Deep-Learning-Modells für einen Datensatz zu bewerten. Der Schritt umfasst das Einrichten des Modells im Evaluierungsmodus, das Durchlaufen der Stapel des Datensatzes, das Senden der Daten an das Zielgerät, das Ausführen eines Vorwärtsdurchgangs, das Berechnen des Verlusts und der Genauigkeit pro Stapel, das Akkumulieren des Verlusts und der Genauigkeit und das Anpassen der Metriken um die Durchschnittswerte zu erhalten. Der Ausbilder schlägt dann vor, eine Trainingsfunktion zu erstellen, um den Trainingsprozess des Modells zu funktionalisieren, was im nächsten Abschnitt behandelt wird.

  • 23:30:00 In diesem Abschnitt führt der Kursleiter durch den Prozess der Erstellung einer Trainingsfunktion, die die Trainingsschritt- und Testschrittfunktionen kombiniert. Die Idee ist, eine Funktion zu erstellen, die diese beiden Funktionen aufruft, um ein Modell mit nur einem Funktionsaufruf zu trainieren und zu evaluieren. Die Zugfunktion nimmt eine Reihe von Modellparametern auf, darunter Optimierer, Datenlader, Verlustfunktion und andere. Der Ausbilder erstellt dann ein leeres Wörterbuch, um die Leistung des Modells während des Trainings zu verfolgen, einschließlich Trainings- und Testverlust und -genauigkeit. Sie durchlaufen dann die Epochen und rufen TQDM auf, um einen Fortschrittsbalken zu erhalten, während das Modell trainiert. Die Train-Funktion ist ein nützliches Werkzeug, um Code nicht neu schreiben zu müssen, wenn Sie mehr Modelle trainieren und vorhandenen Code nutzen.

  • 23:35:00 In diesem Abschnitt erklärt der Instruktor die Trainingsfunktion, die das Training und die Tests mit den Trainings- bzw. Testschrittfunktionen verfolgt. Die Funktion wird für eine bestimmte Anzahl von Epochen ausgeführt und druckt für jede Epoche den Zug- und Testverlust und die Genauigkeit mithilfe einer ausgefallenen Druckanweisung. Die Ergebnisse werden im Ergebniswörterbuch gespeichert, um später für die Analyse verwendet zu werden. Die Zugfunktion nutzt die Zugschrittfunktion und die Testschrittfunktion, um das Modell zu aktualisieren bzw. zu testen. Die Funktion gibt die Ergebnisse der Epoche zurück.

  • 23:40:00 In diesem Abschnitt überprüft der Kursleiter den Fortschritt, der im PyTorch-Workflow erzielt wurde, der die Datenvorbereitung, den Aufbau und die Auswahl eines Modells, den Aufbau einer Trainingsschleife und nun die Herausforderung umfasst, eine Verlustfunktion und einen Optimierer zu erstellen. In Abschnitt 7.7 geht der Kursleiter durch das Trainieren und Evaluieren von Modell Null, dem Basismodell, auf seinem benutzerdefinierten Datensatz. Sie legen die zufälligen Startwerte für die Reproduzierbarkeit fest, instanziieren das winzige VGG-Modell mit einer Eingabeform von drei für Farbbilder, legen die Anzahl der versteckten Einheiten und die Ausgabeform so fest, dass sie mit der Anzahl der Klassen in ihrem Trainingsdatensatz übereinstimmen. Sie wählen auch die Cross-Entropy-Loss-Funktion für die Multiclass-Klassifizierung und probieren den Adam-Optimierer mit einer Lernrate von 0,001 aus.

  • 23:45:00 In diesem Abschnitt zeigt der Kursleiter, wie der Trainingsprozess eines Deep-Learning-Modells getaktet wird. Sie importieren zuerst die Standard-Timer-Klasse von time und starten dann den Timer, bevor sie Model Zero mit der Trainingsfunktion aus einem vorherigen Video trainieren. Dann setzen sie die Zugdaten auf Train Data Loader Simple und die Testdaten auf Test Data Loader Simple sowie den Optimierer auf FriendlyAtomOptimizer und die Verlustfunktion auf den n-Kreuzentropieverlust. Das Modell wird für fünf Epochen trainiert und der Timer wird beendet, um die Gesamttrainingszeit anzuzeigen. Der Ausbilder zeigt dann die Genauigkeitsergebnisse des Modells auf den Trainings- und Testsets, die bei etwa 40 % bzw. 50 % liegen. Sie schlagen vor, verschiedene Methoden zur Verbesserung des Modells auszuprobieren, z. B. das Hinzufügen weiterer Schichten oder versteckter Einheiten, das Anpassen für längere Zeit, das Ändern von Aktivierungsfunktionen und das Anpassen der Lernrate.

  • 23:50:00 In diesem Abschnitt erklärt der Kursleiter, wie Verlustkurven gezeichnet werden, um den Fortschritt des Modells im Laufe der Zeit zu verfolgen. Eine Verlustkurve ist eine Möglichkeit, den Fortschritt eines Modells im Laufe der Zeit zu verfolgen, indem der Verlustwert auf der linken Seite und die Schritte auf der unteren Achse visualisiert werden. Indem wir die Trainings- und Testverlust- und Genauigkeitswerte unseres Ergebniswörterbuchs mit matplotlib darstellen, können wir sehen, wie unser Modell funktioniert, und es auswerten. Der Ausbilder schreibt eine Funktion namens „def plot loss curves“, die ein Ergebniswörterbuch aufnimmt, das die Verlust- und Genauigkeitswerte als Zeichenfolge und eine Liste von Gleitkommazahlen enthält.

  • 23:55:00 In diesem Abschnitt zeigt der Kursleiter, wie Verlustkurven für Trainings- und Testdaten unter Verwendung von Epochen als Zeitmaß erstellt werden. Die Handlung besteht aus zwei Unterhandlungen, einer für den Verlust und einer für die Genauigkeit, mit Etiketten und Titeln für jede von ihnen. Der ideale Trend für eine Verlustkurve ist, dass der Verlust im Laufe der Zeit abnimmt und die Genauigkeit zunimmt. Der Ausbilder ermutigt den Betrachter, mit weiteren Epochen zu experimentieren, um zu sehen, ob der Verlust den optimalen Wert erreicht. Das nächste Video behandelt verschiedene Formen von Verlustkurven, und der Ausbilder empfiehlt einen Leitfaden zur Interpretation von Verlustkurven.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...