基于卷积神经网络的垃圾分类与识别的实验代码
时间: 2024-09-26 21:11:41 浏览: 60
基于卷积神经网络(Convolutional Neural Network, CNN)的垃圾分类和识别实验通常涉及深度学习框架,如TensorFlow或PyTorch。以下是一个简化的Python示例,使用Keras库,它是在TensorFlow之上的高级API:
```python
# 导入所需的库
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 定义CNN模型结构
def create_model(input_shape):
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=input_shape))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten()) # 将二维数据展平成一维
model.add(Dense(128, activation='relu')) # 全连接层
model.add(Dense(num_classes, activation='softmax')) # 输出层,num_classes取决于分类类别数
return model
# 使用实际数据集的图像形状设置输入尺寸
input_shape = (image_height, image_width, channels)
model = create_model(input_shape)
# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 加载训练数据、预处理并训练模型
# train_dataset, val_dataset = load_and_preprocess_data() # 自定义函数加载数据
model.fit(train_dataset, epochs=epochs, validation_data=val_dataset)
# 测试模型
test_loss, test_acc = model.evaluate(test_dataset)
print(f"Test accuracy: {test_acc}")
阅读全文