Erstellen Sie Deep-Learning-Modelle mit TensorFlow und Keras

王林
Freigeben: 2024-01-24 09:18:05
nach vorne
518 Leute haben es durchsucht

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)
Nach dem Login kopieren

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"),
    ]
)
Nach dem Login kopieren

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))
Nach dem Login kopieren

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)
Nach dem Login kopieren

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()
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:163.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!