Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Warum kann TensorFlow maschinelles Lernen entwickeln?

Warum kann TensorFlow maschinelles Lernen entwickeln?

WBOY
WBOYnach vorne
2023-04-08 21:21:041610Durchsuche

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.

Warum kann TensorFlow maschinelles Lernen entwickeln?

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.

So funktioniert TensorFlow

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.

Verwenden Sie TensorFlow mit Python.

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.

TensorFlow mit JavaScript verwenden

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.

TensorFlow Lite

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.

Warum TensorFlow verwenden? Der größte Vorteil, den TensorFlow für die Entwicklung maschinellen Lernens bietet, ist die Abstraktion. Entwickler können sich auf die gesamte Anwendungslogik konzentrieren, anstatt sich mit den Details der Implementierung von Algorithmen zu befassen oder herauszufinden, wie die Ausgabe einer Funktion richtig mit der Eingabe einer anderen verknüpft werden kann. TensorFlow kümmert sich um die Details hinter den Kulissen.

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

Einige Details der TensorFlow-Implementierung erschweren es, für einige Trainingsjobs vollständig deterministische Modelltrainingsergebnisse zu erhalten. Manchmal unterscheidet sich ein auf einem System trainiertes Modell geringfügig von einem auf einem anderen System trainierten Modell, obwohl ihnen genau dieselben Daten zur Verfügung stehen. Die Gründe für diesen Unterschied sind knifflig – ein Grund ist, wie und wo die Zufallszahlen gesetzt werden; der andere hat mit einem nicht deterministischen Verhalten bei der Verwendung von GPUs zu tun. Der 2.0-Zweig von TensorFlow verfügt über die Option, mit wenigen Codezeilen Determinismus im gesamten Workflow zu aktivieren. Diese Funktion geht jedoch zu Lasten der Leistung und sollte nur beim Debuggen von Arbeitsabläufen verwendet werden.

TensorFlow konkurriert mit PyTorch, CNTK und MXNet.

TensorFlow konkurriert mit vielen anderen Frameworks für maschinelles Lernen. PyTorch, CNTK und MXNet sind die drei Hauptframeworks, die viele der gleichen Anforderungen erfüllen. Werfen wir einen kurzen Blick darauf, wo sie im Vergleich zu TensorFlow hervorstechen und wo sie hinterherhinken:

PyTorch ist in Python gebaut und weist viele weitere Ähnlichkeiten mit TensorFlow auf: Hardware-Beschleunigungskomponenten unter der Haube, die ein sofort einsatzbereites Design ermöglichen basiert auf einem hochgradig interaktiven Entwicklungsmodell und enthält bereits viele nützliche Komponenten. PyTorch ist oft die bessere Wahl für die schnelle Entwicklung von Projekten, die in kurzer Zeit betriebsbereit sein müssen, aber TensorFlow eignet sich besser für größere Projekte und komplexere Arbeitsabläufe.
  • CNTK ist ein Microsoft Cognitive Toolkit, das TensorFlow ähnelt, indem es Diagrammstrukturen zur Beschreibung des Datenflusses verwendet, sich jedoch hauptsächlich auf die Erstellung neuronaler Deep-Learning-Netzwerke konzentriert. CNTK kann viele neuronale Netzwerkjobs schneller verarbeiten und verfügt über eine breitere API (Python, C++, C#, Java). Derzeit ist es jedoch nicht so einfach zu erlernen oder bereitzustellen wie TensorFlow. Außerdem ist es nur unter der GNU GPL 3.0-Lizenz verfügbar, während TensorFlow unter der liberaleren Apache-Lizenz verfügbar ist. Und CNTK hat weniger positive Entwicklungen. Die letzte Hauptversion war im Jahr 2019.
  • Apache MXNet wird von Amazon als führendes Deep-Learning-Framework auf AWS übernommen und kann nahezu linear über mehrere GPUs und mehrere Maschinen hinweg skaliert werden. MXNet unterstützt auch eine breite Palette von Sprach-APIs – Python, C++, Scala, R, JavaScript, Julia, Perl, Go – obwohl seine native API nicht so einfach zu verwenden ist wie TensorFlow. Es gibt auch eine viel kleinere Community von Benutzern und Entwicklern.


Originaltitel:​

​Was ist TensorFlow? Die Bibliothek für maschinelles Lernen erklärt​

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen