Zum Inhalt springen

TensorFlow

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 30. April 2020 um 17:25 Uhr durch Gunnar.Kaestle (Diskussion | Beiträge) (Details von der Einleitung in passenden Abschnitt verschoben). Sie kann sich erheblich von der aktuellen Version unterscheiden.
TensorFlow

Logo
Basisdaten

Entwickler Google Brain Team
Erscheinungsjahr 2015
Aktuelle Version 2.19.0[1]
(12. März 2025)
Aktuelle Vorabversion 1.0.0-alpha[2]
Betriebssystem Linux, macOS, Windows
Programmier­sprache Python, C++
Kategorie Open-Source Programmbibliothek für künstliche Intelligenz
Lizenz Apache 2.0 open source license
www.tensorflow.org

TensorFlow ist ein Framework zur datenstromorientierten Programmierung. Populäre Anwendung findet TensorFlow im Bereich des maschinellen Lernens. TensorFlow wurde ursprünglich vom Google-Brain-Team für den Google-internen Bedarf entwickelt und später unter der Apache-2.0-Open-Source-Lizenz veröffentlicht.[3][4]

Beispiel

In der Forschung und im Produktivbetrieb wird TensorFlow derzeit von verschiedenen Teams in kommerziellen Google-Produkten wie Spracherkennung, Gmail, Google Fotos und Google Suche verwendet[5]. So wird der Kartendienst Maps durch Analyse der von Street View aufgenommenen Fotos, die mit Hilfe einer auf TensorFlow basierenden KI analysiert werden, verbessert.[6] 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.

# TensorFlow laden
import tensorflow as tf

Anschließend wird die Session definiert, unter der TensorFlow die Evaluierung der mathematischen Operationen vornimmt.

# TensorFlow Session definieren
sess = tf.Session()

Zwei Konstanten, x und y werden definiert, die miteinander multipliziert werden.

# Zwei Konstanten im "8-bit signed integer"-Format
x = tf.constant(3, dtype=tf.int8)
y = tf.constant(2, dtype=tf.int8)

# Eine Multiplikation
z = tf.multiply(x, y)

Zur Bestimmung des Ergebnisses wird der Graph an der Stelle z ausgeführt.

# Ausführung
sess.run(z)
6

Tensor Processing Unit (TPU)

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.[7]

TensorFlow-Releases

1.4: Keras

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 seinem Entwickler François Chollet nicht als alleinige Schnittstelle für Tensorflow, sondern als Schnittstelle für viele Frameworks gedacht ist.[8][9]

1.5: TensorFlow Lite

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.[10] 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.[11][12] Ebenfalls vorwiegend für die Ausführung von Modellen geeignet sind APIs zur Verwendung von TensorFlow mit den Programmiersprachen Java, C und Go.[13]

Unterstützte Programmiersprachen

TensorFlow wird aus Python-Programmen heraus benutzt und ist in Python und C++ implementiert. Es unterstützt die Programmiersprachen Python[14] C[15], C++, Go, Java,[16] JavaScript[17] und Swift.[18] Von Drittanbietern gibt es weitere Bibliotheken für die Sprachen C#,[19] Haskell,[20] Julia,[21] R,[22] Scala,[23] Rust,[24] OCaml,[25] und Crystal.[26]

Literatur

  • 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.
  • Rezaul Karim: TensorFlow: Powerful Predictive Analytics with TensorFlow. Packt, 2018, ISBN 978-1-78913-691-3 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).

Einzelnachweise

  1. Release 2.19.0. 12. März 2025 (abgerufen am 31. März 2025).
  2. github.com.
  3. heise online: Machine Learning: TensorFlow 1.0 freigegeben. 17. Februar 2017, abgerufen am 17. Februar 2017.
  4. heise Developer: Maschinelles Lernen: TensorFlow erscheint für Windows. 30. November 2016, abgerufen am 17. Februar 2017.
  5. TensorFlow Uses | TensorFlow. 15. Februar 2017, abgerufen am 17. Februar 2017 (englisch).
  6. heise online: KI: Google verbessert Maps mit Street-View-Bildern. Abgerufen am 9. September 2017.
  7. heise online: Google I/O 2016: "Tensor-Prozessoren" halfen beim Go-Sieg. 19. Mai 2016, abgerufen am 19. Februar 2017.
  8. Release TensorFlow 1.4.0. 2. November 2017, abgerufen am 9. Juli 2018 (englisch).
  9. Good news, Tensorflow chooses Keras! #5050. 16. Januar 2017, abgerufen am 9. Juli 2018 (englisch).
  10. Rainald Menge-Sonnentag: Machine Learning: TensorFlow 1.5 führt Python-Befehle direkt aus. 29. Januar 2018, abgerufen am 30. Januar 2018.
  11. 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]).
  12. Introduction to TensorFlow Lite  |  TensorFlow. Abgerufen am 30. Januar 2018 (englisch).
  13. tensorflow.org: Install r1.5.
  14. All symbols in TensorFlow | TensorFlow. In: TensorFlow. Abgerufen am 18. Februar 2018 (englisch).
  15. TensorFlow Version Compatibility | TensorFlow. In: TensorFlow. Abgerufen am 10. Mai 2018 (englisch): „Some API functions are explicitly marked as "experimental" and can change in backward incompatible ways between minor releases. These include other languages“
  16. API Documentation. Abgerufen am 27. Juni 2018.
  17. TensorFlow.js. Abgerufen am 28. Juni 2018: „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.“
  18. Swift for TensorFlow. Abgerufen am 28. Juni 2018 (englisch): „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.“
  19. TensorFlow.NET: .NET Standard bindings for TensorFlow. 11. Dezember 2018, abgerufen am 11. Dezember 2018.
  20. haskell: Haskell bindings for TensorFlow. tensorflow, 17. Februar 2018, abgerufen am 18. Februar 2018.
  21. malmaud/TensorFlow.jl. In: GitHub. Abgerufen am 28. Juni 2018 (englisch).
  22. tensorflow: TensorFlow for R. RStudio, 17. Februar 2018, abgerufen am 18. Februar 2018.
  23. tensorflow_scala: TensorFlow API for the Scala Programming Language. 17. Februar 2018, abgerufen am 18. Februar 2018.
  24. rust: Rust language bindings for TensorFlow. tensorflow, 17. Februar 2018, abgerufen am 18. Februar 2018.
  25. Laurent Mazare: tensorflow-ocaml: OCaml bindings for TensorFlow. 16. Februar 2018, abgerufen am 18. Februar 2018.
  26. fazibear/tensorflow.cr. In: GitHub. Abgerufen am 10. Oktober 2018 (englisch).