Rumah > Peranti teknologi > AI > teks badan

Bina model pembelajaran mendalam dengan TensorFlow dan Keras

王林
Lepaskan: 2024-01-24 09:18:05
ke hadapan
534 orang telah melayarinya

Bina model pembelajaran mendalam dengan TensorFlow dan Keras

TensorFlow dan Keras kini merupakan salah satu rangka kerja pembelajaran mendalam yang paling popular. Mereka bukan sahaja menyediakan API peringkat tinggi untuk memudahkan pembinaan dan melatih model pembelajaran mendalam, tetapi juga menyediakan pelbagai lapisan dan jenis model untuk memudahkan pembinaan pelbagai jenis model pembelajaran mendalam. Oleh itu, ia digunakan secara meluas untuk melatih model pembelajaran mendalam berskala besar.

Kami akan menggunakan TensorFlow dan Keras untuk membina model pembelajaran mendalam untuk klasifikasi imej. Dalam contoh ini, kami akan menggunakan set data CIFAR-10, yang mengandungi 10 kategori berbeza dengan 6000 imej warna 32x32 bagi setiap kategori.

Pertama, kita perlu mengimport perpustakaan dan set data yang diperlukan. Kami akan menggunakan TensorFlow versi 2.0 dan API Keras untuk membina model. Berikut ialah kod untuk mengimport pustaka dan set data: ```python import aliran tensor astf daripada import tensorflow keras daripada tensorflow.keras.datasets import mnist #Import set data (x_train, y_train), (x_test, y_test) = mnist.load_data() ``` Di atas ialah kod untuk mengimport pustaka dan set data. Kami menggunakan pustaka `tensorflow` untuk membina model dan menggunakan set data `mnist` sebagai set data contoh.

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)
Salin selepas log masuk

Seterusnya, kami akan mentakrifkan model rangkaian neural konvolusi. Kami akan menggunakan tiga lapisan konvolusi dan tiga lapisan gabungan untuk mengekstrak ciri, dan kemudian dua lapisan bersambung sepenuhnya untuk pengelasan. Berikut ialah definisi model kami:

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"),
    ]
)
Salin selepas log masuk

Dalam model ini, kami menggunakan fungsi pengaktifan ReLU, iaitu fungsi tak linear yang biasa digunakan yang boleh membantu model mempelajari hubungan tak linear yang kompleks. Kami juga menggunakan fungsi pengaktifan softmax untuk klasifikasi berbilang kelas.

Kini kita boleh menyusun model dan memulakan latihan. Kami akan menggunakan pengoptimum Adam dan fungsi kehilangan entropi silang untuk latihan model. Inilah kodnya: 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))
Salin selepas log masuk

Selepas latihan selesai, kita boleh menggunakan set ujian untuk menilai prestasi model. Berikut ialah kod kami untuk menilai model:

# 在测试集上评估模型
test_loss, test_acc = model.evaluate(x_test, y_test)

print("Test loss:", test_loss)
print("Test accuracy:", test_acc)
Salin selepas log masuk

Akhir sekali, kami boleh menggunakan sejarah latihan untuk merancang kehilangan latihan dan pengesahan serta ketepatan model. Berikut ialah kod untuk melukis sejarah latihan:

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()
Salin selepas log masuk

Di atas ialah keseluruhan kod untuk contoh model pembelajaran mendalam berdasarkan TensorFlow dan Keras. Kami membina model rangkaian saraf konvolusi menggunakan set data CIFAR-10 untuk tugas pengelasan imej.

Atas ialah kandungan terperinci Bina model pembelajaran mendalam dengan TensorFlow dan Keras. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:163.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan