Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Erstellen Sie Deep-Learning-Modelle mit TensorFlow und Keras

Erstellen Sie Deep-Learning-Modelle mit TensorFlow und Keras

王林
王林nach vorne
2024-01-24 09:18:05520Durchsuche

Erstellen Sie Deep-Learning-Modelle mit TensorFlow und Keras

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:163.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen