在keras中进行训练实验所测试的val_loss(比火车损失高得多)

时间:2018-06-24 04:33:33

标签: keras

我在训练测试中遇到了一件奇怪的事情,即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

注意:

  1. 培训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.7510val_loss
  2. 我已经将7.0257设置为等于 样本,即仅对一批进行训练。
  3. 我正在使用batch_size 2.2.0和keras后端1.5.0。
  4. 使用tensorflow可以得到与验证相同的结果。

对于用过的joint_model.evaluate( X, Y, batch_size=batch_size),它只不过是前几层中具有固定权重的前馈CNN。任何地方都没有joint_model层。

我完全不知道这里发生了什么。有谁有潜在的原因或如何对此进行调试?欢迎任何建议。

0 个答案:

没有答案