请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

batch_size 和 epoch的疑惑

batch_size = 20
train_steps = 1000
test_steps = 100

老师 想问一下如果按照2个epoch 进行训练的话,
假设number_example = 101, batch_size = 20的话,
按照cifar-10的代码,如果我想将数据集过两次(epoch = 2)的话。
是不是将train_step设置为(101/20)*2呢?
如果是的话,还剩下1个example不知道有没有被训练,该怎么办。。

纠结于number_example无法被batch_size除尽,以及不知道train_steps该怎么设置的问题。。。

还有一个问题就是训练集会被shuffle,但是如何计算当前训练的是第几个epoch…

正在回答

插入代码

1回答

我给的代码的实现是:如果剩下的样本不够一个batch了,就会重新shuffle数据了。

所以如果是101个样本,batch_size=20, 那么每5次重新shuffle一下数据,相当于一个epoch。

所以如果想epoch=2,那么train step 需要是 (101//20)×2次。你算得是对的。

0 回复 有任何疑惑可以回复我~
  • 提问者 FANGYUAN_ #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-12-18 09:54:58
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号