Rumah > Peranti teknologi > AI > teks badan

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

PHPz
Lepaskan: 2023-05-16 09:34:16
ke hadapan
1248 orang telah melayarinya

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

Dalam artikel ini, kami akan menggunakan TensorFlow dan Keras untuk mencipta pengelas imej yang boleh membezakan antara imej kucing dan anjing. Untuk melakukan ini, kami akan menggunakan set data cats_vs_dogs daripada set data TensorFlow. Set data terdiri daripada 25,000 imej berlabel kucing dan anjing, yang mana 80% digunakan untuk latihan, 10% untuk pengesahan dan 10% untuk ujian.

Memuatkan data

Kami mulakan dengan memuatkan set data menggunakan TensorFlow Datasets. Pisahkan set data kepada set latihan, set pengesahan dan set ujian, masing-masing menyumbang 80%, 10% dan 10% daripada data, dan tentukan fungsi untuk memaparkan beberapa imej sampel dalam set data.

<code>import tensorflow as tfimport matplotlib.pyplot as pltimport tensorflow_datasets as tfds# 加载数据(train_data, validation_data, test_data), info = tfds.load('cats_vs_dogs', split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'], with_info=True, as_supervised=True)# 获取图像的标签label_names = info.features['label'].names# 定义一个函数来显示一些样本图像plt.figure(figsize=(10, 10))for i, (image, label) in enumerate(train_data.take(9)):ax = plt.subplot(3, 3, i + 1)plt.imshow(image)plt.title(label_names[label])plt.axis('off')</code>
Salin selepas log masuk

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

Data prapemprosesan

Sebelum melatih model, data perlu dipraproses. Imej akan diubah saiz kepada saiz seragam 150x150 piksel, nilai piksel akan dinormalisasi antara 0 dan 1, dan data akan diproses secara kelompok supaya ia boleh diimport ke dalam model secara berkelompok.

<code>IMG_SIZE = 150</code>
Salin selepas log masuk
rrree

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

Membina model

Artikel ini akan menggunakan model MobileNet V2 yang telah dilatih sebagai model asas. Dan tambahkan lapisan pengumpulan purata global dan lapisan padat padanya untuk pengelasan. Artikel ini akan membekukan pemberat model asas supaya hanya pemberat lapisan atas dikemas kini semasa latihan.

<code>def format_image(image, label):image = tf.cast(image, tf.float32) / 255.0# Normalize the pixel valuesimage = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))# Resize to the desired sizereturn image, labelbatch_size = 32train_data = train_data.map(format_image).shuffle(1000).batch(batch_size)validation_data = validation_data.map(format_image).batch(batch_size)test_data = test_data.map(format_image).batch(batch_size)</code>
Salin selepas log masuk
rrree

Model latihan

Artikel ini akan melatih model untuk 3 kitaran dan mengujinya pada set pengesahan selepas setiap kitaran untuk mengesahkan. Kami akan menyimpan model selepas latihan supaya kami boleh menggunakannya dalam ujian akan datang.

<code>base_model = tf.keras.applications.MobileNetV2(input_shape=(IMG_SIZE, IMG_SIZE, 3), include_top=False, weights='imagenet')base_model.trainable = False</code>
Salin selepas log masuk
rrree

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

Sejarah Model

Jika anda ingin tahu bagaimana lapisan Mobilenet V2 berfungsi, seperti yang ditunjukkan di bawah adalah hasil daripada lapisan ini.

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

Menilai model

Selepas latihan selesai model akan dinilai pada ujian yang ditetapkan kepada lihat cara ia berfungsi Bagaimana ia berprestasi pada data baharu.

<code>global_average_layer = tf.keras.layers.GlobalAveragePooling2D()prediction_layer = tf.keras.layers.Dense(1)model = tf.keras.Sequential([base_model,global_average_layer,prediction_layer])model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=0.0001),loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),metrics=['accuracy'])</code>
Salin selepas log masuk
Salin selepas log masuk
rrree

Ramalan

Akhir sekali, artikel ini akan menggunakan model untuk meramal beberapa imej sampel dalam set ujian dan menunjukkan hasilnya.

<code>global_average_layer = tf.keras.layers.GlobalAveragePooling2D()prediction_layer = tf.keras.layers.Dense(1)model = tf.keras.Sequential([base_model,global_average_layer,prediction_layer])model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=0.0001),loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),metrics=['accuracy'])</code>
Salin selepas log masuk
Salin selepas log masuk

Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras

Selesai! Kami mencipta pengelas imej yang boleh membezakan antara imej kucing dan anjing dengan menggunakan TensorFlow dan Keras. Dengan beberapa pelarasan dan penalaan halus, pendekatan ini juga boleh digunakan untuk masalah pengelasan imej yang lain.

Atas ialah kandungan terperinci Buat pengelas pembelajaran mendalam untuk gambar kucing dan anjing menggunakan TensorFlow dan Keras. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.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