На что обратить внимание, когда начальные потери высоки при обучении нейронной сети? - PullRequest
0 голосов
/ 29 декабря 2018

Я пытаюсь обучить свою нейронную сеть для классификации изображений с использованием conv3d.Во время тренировки я вижу, что начальная потеря больше 2. Поэтому мне было интересно, что я могу сделать, чтобы уменьшить эту первоначальную потерю?

Вот мой код модели:

model = Sequential()
model.add(Conv3D(2, (3,3,3), padding = 'same', input_shape= [num_of_frame, 
          img_rows,img_cols, img_channels] ))
model.add(Activation('relu'))
model.add(Conv3D(64, (3,3,3)))
model.add(Activation('relu'))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(32))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))

Я использую30, поскольку мой размер пакета и размер изображения 120 * 90 с оптимизатором Адама.

1 Ответ

0 голосов
/ 13 января 2019

Первый уровень вашей модели испытывает трудности с обнаружением базовых функций, поскольку у вас есть только два ядра свертки на первом уровне, что не очень хорошая идея.также использование 0,25 в качестве показателя отсева не очень распространено (чаще используются значения от 0,5 до 0,7).

...