1. Kompilieren von Modellen (Verlustfunktionen, Optimierer, Metriken)
Bevor ein Keras-Modell trainiert werden kann, muss es kompiliert werden. Dies bedeutet, dass die Verlustfunktion, der Optimierer und die Metriken festgelegt werden müssen.
- Verlustfunktionen: Verlustfunktionen messen, wie gut das Modell während des Trainings abschneidet. Beispiele sind
categorical_crossentropy
für Klassifikationsaufgaben undmean_squared_error
für Regressionsaufgaben. - Optimierer: Optimierer aktualisieren die Gewichte des Modells basierend auf der Verlustfunktion. Beispiele sind
adam
,sgd
undrmsprop
. - Metriken: Metriken werden verwendet, um die Leistung des Modells zu bewerten. Beispiele sind
accuracy
für Klassifikationsaufgaben undmae
(mittlerer absoluter Fehler) für Regressionsaufgaben.
Beispiel:
from keras.models import Sequential
from keras.layers import Dense
# Erstellen eines einfachen Modells
model = Sequential()
model.add(Dense(64, input_dim=100, activation='relu'))
model.add(Dense(10, activation='softmax'))
# Kompilieren des Modells
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Ausgabe der Modellzusammenfassung
print(model.summary())
Ausgabe:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 64) 6464
_________________________________________________________________
dense_1 (Dense) (None, 10) 650
=================================================================
Total params: 7,114
Trainable params: 7,114
Non-trainable params: 0
_________________________________________________________________
In diesem Beispiel wird ein einfaches Modell erstellt und mit dem adam
-Optimierer, der Verlustfunktion categorical_crossentropy
und der Metrik accuracy
kompiliert.
2. Training von Modellen (Fit, Evaluate, Predict)
Nach dem Kompilieren des Modells kann das Training mit den Trainingsdaten beginnen. Keras bietet dafür die Methode fit
. Nach dem Training kann das Modell mit evaluate
bewertet und mit predict
Vorhersagen getroffen werden.
Beispiel:
import numpy as np
# Generieren von Dummy-Daten
X_train = np.random.random((1000, 100))
y_train = np.random.randint(10, size=(1000, 1))
y_train = keras.utils.to_categorical(y_train, 10)
X_test = np.random.random((200, 100))
y_test = np.random.randint(10, size=(200, 1))
y_test = keras.utils.to_categorical(y_test, 10)
# Training des Modells
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
# Evaluierung des Modells
score = model.evaluate(X_test, y_test, batch_size=32)
print(f'Testverlust: {score[0]}, Testgenauigkeit: {score[1]}')
# Vorhersagen treffen
predictions = model.predict(X_test)
print(predictions)
Ausgabe:
Epoch 1/10
25/25 [==============================] - 0s 6ms/step - loss: 2.3095 - accuracy: 0.1025 - val_loss: 2.2728 - val_accuracy: 0.1200
...
Testverlust: 2.2918407917022705, Testgenauigkeit: 0.12000000476837158
[[0.10654385 0.08993284 0.09180387 ... 0.10359582 0.10558955 0.10493355]
[0.09507825 0.098024 0.10434818 ... 0.09724689 0.10289461 0.09999177]
...
[0.09996153 0.10248744 0.09723192 ... 0.10055625 0.09892122 0.10085055]]
In diesem Beispiel wird das Modell mit Dummy-Daten trainiert, bewertet und zur Vorhersage verwendet.
3. Verwendung von Callbacks (EarlyStopping, ModelCheckpoint, etc.)
Callbacks sind leistungsstarke Werkzeuge, um während des Trainings bestimmte Aktionen auszuführen. Häufig verwendete Callbacks sind EarlyStopping
(zum Stoppen des Trainings, wenn die Leistung auf den Validierungsdaten nicht mehr verbessert wird) und ModelCheckpoint
(zum Speichern des Modells bei Verbesserung der Validierungsleistung).
Beispiel:
from keras.callbacks import EarlyStopping, ModelCheckpoint
# Initialisieren von Callbacks
early_stopping = EarlyStopping(monitor='val_loss', patience=3)
model_checkpoint = ModelCheckpoint('best_model.h5', monitor='val_loss', save_best_only=True)
# Training des Modells mit Callbacks
model.fit(X_train, y_train, epochs=50, batch_size=32, validation_split=0.2,
callbacks=[early_stopping, model_checkpoint])
In diesem Beispiel wird das Training gestoppt, wenn die Validierungsverlustfunktion sich drei aufeinanderfolgende Epochen lang nicht verbessert. Das beste Modell wird in der Datei best_model.h5
gespeichert.
4. Visualisierung des Trainings mit TensorBoard
TensorBoard ist ein Visualisierungswerkzeug, das in TensorFlow integriert ist und zur Überwachung und Visualisierung des Trainingsprozesses verwendet werden kann. Keras bietet eine einfache Möglichkeit, TensorBoard zu integrieren.
Beispiel:
from keras.callbacks import TensorBoard
# Initialisieren des TensorBoard-Callbacks
tensorboard = TensorBoard(log_dir='./logs', histogram_freq=1, write_graph=True, write_images=True)
# Training des Modells mit TensorBoard-Callback
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2,
callbacks=[tensorboard])
Nach dem Training können Sie TensorBoard starten und die Logs visualisieren:
tensorboard --logdir=./logs
Besuchen Sie dann http://localhost:6006/ in Ihrem Webbrowser, um die Visualisierungen zu sehen.
In diesem Beispiel wird TensorBoard verwendet, um den Trainingsprozess zu visualisieren, einschließlich des Verlaufs der Verlust- und Metrikwerte.
Diese detaillierten Erklärungen und Beispiele sollten Ihnen helfen, das Training und die Evaluierung von Keras-Modellen besser zu verstehen und in Ihren eigenen Projekten anzuwenden.