def define_cnn_model(): # 使用Sequential序列模型 model = Sequential() # 卷积层 model.add(Conv2D(32,(3,3),activation="relu",padding="same",input_shape=(200,200,3))) # 第一层即为卷积层,要设置输入进来图片的样式 3是颜色通道个数 # 最大池化层 model.add(MaxPool2D((2,2))) # 池化窗格 model.add(Conv2D(64,(3,3),activation="relu",padding="same",input_shape=(200,200,3))) # 第一层即为卷积层,要设置输入进来图片的样式 3是颜色通道个数 # 最大池化层 model.add(MaxPool2D((2,2))) # 池化窗格 model.add(Conv2D(128,(3,3),activation="relu",padding="same",input_shape=(200,200,3))) # 第一层即为卷积层,要设置输入进来图片的样式 3是颜色通道个数 # 最大池化层 model.add(MaxPool2D((2,2))) # 池化窗格 model.add(Flatten()) # Flatten层 # 全连接层 model.add(Dense(128,activation="relu")) # 128为神经元的个数 model.add(Dense(1,activation="sigmoid")) # 编译模型 opt = SGD(lr= 0.001,momentum=0.9) # 随机梯度 model.compile(optimizer=opt,loss="binary_crossentropy",metrics=["accuracy"]) return model def train_cnn_model(): # 实例化模型 model = define_cnn_model() # 创建图片生成器 datagen = ImageDataGenerator(rescale=1.0/255.0) train_it = datagen.flow_from_directory( r"../Test1/Train", class_mode="binary", batch_size=64, target_size=(200, 200)) # batch_size:一次拿出多少张照片 targe_size:将图片缩放到一定比例 # 训练模型 model.fit(train_it, steps_per_epoch=len(train_it), epochs=20, verbose=1) model.save("my_model.h5") torch.cuda.set_device(0) train_cnn_model() 将上述代码的训练过程绘图
时间: 2023-12-16 07:03:27 浏览: 111
卷积神经网络CNN,用于模式识别
很抱歉,由于我是纯文本的 AI 对话系统,无法绘制图片。但你可以使用 Matplotlib 库来绘制训练过程的图表。具体的步骤是,在训练模型时使用 `history` 对象来存储训练过程中的损失和准确率,然后使用 Matplotlib 库将这些数据可视化。以下是一个示例代码:
```
import matplotlib.pyplot as plt
# 训练模型
history = model.fit(train_it,
steps_per_epoch=len(train_it),
epochs=20,
verbose=1)
# 绘制训练过程图表
plt.plot(history.history['loss'], label='train_loss')
plt.plot(history.history['accuracy'], label='train_acc')
plt.title('Training Loss and Accuracy')
plt.xlabel('Epoch')
plt.ylabel('Loss / Accuracy')
plt.legend()
plt.show()
```
这段代码会绘制出训练过程中的损失和准确率的变化趋势图。你可以根据自己的需要来调整图表的样式和细节。
阅读全文