我正在尝试使用tensorflow keras api进行图像分割以检测车道来实现unet。以下是相关的(模型功能)代码:
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)
的目标数组以输出形状(None,180、320、3),同时用作损失binary_crossentropy
。这种损失期望目标与输出具有相同的形状。
我不明白这是怎么回事。我们非常感谢您的帮助。