kerasErste Schritte mit Keras


Bemerkungen

Leitsatz s

  • Modularität

Unter einem Modell wird eine Sequenz oder ein Diagramm von eigenständigen, vollständig konfigurierbaren Modulen verstanden, die mit möglichst geringen Einschränkungen zusammengesteckt werden können. Insbesondere sind neuronale Schichten, Kostenfunktionen, Optimierer, Initialisierungsschemata, Aktivierungsfunktionen und Regularisierungsschemata allesamt eigenständige Module, die Sie kombinieren können, um neue Modelle zu erstellen.

  • Minimalismus

Jedes Modul sollte kurz und einfach gehalten werden. Jeder Code sollte beim ersten Lesen transparent sein. Keine schwarze Magie: Es schadet der Iterationsgeschwindigkeit und der Innovationsfähigkeit.

  • Einfache Erweiterbarkeit

Neue Module lassen sich einfach hinzufügen (als neue Klassen und Funktionen), und vorhandene Module bieten zahlreiche Beispiele. Die einfache Erstellung neuer Module ermöglicht eine umfassende Ausdrucksfähigkeit, wodurch Keras für fortgeschrittene Forschung geeignet ist.

  • Arbeit mit Python

Keine separaten Modellkonfigurationsdateien in einem deklarativen Format. Modelle werden in Python-Code beschrieben, der kompakt ist, einfacher zu debuggen ist und eine einfache Erweiterbarkeit ermöglicht.

Erste Schritte mit Keras: 30 Sekunden

Die Kerndatenstruktur von Keras ist ein Modell , eine Möglichkeit, Ebenen zu organisieren. Der Hauptmodelltyp ist das sequentielle Modell, ein linearer Stapel von Schichten. Für komplexere Architekturen sollten Sie die funktionale Keras-API verwenden .

Hier ist das sequentielle Modell:

from keras.models import Sequential

model = Sequential()
 

Das Stapeln von Ebenen ist so einfach wie .add() :

from keras.layers import Dense, Activation

model.add(Dense(output_dim=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(output_dim=10))
model.add(Activation("softmax"))
 

Wenn Ihr Modell gut aussieht, konfigurieren Sie seinen Lernprozess mit .compile() :

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
 

Bei Bedarf können Sie Ihren Optimierer weiter konfigurieren. Ein Kernprinzip von Keras besteht darin, die Dinge einigermaßen einfach zu gestalten, während der Benutzer jederzeit die volle Kontrolle hat (die ultimative Kontrolle ist die einfache Erweiterbarkeit des Quellcodes).

from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
 

Sie können nun Ihre Trainingsdaten in Batches durchlaufen:

model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)
 

Alternativ können Sie Ihrem Modell manuell Chargen zuführen:

model.train_on_batch(X_batch, Y_batch)
 

Bewerten Sie Ihre Leistung in einer Zeile:

loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32)
 

Oder generieren Sie Vorhersagen für neue Daten:

classes = model.predict_classes(X_test, batch_size=32)
proba = model.predict_proba(X_test, batch_size=32)
 

Ein Fragebeantwortungssystem, ein Bildklassifizierungsmodell, eine Neural Turing Machine, ein word2vec Embedder oder ein anderes Modell ist genauso schnell. Die Grundideen für tiefes Lernen sind einfach. Warum sollte ihre Umsetzung schmerzhaft sein?

Sie finden fortgeschrittenere Modelle: Fragen beantworten mit Speichernetzwerken, Textgenerierung mit gestapelten LSTMs usw. in Beispielordnern .

Installation und Einrichtung

Keras ist eine High-Level-Bibliothek für neuronale Netzwerke, die in Python geschrieben wurde und auf TensorFlow oder Theano ausgeführt werden kann. Es wurde mit dem Ziel entwickelt, schnelles Experimentieren zu ermöglichen. In der Lage zu sein, mit möglichst geringer Verzögerung von der Idee zum Ergebnis zu gelangen, ist der Schlüssel für eine gute Forschung. Verwenden Sie Keras, wenn Sie eine tiefe Lernbibliothek benötigen, die:

  • Ermöglicht einfaches und schnelles Prototyping (durch vollständige Modularität, Minimalismus und Erweiterbarkeit).
  • Unterstützt sowohl Faltungsnetzwerke als auch wiederkehrende Netzwerke sowie Kombinationen aus beiden.
  • Unterstützt beliebige Konnektivitätsschemata (einschließlich Multi-Input- und Multi-Output-Training).
  • Läuft nahtlos auf CPU und GPU.

Installation

Keras verwendet die folgenden Abhängigkeiten:

  • neugierig, scipy
  • Pyyaml
  • HDF5 und h5py (optional, erforderlich, wenn Sie Modellspeicher- / Ladefunktionen verwenden)
  • Optional, wird jedoch empfohlen, wenn Sie CNNs verwenden: cuDNN
  • Scikit-Image (optional, erforderlich, wenn Sie die eingebauten Funktionen von Keras für die Vorverarbeitung und Erweiterung von Bilddaten verwenden)

Keras ist eine High-Level-Bibliothek, die neben anderen Low-Level-Bibliotheken für die Tensorverarbeitung und -manipulation eine praktische Machine Learning-API bietet, die als Backends bezeichnet wird . Zurzeit kann Keras zusätzlich zu den drei verfügbaren Backends verwendet werden: TensorFlow , Theano und CNTK .

Theano wird automatisch installiert, wenn Sie Keras mit pip installieren. Wenn Sie Theano manuell installieren möchten, lesen Sie bitte die Theano- Installationsanweisungen.

TensorFlow ist eine empfohlene Option, und Keras verwendet standardmäßig das TensorFlow- Backend, sofern verfügbar. Die Installation von TensorFlow ist am einfachsten

$ pip install tensorflow
 

Wenn Sie es manuell installieren möchten, lesen Sie die TensorFlow- Installationsanweisungen.

Um Keras zu installieren, cd in den Keras- Ordner und führen Sie den Installationsbefehl aus:

$ python setup.py install
 

Sie können Keras auch von PyPI installieren:

$ pip install keras
 

Aufbau

Wenn Sie Keras mindestens einmal ausgeführt haben, finden Sie die Keras-Konfigurationsdatei unter:

~/.keras/keras.json
 

Wenn es nicht vorhanden ist, können Sie es erstellen. Die Standardkonfigurationsdatei sieht folgendermaßen aus:

{
    "image_dim_ordering": "tf",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}  
 

Wechsel von TensorFlow zu Theano

Standardmäßig verwendet Keras TensorFlow als Tensor-Manipulationsbibliothek. Wenn Sie ein anderes Backend verwenden möchten, ändern Sie einfach das Feld-Backend in "theano" oder "tensorflow" , und Keras verwendet die neue Konfiguration, wenn Sie Keras-Code ausführen.