Ошибка Valur в тенорах потока тензорного потока, форма целевой матрицы ([3000, 180, 320, 1]) передана для выходной формы ([None, 180, 320, 1]) - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь реализовать unet при использовании tenorflow keras api для сегментации изображения для обнаружения дорожек. Ниже приведен соответствующий код (модель функции):

def model_fn(weight_path=None, input_shape=(180,320,1)):
    .....
    .....
    model= tf.keras.Model(inputs= inputs, outputs= c8)
    model.compile(optimizer= tf.keras.optimizers.Adam(lr= 1e-4), 
                  loss= 'binary_crossentropy',
                  metrics= ['accuracy'])

Здесь форма входного тензора равна (None, 180, 320, 1), что соответствует выходному тензору. (xtr и ytr оба имеют форму (3000, 180, 320, 1))

Теперь, когда я пытаюсь обучить его, используя:

model.fit(x=xtr, y=ytr, batch_size= 10, epochs=1, callbacks=[cp_callback])

Я получаю эту ошибку:

ValueError: Целевой массив с формой (3000, 180, 320, 1) был передан для вывода формы (Нет, 180, 320, 3) при использовании в качестве потерь binary_crossentropy. Эта потеря предполагает, что цели будут иметь ту же форму, что и выходные данные.

Я не могу понять, что с этим не так. Любая помощь высоко ценится.

...