卷积神经网络的结构问题

时间:2020-04-29 17:32:50

标签: deep-learning neural-network conv-neural-network batch-normalization

我不知道那里发生了什么,但是以下代码存在一些严重问题:

model=Sequential([])
block1

model.add(Conv2D(64,(3,3),activation="relu",input_shape=(64,64,3)))
model.add(BatchNormalization())
model.add(Conv2D(64,(3,3),activation="relu"))
model.add(BatchNormalization())
model.add(MaxPooling2D(2,2))

block2

model.add(Conv2D(32,(5,5),activation="relu"))
model.add(BatchNormalization())
model.add(Conv2D(32,(5,5),activation="relu"))
model.add(BatchNormalization())
model.add(MaxPooling2D(2,2))



block3
model.add(Flatten())
model.add(BatchNormalization())
model.add(Dense(256,activation="relu"))
model.add(BatchNormalization())
model.add(Dense(3,activation="softmax"))

一旦我进入训练阶段,它就会停在这两个阶段之间,而实际上并不会在第2或第3个时期冻结。

我认为系统内存有问题,但不是。

  1. 如果我从第3个块代码工作中删除批量归一化。
  2. 如果我再次添加block2,则意味着3个CNN块,然后密集的块代码起作用。
  3. 如果我删除第2块,则完全可以使用代码。

这到底是怎么回事?

1 个答案:

答案 0 :(得分:0)

您的代码看起来不错。问题可能出在GPU内存上。使用nvidia-smi命令检查训练期间的GPU内存使用情况。