我遇到了一个非常奇怪的问题。我正在训练深度学习模型,代码是:
finalModel.compile(
optimizer=optimizer,
loss=dice_loss,
metrics=[keras.losses.binary_crossentropy, dice_coef]
)
finalModel.fit_generator(
generator=trainGenerator,
steps_per_epoch=200,
epochs=500,
validation_data=valGenerator,
validation_steps=20,
)
输出信息表明训练是收敛的,骰子约为0.8。
然后,我加载保存的模型:finalModel.load_weights('./bestModel.hdf5')
,并通过以下方式获得评估骰子:
dt = trainGenerator.__next__()
print(finalModel.evaluate(dt[0], dt[1]))
请注意,测试数据是从训练数据集中生成的。骰子非常低,约为0.1。 这让我很困惑。
我的代码有什么问题吗?任何建议表示赞赏!