Zum Inhalt springen

TensorFlow

aus Wikipedia, der freien Enzyklopädie
TensorFlow

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Logo
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Entwickler Google Brain Team
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Betriebssystem Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Programmier­sprache Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Kategorie Open-Source Programmbibliothek für künstliche Intelligenz
Lizenz Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
www.tensorflow.org

TensorFlow ist ein Framework zur datenstromorientierten Programmierung. Populäre Anwendung findet TensorFlow im Bereich des maschinellen Lernens. Der Name TensorFlow stammt von Rechenoperationen, welche von künstlichen neuronalen Netzen auf mehrdimensionalen Datenfeldern, sog. Tensoren, ausgeführt werden.

TensorFlow wurde ursprünglich vom Google-Brain-Team für den Google-internen Bedarf entwickelt und 2015 unter der Apache-2.0-Open-Source-Lizenz veröffentlicht.<ref name="heise-news" /><ref name="heise-dev" />

Beispiel[Bearbeiten]

In der Forschung und im Produktivbetrieb wird TensorFlow derzeit in kommerziellen Google-Produkten wie der Spracherkennung, Gmail, Google Fotos und Google-Suche verwendet<ref>TensorFlow Uses | TensorFlow. 15. Februar 2017, archiviert vom Vorlage:IconExternal am 24. November 2018; abgerufen am 17. Februar 2017 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>. So wird der Kartendienst Maps durch Analyse der von Street View aufgenommenen Fotos von Straßenschildern verbessert, die mit Hilfe eines auf TensorFlow basierenden neuronalen Netzes analysiert werden.<ref>Zbigniew Wojna, Alex Gorban, Dar-Shyang Lee, Kevin Murphy, Qian Yu, Yeqing Li, Julian Ibarz: Attention-based Extraction of Structured Information from Street View Imagery. Abgerufen am 1. Mai 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Viele dieser Produkte nutzten früher die Vorgängersoftware DistBelief.

In TensorFlow werden mathematische Operationen in Form eines Graphen dargestellt. Der Graph repräsentiert hierbei den sequenziellen Ablauf aller von TensorFlow durchzuführenden Operationen. Das folgende Beispiel soll die grundlegende Funktionsweise unter Verwendung von Python darstellen:

Zunächst wird die TensorFlow-Bibliothek geladen. <syntaxhighlight lang="python" line="1">

  1. TensorFlow laden

import tensorflow as tf </syntaxhighlight>

Anschließend wird die Session definiert, unter der TensorFlow die Evaluierung der mathematischen Operationen vornimmt. <syntaxhighlight lang="python" line="1">

  1. TensorFlow Session definieren

sess = tf.Session() </syntaxhighlight>

Zwei Konstanten, x und y werden definiert, die miteinander multipliziert werden. <syntaxhighlight lang="python" line="1">

  1. Zwei Konstanten im "8-bit signed integer"-Format

x = tf.constant(3, dtype=tf.int8) y = tf.constant(2, dtype=tf.int8)

  1. Eine Multiplikation

z = tf.multiply(x, y) </syntaxhighlight>

Zur Bestimmung des Ergebnisses wird der Graph an der Stelle z ausgeführt. <syntaxhighlight lang="python" line="1">

  1. Ausführung

sess.run(z) 6 </syntaxhighlight> Skriptfehler: Ein solches Modul „Vorlage:Siehe auch“ ist nicht vorhanden.

Tensor Processing Unit (TPU)[Bearbeiten]

Von Google wurden Tensor Processing Units, also anwendungsspezifische Chips, entwickelt, um das maschinelle Lernen zu unterstützen bzw. zu beschleunigen. Mit dieser Spezialhardware werden die Algorithmen der Programmbibliothek TensorFlow besonders schnell und effizient verarbeitet.<ref>heise online: Google I/O 2016: „Tensor-Prozessoren“ halfen beim Go-Sieg. 19. Mai 2016, abgerufen am 19. Februar 2017.</ref>

TensorFlow-Releases[Bearbeiten]

1.4: Keras[Bearbeiten]

Seit dem Release von TensorFlow 1.4 ist Keras, eine Open-Source-Deep-Learning-Bibliothek, geschrieben in Python, Teil der TensorFlow Core API. Jedoch wird Keras als eigenständige Bibliothek weitergeführt, da es laut seines Entwicklers François Chollet nicht als alleinige Schnittstelle für TensorFlow, sondern als Schnittstelle für viele Frameworks gedacht ist.<ref>Release TensorFlow 1.4.0. 2. November 2017, abgerufen am 9. Juli 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref><ref>Good news, Tensorflow chooses Keras! #5050. 16. Januar 2017, abgerufen am 9. Juli 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

1.5: TensorFlow Lite[Bearbeiten]

Ab der Version TensorFlow 1.5 wird der Lebenszyklus von Modellen differenziert unterstützt. Zum einen lässt sich nach Import von tensorflow.contrib.eager mit enable_eager_execution() ein Modus einschalten, in dem TensorFlow die in der Python-Shell abgesetzten Befehle direkt ausführt, ohne eine Session. So lässt sich interaktiv entwickeln.<ref>Rainald Menge-Sonnentag: Machine Learning: TensorFlow 1.5 führt Python-Befehle direkt aus. 29. Januar 2018, abgerufen am 30. Januar 2018.</ref> Zum anderen wird zusätzlich TensorFlow Lite ausgeliefert, eine schlanke Variante, mit der sich Modelle nicht trainieren, sondern nur ausführen lassen. Sie ist, wie schon TensorFlow Mobile, speziell für mobile Endgeräte konzipiert.<ref>Sebastian Grüner: Deep Learning: Tensorflow Lite wird noch kleiner als Tensorflow Mobile – Golem.de. 15. November 2017 (golem.de [abgerufen am 30. Januar 2018]).</ref><ref>Introduction to TensorFlow Lite  |  TensorFlow. Abgerufen am 30. Januar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Ebenfalls vorwiegend für die Ausführung von Modellen geeignet sind APIs zur Verwendung von TensorFlow mit den Programmiersprachen Java, C und Go.<ref>tensorflow.org: Install r1.5.</ref>

2.0: TensorFlow 2.0[Bearbeiten]

Mit der am 30. September 2019 veröffentlichten Version 2.0<ref>TensorFlow 2.0 is now available! Abgerufen am 31. Mai 2020 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> von TensorFlow wurde die API aufgeräumt und erweitert. Insbesondere wurde die Keras-Schnittstelle zur neuen Standard-API für die Modellierung von Deep-Learning-Modellen. Einzelne Funktionen wurden erweitert; so speichert TensorFlow 2 Modelle nun inklusive Gewichten und Berechnungen, was die Weitergabe deutlich vereinfacht.

Unterstützte Programmiersprachen[Bearbeiten]

TensorFlow wird aus Python-Programmen heraus benutzt und ist in Python und C++ implementiert. Es unterstützt die Programmiersprachen Python<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig All symbols in TensorFlow | TensorFlow.] In: TensorFlow. , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 18. Februar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>, C<ref name="C API, not C++ API, stable">Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig TensorFlow Version Compatibility.] In: TensorFlow. , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 10. Mai 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „Some API functions are explicitly marked as “experimental” and can change in backward incompatible ways between minor releases. These include other languages“Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>, C++, Go, Java,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig API Documentation.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 27. Juni 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> JavaScript<ref name="js">Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig TensorFlow.js.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 28. Juni 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „TensorFlow.js has an API similar to the TensorFlow Python API, however it does not support all of the functionality of the TensorFlow Python API.“Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> und Swift.<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Swift for TensorFlow.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 28. Juni 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)): „Swift for TensorFlow is an early stage research project. It has been released to enable open source development and is not yet ready for general use by machine learning developers. The API is subject to change at any time.“Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Von Drittanbietern gibt es weitere Bibliotheken für die Sprachen C#,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig TensorFlow.NET: .NET Standard bindings for TensorFlow.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 11. Dezember 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Haskell,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig haskell: Haskell bindings for TensorFlow.] tensorflow, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 18. Februar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Julia,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig malmaud/TensorFlow.jl.] In: GitHub. , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 28. Juni 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> R,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig tensorflow: TensorFlow for R.] RStudio, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 18. Februar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Scala,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig tensorflow_scala: TensorFlow API for the Scala Programming Language.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 18. Februar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Rust,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig rust: Rust language bindings for TensorFlow.] tensorflow, , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 18. Februar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> OCaml,<ref>Vorlage:Cite book/NameVorlage:Cite book/Name: [Internetquelle: archiv-url ungültig tensorflow-ocaml: OCaml bindings for TensorFlow.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 18. Februar 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> und Crystal.<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig fazibear/tensorflow.cr.] In: GitHub. , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 10. Oktober 2018 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>

Siehe auch[Bearbeiten]

  • PyTorch – ein alternatives Deep-Learning-Framework, das eine stark Python-optimierte Struktur aufweist.

Literatur[Bearbeiten]

  • Tom Hope, Yehezkel S. Resheff, Itay Lieder: Einführung in TensorFlow: Deep-Learning-Systeme programmieren, trainieren, skalieren und deployen. Hrsg.: O'Reilly. 1. Auflage. mitp, 2018, ISBN 978-3-96009-074-8.
  • Matthieu Deru, Alassane Ndiaye: Deep Learning mit TensorFlow, Keras und TensorFlow.js. 2. Auflage. Rheinwerk Verlag, 2020, ISBN 978-3-8362-7425-8.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

<references responsive> <ref name="heise-news"> Machine Learning: TensorFlow 1.0 freigegeben. In: heise online. 17. Februar 2017, abgerufen am 17. Februar 2017. </ref> <ref name="heise-dev"> Maschinelles Lernen: TensorFlow erscheint für Windows. In: heise Developer. 30. November 2016, abgerufen am 17. Februar 2017. </ref> </references>