首页 > 解决方案 > 定义 CNN 模型的架构

问题描述

您好,我现在正在使用 Keras 训练 CNN,但我需要定义模型,添加不同的层来转换我的 80x60 图像。我已经编写了下一件事:

model = Sequential()
model.add(Conv2D(5, kernel_size=(5, 5),activation='linear',input_shape=(80,60,1),padding='same'))
model.add(LeakyReLU(alpha=0.1))
model.add(MaxPooling2D((2, 2),padding='same'))
model.add(Conv2D(5, (5, 5), activation='linear',padding='same'))
model.add(LeakyReLU(alpha=0.1))
model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
model.add(Conv2D(5, (5, 5), activation='linear',padding='same'))
model.add(LeakyReLU(alpha=0.1))
model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
model.add(Flatten())
model.add(Dense(100, activation='linear'))
model.add(Dense(1, activation='linear'))

这是我一直在跟踪的图像来编码它。我的代码正确吗? CNN 层

标签: pythonkerasconv-neural-network

解决方案


您的模型图: 在此处输入图像描述 模型的正确代码是:

model = Sequential()
model.add(Conv2D(5, kernel_size=(5, 5),activation='relu',input_shape=(80,60,1),padding='same'))
model.add(MaxPooling2D((2, 2),padding='same'))
model.add(Conv2D(5, (5, 5), activation='relu',padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
model.add(Conv2D(5, (5, 5), activation='relu',padding='same'))
model.add(MaxPooling2D(pool_size=(2, 2),padding='same'))
model.add(Conv2D(5, (5, 5), activation='relu',padding='same'))
model.add(Flatten())
model.add(Dense(100, activation='linear'))
model.add(Dense(1, activation='linear'))

图像显示了ReLU激活功能,但您使用LeakyReLU了,我更正了它。
而且,最后会有另一层Conv2D,你错过了。


推荐阅读