【发布时间】:2019-01-25 08:52:47
【问题描述】:
考虑以下 CNN 架构,(code fragment was referred from this link)
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
我的问题基本上是关于 CNN 的训练过程。
- 当您训练模型时,Flatten 层的输出是否会在 epoch 期间发生变化?
- 如果(Flatten 层的)输出发生变化,是否意味着在 Flatten 层(Conv2d->Conv2D->MaxPooling2D->Flatten 之间)之前也存在反向传播过程?
- 在 MaxPooling2D 层(或展平之前的任何层)之后使用 Dropout 的必要性是什么?
【问题讨论】:
-
@Downvoter 你能解释一下对这个问题投反对票的原因吗?
标签: python python-3.x tensorflow keras keras-layer