Heim > Artikel > Technologie-Peripheriegeräte > Warum kann TensorFlow maschinelles Lernen entwickeln?
Maschinelles Lernen ist ein komplexes Thema, aber da Frameworks für maschinelles Lernen (wie TensorFlow von Google) den Prozess der Datenbeschaffung, des Trainings von Modellen, der Bereitstellung von Vorhersagen und der Verbesserung zukünftiger Ergebnisse vereinfachen, ist die Implementierung von maschinellem Lernen weitaus weniger entmutigend als früher.
TensorFlow wurde vom Google Brain-Team erstellt und erstmals 2015 der Öffentlichkeit zugänglich gemacht. TensorFlow ist eine Open-Source-Bibliothek für numerische Berechnungen und groß angelegtes maschinelles Lernen. TensorFlow bündelt eine breite Palette von Modellen und Algorithmen für maschinelles Lernen und Deep Learning (auch als neuronale Netze bezeichnet) und macht sie durch gängige Programmiermetaphern nutzbar. Es bietet eine praktische Front-End-API zum Erstellen von Anwendungen mit Python oder JavaScript und deren Ausführung in leistungsstarkem C++.
TensorFlow konkurriert mit Frameworks wie PyTorch und Apache MXNet, um tiefe neuronale Netze für handschriftliche Ziffernklassifizierung, Bilderkennung, Worteinbettungen, wiederkehrende neuronale Netze, Sequenz-zu-Sequenz-Modelle für maschinelle Übersetzung, Verarbeitung natürlicher Sprache und Simulationsbasis zu trainieren und auszuführen zu PDE (partielle Differentialgleichungen). Das Beste daran ist, dass TensorFlow Produktionsvorhersagen im großen Maßstab unterstützt und dasselbe Modell für das Training verwendet.
TensorFlow verfügt außerdem über eine umfangreiche Bibliothek vorab trainierter Modelle, die Sie in Ihren eigenen Projekten verwenden können. Sie können den Code im TensorFlow Model Park auch als Beispiele für Best Practices für das Training Ihrer eigenen Modelle verwenden.
TensorFlow ermöglicht Entwicklern die Erstellung von Datenflussdiagrammen – Strukturen, die beschreiben, wie sich Daten durch ein Diagramm oder eine Reihe von Verarbeitungsknoten bewegen. Jeder Knoten im Diagramm stellt eine mathematische Operation dar, und jede Verbindung oder Kante zwischen Knoten ist ein mehrdimensionales Datenarray oder ein Tensor.
TensorFlow-Anwendungen können auf den praktischsten Zielen ausgeführt werden: lokale Maschine, Cluster in der Cloud, iOS- und Android-Geräte, CPU oder GPU. Wenn Sie Googles eigene Cloud verwenden, können Sie TensorFlow zur weiteren Beschleunigung auf dem benutzerdefinierten TensorFlow Processing Unit (TPU)-Chip von Google ausführen. Die von TensorFlow erstellten resultierenden Modelle können jedoch auf den meisten Geräten bereitgestellt werden, die zur Bereitstellung von Vorhersagen verwendet werden.
TensorFlow 2.0 wurde im Oktober 2019 veröffentlicht, mit verschiedenen Verbesserungen des Frameworks basierend auf Benutzerfeedback, wodurch es einfacher zu verwenden (z. B. durch die Verwendung der relativ einfachen KerasAPI für das Modelltraining) und leistungsfähiger wird. Verteiltes Training ist dank neuer APIs einfacher durchzuführen und die Unterstützung von TensorFlow Lite ermöglicht die Bereitstellung von Modellen auf einer größeren Vielfalt von Plattformen. Allerdings muss Code, der für frühere Versionen von TensorFlow geschrieben wurde, umgeschrieben werden – manchmal nur geringfügig, manchmal erheblich –, um die neuen TensorFlow 2.0-Funktionen optimal nutzen zu können.
Trainierte Modelle können verwendet werden, um Vorhersagen als Dienst über einen Docker-Container mithilfe der REST- oder gRPC-API bereitzustellen. Für erweiterte Service-Szenarien können Sie Kubernetes verwenden.
TensorFlow bietet Programmierern all diese Funktionen über die Python-Sprache. Python ist einfach zu erlernen und zu verwenden und bietet bequeme Möglichkeiten, auszudrücken, wie Abstraktionen auf hoher Ebene miteinander gekoppelt werden. TensorFlow wird von den Python-Versionen 3.7 bis 3.10 unterstützt und obwohl es möglicherweise auf früheren Versionen von Python funktioniert, kann dies nicht garantiert werden.
Knoten und Tensoren in TensorFlow sind Python-Objekte, und TensorFlow-Anwendungen selbst sind Python-Anwendungen. Die eigentlichen mathematischen Operationen werden jedoch nicht in Python ausgeführt. Die über TensorFlow bereitgestellten Transformationsbibliotheken sind als leistungsstarke C++-Binärdateien geschrieben. Python steuert einfach den Fluss zwischen den verschiedenen Teilen und stellt Programmierabstraktionen auf hoher Ebene bereit, um sie miteinander zu verbinden.
Für fortgeschrittene Arbeiten in TensorFlow (Erstellen von Knoten und Ebenen und deren Verknüpfung) wird die Keras-Bibliothek verwendet. Die Keras-API ist täuschend einfach; ein grundlegendes dreischichtiges Modell kann in weniger als 10 Codezeilen definiert werden, und derselbe Trainingscode erfordert nur wenige Codezeilen. Wenn Sie jedoch „den Schleier lüften“ und detailliertere Arbeiten ausführen möchten, beispielsweise das Schreiben Ihrer eigenen Trainingsschleifen, können Sie dies tun.
Python ist die beliebteste Sprache für die Arbeit mit TensorFlow und maschinelles Lernen. Doch mittlerweile ist JavaScript auch die erstklassige Sprache für TensorFlow, und einer der großen Vorteile von JavaScript besteht darin, dass es überall dort läuft, wo es einen Webbrowser gibt.
TensorFlow.js (JavaScript-TensorFlow-Bibliothek genannt) nutzt die WebGL-API, um Berechnungen mit jeder im System verfügbaren GPU zu beschleunigen. Es kann auch mit einem WebAssembly-Backend durchgeführt werden, das schneller ist als ein normales JavaScript-Backend, wenn Sie es nur auf der CPU ausführen, aber es ist am besten, wann immer möglich die GPU zu verwenden. Mit vorgefertigten Modellen können Sie einfache Projekte zum Laufen bringen und erhalten eine Vorstellung davon, wie die Dinge funktionieren.
Geschulte TensorFlow-Modelle können auch auf Edge-Computing oder mobilen Geräten wie iOS- oder Android-Systemen bereitgestellt werden. Das TensorFlow Lite-Toolset optimiert TensorFlow-Modelle für die gute Ausführung auf solchen Geräten, indem es Ihnen ermöglicht, Modellgröße und Genauigkeit abzuwägen. Kleinere Modelle (d. h. 12 MB vs. 25 MB oder sogar 100+ MB) sind weniger genau, aber der Genauigkeitsverlust ist normalerweise gering und wird durch die Geschwindigkeit und Energieeffizienz des Modells ausgeglichen.
TensorFlow bietet mehr Komfort für Entwickler, die TensorFlow-Anwendungen debuggen und verstehen müssen. Jede Diagrammoperation kann einzeln und transparent ausgewertet und geändert werden, anstatt das gesamte Diagramm als einzelnes undurchsichtiges Objekt zu erstellen und es auf einmal auszuwerten. Dieser sogenannte „Eager Execution Mode“ war in älteren Versionen von TensorFlow als Option verfügbar und ist mittlerweile Standard.
Mit der TensorBoard Visualization Suite können Sie über ein interaktives webbasiertes Dashboard überprüfen und analysieren, wie Ihre Diagramme ausgeführt werden. Mit dem Dienst Tensorboard.dev (gehostet von Google) können Sie in TensorFlow geschriebene Experimente zum maschinellen Lernen hosten und teilen. Es kann kostenlos zum Speichern von bis zu 100 MB Skalardaten, 1 GB Tensordaten und 1 GB binären Objektdaten verwendet werden. (Bitte beachten Sie, dass alle in Tensorboard.dev gehosteten Daten öffentlich sind. Verwenden Sie sie daher bitte nicht für sensible Projekte.)
TensorFlow erhält auch viele Vorteile durch die Unterstützung der erstklassigen kommerziellen Organisationen von Google. Google hat das schnelle Wachstum des Projekts vorangetrieben und viele wichtige Produkte entwickelt, die die Bereitstellung und Verwendung von TensorFlow vereinfachen. Der oben beschriebene TPU-Chip zur Leistungsbeschleunigung in Google Cloud ist nur ein Beispiel.
Verwendung von TensorFlow für das deterministische Modelltraining
TensorFlow konkurriert mit PyTorch, CNTK und MXNet.
Originaltitel:
Das obige ist der detaillierte Inhalt vonWarum kann TensorFlow maschinelles Lernen entwickeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!