Suchen

Definition Was ist Keras?

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

Keras ermöglicht die schnelle Implementierung neuronaler Netzwerke für Anwendungen des Deep Learnings. Es handelt sich um eine Open-Source-Bibliothek, die in Python geschrieben ist und zusammen mit Frameworks wie TensorFlow oder Theano verwendet werden kann.

Firmen zum Thema

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

Die Open-Source-Bibliothek Keras wurde größtenteils vom Google-Programmierer François Chollet im Rahmen des ONEIROS-Projekts (Open-ended Neuro-Electronic Intelligent Robot Operating System) entwickelt. Es handelt sich um eine Open-Source-basierte Bibliothek, die für die schnelle Implementierung neuronaler Netze vorgesehen ist und nicht als Deep-Learning-Framework, sondern eher als Interface für diese Frameworks zu verstehen ist. Keras ist in Python geschrieben und auf Machine-Learning-Frameworks wie TensorFlow, Theano, MXNet oder dem Microsoft Cognitive Toolkit einsetzbar.

Die Bibliothek stellt ein High-Level-API zur Verfügung, das die Programmierung von neuronalen Netzen stark vereinfacht. Der Fokus von Keras liegt auf einer schnellen Bereitstellung von neuronalen Netzen für experimentelle Zwecke. Unterstützt werden sowohl rekurrente als auch convolutionale Netzwerke sowie CPUs (Central Processing Units) und GPUs (Graphics Processing Units). Zentrale Merkmale der Open-Source-Bibliothek sind die Erweiterbarkeit, Modularität und Einfachheit.

Neuronale Netze lassen sich mit den von Keras bereitgestellten abstrakten Lösungen erstellen und konfigurieren, ohne sich im Detail mit den darunter liegenden Backends beschäftigen zu müssen. TensorFlow unterstützt Keras mittlerweile direkt innerhalb seiner Kernbibliothek. Der Name Keras geht auf den griechischen Begriff für Horn zurück und ist eine Referenz einer literarischen Darstellung aus Homers Odyssee.

Die wichtigsten Vorteile durch den Einsatz von Keras

Der Einsatz der Bibliothek Keras zusammen mit den Machine-Learning-Frameworks bietet folgende Vorteile:

  • Schnelles und einfaches Prototyping von neuronalen Netzen,
  • Bedienerfreundlichkeit, Modularität und Erweiterbarkeit,
  • Unterstützung von rekurrenten und convolutionalen Netzwerken sowie von Kombinationen beider Netze,
  • Unterstützung von CPUs und GPUs sowie eine
  • Unterstützung des Multi-Input- und Multi-Output-Trainings

Wichtige Prinzipien in der Entwicklung von Keras

Ein wichtiges Prinzip in der Entwicklung von Keras ist die Ausrichtung der Bibliothek auf Menschen und nicht auf Maschinen. Bedienerfreundlichkeit stehen daher im Fokus. Keras stellt konsistente und einfach zu verwendende APIs bereit. Die Bibliothek minimiert den Aufwand für die gängigen Anwendungsszenarien. User erhalten bei Fehlern in der Nutzung der Bibliothek ein aussagekräftiges Feedback und können Probleme leicht beheben.

Zentrales Designprinzip von Keras ist die Modularität. Verschiedene voll konfigurierbare Module sind fast beliebig kombinierbar. Mithilfe der Kombination einzelner Module für neuronale Layer, Kostenfunktionen, Aktivierungsfunktionen oder Initialisierungsschemata lassen sich schnell neue Modelle schaffen. Neue Module können einfach als neue Klassen oder Funktionen hinzugefügt werden. Die Modelle sind in nativem Python-Code beschrieben, der leicht zu debuggen und kompakt ist.

Funktionen und Erweiterungen von Keras 2

Nach der Veröffentlichung des ersten Releases von Keras im Jahr 2015 liegt die Bibliothek mittlerweile (Stand 2018) in der zweiten Hauptversion vor. Gegenüber der ersten Version ist die API einfacher zu nutzen und folgt den Konventionen von TensorFlow. Die API ist inzwischen als integrierter Teil der Machine-Learning-Bibliothek innerhalb des Frameworks TensorFlow verfügbar. Grundsätzlich liegt Keras in zwei Implementierungen vor: als externe, leicht erweiterbare Bibliothek für Frameworks wie Theano oder TensorFlow und als interne Umsetzung direkt in der Bibliothek von TensorFlow.

Unterstützung verschiedener Plattformen durch Keras

Als eine besondere Stärke von Keras lassen sich die definierten Modelle auf einer Vielzahl verschiedener Plattformen bereitstellen. Mobile Geräte von Apple, die das Betriebssystem iOS verwenden, werden über Apples CoreML unterstützt. Für Android-Geräte existiert die TensorFlow-Android-Runtime-Umgebung. Sollen Modelle browserbasiert bereitgestellt werden, sind JavaScript-basierte Laufzeitumgebungen wie Keras.js und WebDNN verfügbar. Weitere mit Keras nutzbare Plattformen sind:

  • Die Google Cloud mit TensorFlow-Serving,
  • Java Virtual Machine (JVM) mit dem DL4J Modelimport von SkyMind und
  • der Raspberry Pi

Einsatz und Verwendung von Keras

Ende 2017 hatte Keras bereits über 200.000 individuelle Nutzer. Die Bibliothek kommt sowohl für Forschungsprojekte als auch im industriellen Umfeld für professionelle Anwendungen zum Einsatz. Neben TensorFlow selbst zählt Keras zu den am häufigsten für Deep-Learning-Anwendungen eingesetzten Bibliotheken. Keras-Funktionen sind beispielsweise bei Anwendungen der Unternehmen Uber, Netflix, Yelp oder Instacart zu finden. Vor allem junge Start-up-Unternehmen, die Deep Learning als zentrale Komponente ihrer Produkte sehen, setzen auf Keras. Große wissenschaftliche Organisationen wie die NASA oder CERN verwenden in verschiedensten Projekten ebenfalls die beliebte Deep-Learning-Bibliothek.

(ID:45365055)

Über den Autor