Проблема со структурой сверточной нейронной сети - PullRequest
0 голосов
/ 29 апреля 2020

Я не знаю, что там происходит, но есть некоторая серьезная проблема со следующим кодом:

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 голосов
/ 29 апреля 2020

Ваш код выглядит нормально. Проблема может быть с памятью GPU. Проверьте использование памяти GPU во время обучения с помощью команды nvidia-smi.

...