我在训练测试中遇到了一件奇怪的事情,即val_loss
与训练loss
完全不同,即使它们是根据完全相同的数据{{1}来评估的},且具有相同的(X,Y)
下面是我用来训练一批的代码
batch_size
训练12个样本,验证12个样本时期1/1 12/12 [=============================]-38s 3s / step-损失:0.7510- q_mask_a_loss:0.4739-r_mask_a_loss:0.6610-q_mask_b_loss:0.4718 -r_mask_b_loss:0.3164-pred_a_loss:1.8092-pred_b_loss:0.2238-q_mask_a_F1:0.8179-r_mask_a_F1:0.5318-q_mask_b_F1:0.8389- r_mask_b_F1:0.6134-pred_a_acc:0.0833-pred_b_acc:1.0000- val_loss:7.0257-val_q_mask_a_loss:6.9748-val_r_mask_a_loss: 14.9849-val_q_mask_b_loss:6.9748-val_r_mask_b_loss:14.9234-val_pred_a_loss:0.6919-val_pred_b_loss:0.6944-val_q_mask_a_F1: 0.0000e + 00-val_r_mask_a_F1:0.0000e + 00-val_q_mask_b_F1:0.0000e + 00-val_r_mask_b_F1:0.0000e + 00-val_pred_a_acc:1.0000-val_pred_b_acc:0.0000e + 00
注意:
X, Y = valid_datagen.next()
batch_size = len(X[0])
joint_model.fit( X, Y,
batch_size=batch_size,
epochs=1,
verbose=1,
validation_data=(X, Y))
是loss
,而0.7510
是val_loss
。7.0257
设置为等于
样本,即仅对一批进行训练。 batch_size
2.2.0和keras
后端1.5.0。tensorflow
可以得到与验证相同的结果。对于用过的joint_model.evaluate( X, Y, batch_size=batch_size)
,它只不过是前几层中具有固定权重的前馈CNN。任何地方都没有joint_model
层。
我完全不知道这里发生了什么。有谁有潜在的原因或如何对此进行调试?欢迎任何建议。