Почему каждый слой принимает исходную форму входного массива вместо вывода предыдущего слоя - PullRequest
0 голосов
/ 07 апреля 2019

Каждый слой в моем коде показывает, что он ожидает форму массива, но получил один и тот же размер входного массива

Я прокомментировал после первого слоя maxpooling только для того, чтобы дать подсказку об ошибке.Если вы посмотрите на ошибку, она ожидает (16, 64, 64, 64), но говорит, что она получила (16, 128, 128, 1), который является моим входным массивом.

model = Sequential()

model.add(Conv3D(64,3,activation= 'relu',padding='same',input_shape=(16, 128, 128 ,1)))
model.add(MaxPooling3D(pool_size=(1,2,2),strides= (1, 2, 2)))

#model.add(Conv3D(128,3,activation= 'relu',padding="same"))
#model.add(MaxPooling3D(pool_size=(2,2,2),strides= (2, 2, 2)))

#model.add(Conv3D(256,3,activation= 'relu',padding="same"))
#model.add(Conv3D(256,3,activation= 'relu',padding="same"))
#model.add(MaxPooling3D(pool_size=(2,2,2),strides= (2, 2, 2)))

#model.add(Conv3D(512,3,activation= 'relu',padding="same"))
#model.add(Conv3D(512,3,activation= 'relu',padding="same"))
#model.add(MaxPooling3D(pool_size=(2,2,2),strides= (2, 2, 2)))

#model.add(Conv3D(512,3,activation= 'relu',padding="same"))
#model.add(Conv3D(512,3,activation= 'relu',padding="same"))
#model.add(MaxPooling3D(pool_size=(2,2,2),strides= (2, 2, 2)))

#model.add(Dense(output_dim= 4096,activation= 'linear' ))
#model.add(Dense(output_dim= 4096,activation= 'softmax' ))

Я получил ошибку

str (data_shape))

ValueError: Ошибка при проверке цели: ожидалось, что max_pooling3d_4 будет иметь форму (16, 64, 64, 64), но получил массив сформа (16, 128, 128, 1)

Почему это так?Спасибо за любой ответ.

1 Ответ

0 голосов
/ 07 апреля 2019

Проблема не связана с формой ввода; скорее это касается формы массива меток, которую вы предоставляете модели при обучении модели. Это ясно указано в ошибке:

Ошибка при проверке target

Здесь «цель» означает вывод модели. В вашем минимальном примере выходная форма слоя пула будет (16, 64, 64, 64):

ожидается, что max_pooling3d_4 будет иметь форму (16, 64, 64, 64)

Однако вы даете ему вывод формы (16, 128, 128, 1):

но получил массив с формой (16, 128, 128, 1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...