1. Installation und Import
Installation und Importieren von TensorFlow und Keras:
pip install tensorflow
import tensorflow as tf from tensorflow import keras
2. Überprüfen der TensorFlow-Version
print(tf.__version__)
3. Erstellen eines neuronalen Netzes
Ein einfaches neuronales Netzwerk mit drei Schichten:
model = keras.Sequential([ keras.layers.Dense(128, activation='relu', input_shape=(input_dim,)), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(num_classes, activation='softmax') ])
4. Kompilieren des Modells
Das Modell wird mit dem Adam-Optimizer und einer Verlustfunktion kompiliert:
model.compile( optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'] )
5. Modell trainieren
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_val, y_val))
6. Modellbewertung
loss, accuracy = model.evaluate(x_test, y_test) print(f'Test Accuracy: {accuracy:.4f}')
7. Vorhersagen treffen
predictions = model.predict(x_new) predicted_classes = tf.argmax(predictions, axis=1).numpy()
8. Callbacks (z. B. Early Stopping)
Verwendung von Early Stopping während des Trainings:
callback = keras.callbacks.EarlyStopping(monitor='val_loss', patience=3) model.fit(x_train, y_train, epochs=50, validation_data=(x_val, y_val), callbacks=[callback])
9. Modell speichern und laden
model.save("model.h5")
model = keras.models.load_model("model.h5")
10. Erstellen eines benutzerdefinierten Layers
class CustomLayer(keras.layers.Layer): def init(self, units=32): super(CustomLayer, self).init() self.units = units
def build(self, input_shape):
self.w = self.add_weight(shape=(input_shape[-1], self.units), initializer="random_normal", trainable=True)
self.b = self.add_weight(shape=(self.units,), initializer="zeros", trainable=True)
def call(self, inputs):
return tf.matmul(inputs, self.w) + self.b
11. CNN-Modell (Convolutional Neural Network)
cnn_model = keras.Sequential([ keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), keras.layers.MaxPooling2D((2,2)), keras.layers.Conv2D(64, (3,3), activation='relu'), keras.layers.MaxPooling2D((2,2)), keras.layers.Flatten(), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(10, activation='softmax') ])
12. RNN-Modell (Recurrent Neural Network / LSTM)
Ein einfaches RNN-Modell mit LSTM-Schichten:
rnn_model = keras.Sequential([ keras.layers.Embedding(input_dim=10000, output_dim=64), keras.layers.LSTM(64, return_sequences=True), keras.layers.LSTM(64), keras.layers.Dense(1, activation='sigmoid') ])
13. Transfer Learning (VGG16 Beispiel)
Verwendung eines vortrainierten VGG16-Modells:
base_model = keras.applications.VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3)) base_model.trainable = False
model = keras.Sequential([ base_model, keras.layers.Flatten(), keras.layers.Dense(128, activation='relu'), keras.layers.Dense(10, activation='softmax') ])
14. TensorFlow Dataset API nutzen
Erstellung eines TensorFlow-Datasets:
dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))
dataset = dataset.shuffle(10000).batch(32).prefetch(tf.data.experimental.AUTOTUNE)
15. TPU/GPU-Nutzung überprüfen
print("GPU verfügbar:", tf.config.list_physical_devices('GPU'))