CNN自动检测代码样例
时间: 2023-07-09 14:20:26 浏览: 43
以下是一个使用CNN进行钢板自动检测的代码样例,包括数据预处理、建立CNN模型、模型训练和测试等步骤:
```python
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np
# 数据预处理
x_train = np.load('x_train.npy')
y_train = np.load('y_train.npy')
x_test = np.load('x_test.npy')
y_test = np.load('y_test.npy')
# 建立CNN模型
model = keras.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
# 模型编译
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# 模型训练
history = model.fit(x_train, y_train, epochs=10,
validation_data=(x_test, y_test))
# 模型测试
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print('\nTest accuracy:', test_acc)
```
其中,x_train、y_train、x_test、y_test分别代表训练集和测试集的输入图像和标签,模型使用了3个卷积层和2个全连接层,使用了Adam优化器和二元交叉熵损失函数进行模型编译和训练,最终输出模型在测试集上的准确率。