我的训练和验证代码(tensorflow)是否正确,模型是否过拟合?

时间:2019-01-04 15:29:53

标签: python tensorflow machine-learning deep-learning

这是我的代码:

for it in range(EPOCH*24410//BATCH_SIZE):
    tr_pa, tr_sp = sess.run([tr_para, tr_spec])
    train_loss, _ = sess.run([loss, fw_op], feed_dict={x: tr_pa, y: tr_sp})
    train_loss_.append(train_loss)
    it_tr.append(it)

    va_pa, va_sp = sess.run([va_para, va_spec])
    validate_loss = sess.run(loss, feed_dict={x: va_pa, y: va_sp})
    validate_loss_.append(validate_loss)

这是训练损失和验证损失:

enter image description here

我的问题是我的验证码是否正确。这个模型适合吗?

1 个答案:

答案 0 :(得分:4)

过度拟合的特征签名是指验证损失开始增加,而训练损失则继续减少,即:

adapted from Wikipedia

(图片摘自overfitting上的Wikipedia条目)

还有其他一些图表明过度拟合(source):

enter image description here

enter image description here

另请参见SO线程How to know if underfitting or overfitting is occuring?

很明显,您的绘图没有这种行为,因此您没有过拟合。

您的代码看起来还不错,请记住,您没有显示会话sess中到底发生了什么。