【发布时间】:2018-09-26 01:02:56
【问题描述】:
我正在向 CNN 提供图片以预测回归设置中的值。
Input: [NUM_EXAMPLES, HEIGHT, WIDTH, CHANNELS] -> [NUM_EXAMPLES, YPRED]
这是损失:loss = tf.reduce_mean(tf.squared_difference(Ypreds, labels))
训练循环:
Loop {
for i in range(EPOCHS):
epoch_train_loss = 0
for k in range(NUM_BATCHES):
_, batch_loss = sess.run([train_step, loss], feed_dict={...})
epoch_train_loss += (batch_loss/NUM_BATCHES)
# calculate test loss after 1 epoch and log
epoch_test_loss = sess.run(loss, feed_dict={...})
# print train and test loss after 1 epoch
print(epoch_train_loss, epoch_test_loss)
}
这些是记录结果:
Epoch: 0 (8.21s), Train-Loss: 12844071, Test-Loss: 3802676
Epoch: 1 (4.94s), Train-Loss: 3691994, Test-Loss: 3562206
Epoch: 2 (4.90s), Train-Loss: 3315438, Test-Loss: 2968338
Epoch: 3 (5.00s), Train-Loss: 1841562, Test-Loss: 417192
Epoch: 4 (4.94s), Train-Loss: 164503, Test-Loss: 3531
Epoch: 5 (4.94s), Train-Loss: 97477, Test-Loss: 1843
Epoch: 6 (4.98s), Train-Loss: 96474, Test-Loss: 4676
Epoch: 7 (4.94s), Train-Loss: 89613, Test-Loss: 1080
这对我来说毫无意义,因为火车损失大于测试损失,这绝不应该发生。
我计算的值是否正确?损失是按批次大小平均的,通过将批次损失除以
NUM_BATCHES,我应该得到可比较的结果。
【问题讨论】:
-
多次运行,数据打乱后,是否有相同的趋势?
标签: python tensorflow machine-learning deep-learning regression