卷积神经网络的结构问题

问题描述 投票:0回答:1

我不知道那里发生了什么,但下面的代码有一些严重的问题。

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. 如果我完全删除block2,代码就能正常工作。

这到底是怎么回事?

deep-learning neural-network conv-neural-network cnn batch-normalization
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.