Suchen

Definition Was ist Theano?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Theano ist eine Library für die Programmiersprache Python, mit der sich mathematische Ausdrücke auf CPUs oder GPUs in hoher Geschwindigkeit berechnen lassen. Die Library kann beispielsweise für die Programmierung neuronaler Netze und das Machine Learning eingesetzt werden.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Theano ist ein Open-Source-Projekt und wurde ursprünglich von der LISA-Gruppe (heute MILA) an der Universität von Montreal in Quebec, Kanada entwickelt. Es handelt sich um eine Library unter BSD-Lizenz für die Programmiersprache Python, die frei verwendbar ist. Die Software ist nach einer griechischen Philosophin und Mathematikerin benannt, die angeblich die Frau des Pythagoras war.

Im Kern ist Theano eine Library und ein Compiler für die Berechnung mathematischer Ausdrücke in Python. Die Library verwandelt die Ausdrücke in effizient ausführbaren Code, der die Programmbibliothek NumPy für die einfache Handhabung von Matrizen, großen mehrdimensionalen Arrays und Vektoren verwendet. Der erzeugte Code kann sehr schnell und transparent von CPUs oder GPUs ausgeführt werden. Die intelligente Codeoptimierung von Theano sorgt dafür, dass die Ressourcen der Hardware maximal nutzbar sind.

Ziel der Entwicklung von Theano ist es, Ausdrücke performant zu berechnen, die für große neuronale Netzwerk-Algorithmen und das Deep Learning oder Machine Learning benötigt werden. Die Entwicklung begann bereits im Jahr 2007. Damit war Theano eine der ersten Libraries dieses Typs überhaupt. Für viele Programmierer ist die Library eine Art Standard für die Entwicklung und Forschung im Bereich des Deep Learnings geworden. Es ist wichtig zu verstehen, dass Theano keine Machine Learning Library ist und Programmierer nicht mit vorgefertigten, trainierbaren neuronalen Netzwerkmodellen versorgt, sondern die Werkzeuge und Berechnungsmethoden zur Verfügung stellt, die für den Aufbau eigener Machine Learning Modelle notwendig sind. Theano bildet die Basis für viele Machine Learning Toolkits wie beispielsweise Blocks, Keras, PyLearn2 oder Lasagne. Die aktuellste Theano Version 1.0.0 wurde Ende 2017 veröffentlicht.

Die wesentlichen Merkmale von Theano

Theano ermöglicht es, mathematische Ausdrücke zu definieren, zu optimieren und zu evaluieren und ist auf multidimensionale Arrays spezialisiert. Der entstehende Code ist wesentlich effizienter als beispielsweise manuell erstellter C-Code. Dadurch eignet sich die Library besonders gut für die Berechnung von mathematischen Ausdrücken und großen, komplexen Datenmengen, wie sie im Deep-Learning-Umfeld Verwendung finden. Die Software kann C-Code für viele mathematische Operationen erzeugen. Typische Merkmale von Theano und der Code-Optimierung sind beispielsweise:

  • transparente Verwendung von GPUs und CPUs und Berechnung mit gleichem Code
  • Vermeidung redundanter Berechnungen
  • arithmetische Vereinfachungen
  • automatische Differenzierungen
  • enge Zusammenarbeit mit NumPy
  • Optimierung von Geschwindigkeit und Stabilität
  • dynamische Generierung von C-Code
  • Selbstdiagnose für das Erkennen von Fehlern und Instabilitäten

Die erweiterten Funktionen von Theano im Vergleich zu Python und NumPy

Die Verwendung der Library Theano erweitert die Funktionen der Programmiersprache Python und der Programmbibliothek NumPy. Zwar stehen viele Basisfunktionen für neuronale Netze und das Deep Learning grundsätzlich auch ohne die Library Theano zur Verfügung, doch erleichtert und optimiert Theano die Entwicklung und Ausführung solcher Anwendungen enorm. Die Verbesserungen und Erweiterungen im Vergleich zu Python und NumPy ohne Theano sind unter anderem folgende:

  • schnelle Ausführung von Code zur Berechnung von mathematischen Ausdrücken auf CPUs oder GPUs
  • automatisches Erstellen symbolischer Graphen
  • automatisches Erkennen instabiler mathematischer Ausdrücke und Verwendung stabilerer Algorithmen

Voraussetzungen für die Nutzung von Theano

Theano steht für verschiedene Betriebssysteme zur Verfügung. Die Library kann beispielsweise auf Systemen mit Mac OS, Ubuntu, Windows oder CentOS installiert werden. Für die unterschiedlichen Betriebssysteme stehen jeweils ausführliche Installationsanleitungen bereit. Theano setzt Umgebungen mit Python 2 oder Python 3 und NumPy voraus. Weitere Bedingungen für die Installation sind SciPy und BLAS. Optional kann die Library mit weiterer Software wie Sphinx, pydot-ng, libgpuarray, pycuda und skcuda oder nose zusammenarbeiten. Für die Berechnung auf NVIDIA GPUs werden die NVIDIA CUDA Treiber und die NVIDIA SDK empfohlen.

(ID:45250822)

Über den Autor