利用卷积神经网络写出基于深度学习的好坏香蕉识别的代码
时间: 2023-08-04 16:09:32 浏览: 45
好的,以下是一个简单的基于卷积神经网络的好坏香蕉识别的代码示例:
```python
import tensorflow as tf
# 构建卷积神经网络模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(16, (3, 3), activation='relu', input_shape=(100, 100, 3)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(32, (3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Conv2D(64, (3, 3), activation='relu'),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 加载数据集
train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1/255)
train_generator = train_datagen.flow_from_directory(
'banana_dataset',
target_size=(100, 100),
batch_size=32,
class_mode='binary')
# 训练模型
model.fit(
train_generator,
steps_per_epoch=100,
epochs=10)
# 预测新的香蕉图片
img = tf.keras.preprocessing.image.load_img('new_banana.jpg', target_size=(100, 100))
img_array = tf.keras.preprocessing.image.img_to_array(img)
img_array = tf.expand_dims(img_array, 0)
predictions = model.predict(img_array)
print(predictions)
```
在这个代码示例中,我们使用了一个包含三个卷积层和两个全连接层的卷积神经网络,用于识别好坏香蕉。我们从文件夹中加载了香蕉数据集,并使用ImageDataGenerator类进行数据预处理。然后,我们使用fit()函数对模型进行训练,最后使用predict()函数对新的香蕉图片进行预测。