Whatsapp Telegram Telegram Call Anrufen

Training und Evaluierung von Modellen in Keras


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 und mean_squared_error für Regressionsaufgaben.
  • Optimierer: Optimierer aktualisieren die Gewichte des Modells basierend auf der Verlustfunktion. Beispiele sind adam, sgd und rmsprop.
  • Metriken: Metriken werden verwendet, um die Leistung des Modells zu bewerten. Beispiele sind accuracy für Klassifikationsaufgaben und mae (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.


CEO Image

Ali Ajjoub

info@ajjoub.com

Adresse 0049-15773651670

Adresse Jacob-winter-platz,1 01239 Dresden

Buchen Sie jetzt Ihren Termin für eine umfassende und individuelle Beratung.

Termin Buchen

Kontaktieren Sie uns

Lassen Sie uns K o n t a k t aufnehmen!