Suchen

Definition Was ist Caffe?

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

Caffe ist ein Deep Learning Framework, das sich durch seine Schnelligkeit, gute Skalierbarkeit und Modularität auszeichnet. Caffe arbeitet mit CPUs und GPUs und ist über mehrere Prozessoren skalierbar. Das Deep Learning Framework eignet sich für industrielle Anwendungen in den Bereichen maschinelles Sehen, Multimedia und Sprache.

Firmen zum Thema

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

Das Deep Learning Framework Caffe wurde ursprünglich von Yangqing Jia am Vision and Learning Center der University of California in Berkeley entwickelt. Mitglieder der Community haben die Entwicklung von Caffe weiter vorangetrieben.

Das Framework ist auf Schnelligkeit, Modularität und Skalierbarkeit optimiert und stellt Lösungen sowohl für akademische Forschungsprojekte als auch für industrielle Anwendungen im Bereich Künstlicher Intelligenz bereit. Spezialisiert ist das Framework auf Sprache, maschinelles Sehen und Multimedia. Das Framework steht als freie Open-Source-Software unter BSD-Lizenz zur Verfügung. Geschrieben ist Caffe in C++.

Yahoo hat Caffe in Spark integriert und ermöglicht Deep Learning auf verteilten Architekturen. Dank der hohen Lern- und Verarbeitungsgeschwindigkeit von Caffe und der Verwendung von CPUs und GPUs lassen sich Deep-Learning-Modelle innerhalb weniger Stunden trainieren. Neueste Nvidia-Pascal-Grafikprozessoren unterstützen Caffe und bieten bis zu 65 Prozent höhere Geschwindigkeiten. Es sind bis zu 60 Millionen Bilder pro Tag prozessierbar (Stand 2018). Die vorgesehenen Programmierschnittstellen des Frameworks sind Python und MATLAB.

Die wichtigsten Merkmale von Caffe

Wichtige Merkmale von Caffe sind die Unterstützung von Central Processing Units und Graphics Processing Units sowie der von Nvidia entwickelten Programmiertechnik CUDA (Compute Unified Device Architecture) und der ebenfalls von diesem Hersteller stammenden cuDNN-Bibliothek (CUDA Deep Neural Network). Damit ist das Framework vor allem auf Geschwindigkeit ausgelegt. Als Plattform für Caffe kommen Linux-Distributionen wie Ubuntu aber auch MacOS und Docker-Container in Frage. Für Windows-Installationen stehen auf GitHub ebenfalls Lösungen zur Verfügung. Für die AWS-Cloud von Amazon ist Caffe als vorkonfiguriertes Amazon Machine Image (AMI) erhältlich.

Caffe kann mit vielen verschiedenen Typen von Deep-Learning-Architekturen arbeiten. Das Framework eignet sich für diverse Architekturen wie CNN (Convolutional Neural Network), LRCN (Long-term Recurrent Convolutional Network), LSTM (Long Short-Term Memory) oder vollständig verbundene neuronale Netze. Für den User stehen eine Vielzahl vorkonfigurierter Trainingsmodelle bereit, die einen schnellen Einstieg in das maschinelle Lernen und die Nutzung von neuronalen Netzen erlauben.

Caffe und die Bedeutung von Blobs

Caffe speichert und bearbeitet Daten in sogenannten Blobs. Ein Blob ist ein Standard-Array und vereinheitlichtes Speicherinterface. Die Eigenschaften eines Blobs beschreiben, wie Informationen in den verschiedenen Layern des neuronalen Netzes abgelegt sind und wie sie über das Netz kommuniziert werden.

Caffe und Spark-Anwendungen

Speziell für die Integration von Deep-Learning-Anwendungen in Spark hat Yahoo CaffeOnSpark entwickelt. Die Machine-Learning-Bibliothek MLlib von Spark bietet zwar eine Unterstützung einiger für das Deep Learning benötigter Algorithmen, doch erst mit CaffeOnSpark lassen sich leistungsfähige Deep-Learning-Anwendungen einfach umsetzen. CaffeOnSpark kombiniert das Deep Learning mit dem Cluster Computing Framework. Selbst umfangreiche Datenmengen aus Hadoop lassen sich dank der Integration für Anwendungen des Deep Learnings verarbeiten. Das Deep Learning kann direkt auf verteilten, clusterbasierten Big-Data-Architekturen ausgeführt werden. Die notwendigen Datenbewegungen reduzieren sich und höhere Verarbeitungsgeschwindigkeiten im Vergleich zu herkömmlichen Lösungen sind die Folge. Verfügbar ist CaffeOnSpark über GitHub.

Weitere Deep Learning Frameworks neben Caffe

Caffe steht in Konkurrenz zu weiteren Deep-Learning-Frameworks. Typische Frameworks aus diesem Bereich sind:

  • das Microsoft Cognitive Toolkit – auch als Computational Network Toolkit (CNTK) bekannt
  • TensorFlow
  • Theano
  • Veles

Das Microsoft Cognitive Toolkit zeichnet sich durch die Möglichkeit der Nutzung verteilter Architektur aus und erlaubt das Trainieren von Modellen über mehrere Server und CPUs/GPUs hinweg. Anwendung findet das Microsoft Cognitive Toolkit beispielsweise für Microsoft-Dienste wie Cortana, Skype, Bing oder für die Spielekonsole Xbox.

TensorFlow wurde vom Google-Brain-Team entwickelt und wird unter anderem von Unternehmen des Alphabet-Konzerns und in Anwendungen wie Google Mail, Google Search, Google Translate oder Yahoo verwendet. TensorFlow steht wie Caffe auf GitHub frei zur Verfügung. Als Besonderheit bietet TensorFlow die Möglichkeit die verwendeten Graphen in der grafischen Oberfläche TensorBoard zu visualisieren.

Das Framework Theano wurde am Montreal Institute for Learning Algorithms (MILA) entwickelt. Es zeichnet sich durch die Unterstützung von GPUs und erweiterte Fehlerdiagnose- und Fehlererkennungsfunktionen aus.

Veles stammt von russischen Entwicklern und ist für das Deep Learning auf verteilten Plattformen konzipiert. Modelle können auf PCs und auf High-Performance-Clustern trainiert werden. Extrahierte Applikationen lassen sich als Cloud-Service zur Verfügung stellen.

(ID:45367476)

Über den Autor