TensorFlow und Keras sind derzeit eines der beliebtesten Deep-Learning-Frameworks. Sie stellen nicht nur High-Level-APIs bereit, um das Erstellen und Trainieren von Deep-Learning-Modellen zu vereinfachen, sondern bieten auch eine Vielzahl von Ebenen und Modelltypen, um die Erstellung verschiedener Arten von Deep-Learning-Modellen zu erleichtern. Daher werden sie häufig zum Trainieren umfangreicher Deep-Learning-Modelle verwendet.
Wir werden TensorFlow und Keras verwenden, um ein Deep-Learning-Modell für die Bildklassifizierung zu erstellen. In diesem Beispiel verwenden wir den CIFAR-10-Datensatz, der 10 verschiedene Kategorien mit 6000 32x32-Farbbildern pro Kategorie enthält.
Zuerst müssen wir die notwendigen Bibliotheken und Datensätze importieren. Wir werden TensorFlow Version 2.0 und die Keras-API verwenden, um das Modell zu erstellen. Hier ist der Code zum Importieren der Bibliothek und des Datensatzes: „Python Tensorflow astf importieren aus Tensorflow Import Keras aus tensorflow.keras.datasets mnist importieren #Datensatz importieren (x_train, y_train), (x_test, y_test) = mnist.load_data() „ Das Obige ist der Code zum Importieren der Bibliothek und des Datensatzes. Wir verwenden die „tensorflow“-Bibliothek, um das Modell zu erstellen und verwenden den „mnist“-Datensatz als Beispieldatensatz.
import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers from tensorflow.keras.datasets import cifar10 # 加载CIFAR-10数据集 (x_train, y_train), (x_test, y_test) = cifar10.load_data() # 将像素值缩放到0到1之间 x_train = x_train.astype("float32") / 255.0 x_test = x_test.astype("float32") / 255.0 # 将标签从整数转换为one-hot编码 y_train = keras.utils.to_categorical(y_train, 10) y_test = keras.utils.to_categorical(y_test, 10)
Als nächstes definieren wir ein Faltungs-Neuronales Netzwerkmodell. Wir werden drei Faltungsschichten und drei Pooling-Schichten verwenden, um Merkmale zu extrahieren, und dann zwei vollständig verbundene Schichten zur Klassifizierung. Das Folgende ist unsere Modelldefinition:
model = keras.Sequential( [ # 第一个卷积层 layers.Conv2D(32, (3, 3), activation="relu", input_shape=(32, 32, 3)), layers.MaxPooling2D((2, 2)), # 第二个卷积层 layers.Conv2D(64, (3, 3), activation="relu"), layers.MaxPooling2D((2, 2)), # 第三个卷积层 layers.Conv2D(128, (3, 3), activation="relu"), layers.MaxPooling2D((2, 2)), # 展平层 layers.Flatten(), # 全连接层 layers.Dense(128, activation="relu"), layers.Dense(10, activation="softmax"), ] )
In diesem Modell verwenden wir die ReLU-Aktivierungsfunktion, eine häufig verwendete nichtlineare Funktion, die dem Modell beim Erlernen komplexer nichtlinearer Beziehungen helfen kann. Wir haben auch die Softmax-Aktivierungsfunktion für die Klassifizierung mehrerer Klassen verwendet.
Jetzt können wir das Modell kompilieren und mit dem Training beginnen. Wir werden den Adam-Optimierer und die Cross-Entropy-Loss-Funktion für das Modelltraining verwenden. Hier ist der Code: model.compile(optimizer='adam', loss='categorical_crossentropy') model.fit(X_train, y_train, epochs=10, batch_size=32)
# 编译模型 model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"]) # 训练模型 history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
Nachdem das Training abgeschlossen ist, können wir den Testsatz verwenden, um die Leistung des Modells zu bewerten. Hier ist unser Code zur Bewertung des Modells:
# 在测试集上评估模型 test_loss, test_acc = model.evaluate(x_test, y_test) print("Test loss:", test_loss) print("Test accuracy:", test_acc)
Schließlich können wir den Trainingsverlauf verwenden, um den Trainings- und Validierungsverlust und die Genauigkeit des Modells darzustellen. Das Folgende ist der Code zum Zeichnen des Trainingsverlaufs:
import matplotlib.pyplot as plt # 绘制训练和验证损失 plt.plot(history.history["loss"], label="Training loss") plt.plot(history.history["val_loss"], label="Validation loss") plt.xlabel("Epoch") plt.ylabel("Loss") plt.legend() plt.show() # 绘制训练和验证准确率 plt.plot(history.history["accuracy"], label="Training accuracy") plt.plot(history.history["val_accuracy"], label="Validation accuracy") plt.xlabel("Epoch") plt.ylabel("Accuracy") plt.legend() plt.show()
Oben ist der gesamte Code für ein Beispiel eines Deep-Learning-Modells basierend auf TensorFlow und Keras. Wir haben ein Faltungs-Neuronales Netzwerkmodell unter Verwendung des CIFAR-10-Datensatzes für Bildklassifizierungsaufgaben erstellt.
Das obige ist der detaillierte Inhalt vonErstellen Sie Deep-Learning-Modelle mit TensorFlow und Keras. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!