这是我的代码:
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)
这是训练损失和验证损失的图表:
我的问题是我的验证代码是否正确?这个模型是否过拟合?
回答:
过拟合的明显标志是当你的验证损失开始增加,而你的训练损失继续减少时,即:
(图片改编自维基百科关于过拟合的条目)
以下是一些其他表示过拟合的图表(来源):
另见Stack Overflow讨论如何判断是否发生欠拟合或过拟合?。
显然,你的图表没有表现出这种行为,因此你没有过拟合。
你的代码看起来没问题,但请注意你没有展示会话sess
内部具体发生了什么。