Dive-into-DL-TensorFlow2.0 icon indicating copy to clipboard operation
Dive-into-DL-TensorFlow2.0 copied to clipboard

3.13节,train_ch3,params更新

Open aesdhj opened this issue 4 years ago • 1 comments

        if trainer is None:

            sample_grads = grads
            params[0].assign_sub(grads[0] * lr)
            params[1].assign_sub(grads[1] * lr)

为什么params只更新0,1,不应该是 for (i,param) in enumerate(params): params[i].assign_sub(grads[i]*lr)

aesdhj avatar May 21 '20 16:05 aesdhj

这个模型太复杂了,加上 params[2] 和 params[3] 后准确率没有显著提高,加入params[4] 和 params[5] 后准确率反而下降了。

  1. params[i], i = 0, 1
epoch 1, loss 0.0360, train acc 0.538, test acc 0.627
epoch 2, loss 0.0273, train acc 0.612, test acc 0.629
epoch 3, loss 0.0257, train acc 0.625, test acc 0.649
epoch 4, loss 0.0238, train acc 0.671, test acc 0.722
epoch 5, loss 0.0216, train acc 0.711, test acc 0.739
  1. params[i], i = 0, 1, 2, 3
epoch 1, loss 0.0250, train acc 0.644, test acc 0.744
epoch 2, loss 0.0152, train acc 0.773, test acc 0.790
epoch 3, loss 0.0139, train acc 0.789, test acc 0.785
epoch 4, loss 0.0133, train acc 0.797, test acc 0.796
epoch 5, loss 0.0129, train acc 0.801, test acc 0.796
  1. params[i], i = 0, 1, 2, 3, 4, 5
epoch 1, loss 0.0421, train acc 0.332, test acc 0.468
epoch 2, loss 0.0367, train acc 0.419, test acc 0.425
epoch 3, loss 0.0346, train acc 0.453, test acc 0.472
epoch 4, loss 0.0342, train acc 0.458, test acc 0.467
epoch 5, loss 0.0341, train acc 0.460, test acc 0.469

第三个下降可能是因为最后没有使用 dropout 。

kpol-lgx avatar Mar 16 '23 05:03 kpol-lgx