batch和epoch
来源:3-12 tf.GradientTape与tf.keras结合使用
慕九州7272337
2022-07-13
老师,您在3-12节开头讲的时候讲解的内容是不是下面我写的[没听太清]
在fit函数里面主要做了这么几件事情?
1.第一件事情,会按照batch的形式去遍历训练集,在每次训练的时候我们都会得到一个指标loss,需要统计metric
2.在一次batch训练[一次还是一次次]完成之后,相当于一个epoch就结束了,epoch结束后会在验证集上验证
另外,如果2中说的是一次batch训练完成之后,相当于一个epoch就结束了,也就说batchsize=训练集的大小,这就是批梯度下降吧
在下面第一个图中批量梯度下降,batchsize=训练集的大小,
然而在第二张图中optimizer='SGD’SGD不是随机梯度下降么,第一张图中随机梯度下降,batchsize=1,这optimizer的设置跟你讲解的上面第2点不是就不一致了么?[ps:下面第一张图是网上查的资料]
最后,loss,meritcs这些不是在model.compile里面么怎么会在fit函数这边讲呢
1回答
-
正十七
2022-07-17
> 在一次batch训练[一次还是一次次]完成之后,相当于一个epoch就结束了,epoch结束后会在验证集上验证
一个epoch的含义是遍历整个数据集一次, 所以一个epoch里会有多个batch。每个batch上都会计算metric,多个batch上会累积metric,并在epoch结束的时候重置状态。
> 在下面第一个图中批量梯度下降,batchsize=训练集的大小,
如上,batch_size 一般等于32,是个比较小的数字,一个epoch要跑num_train_example // batch_size个batch。
> 最后,loss,meritcs这些不是在model.compile里面么怎么会在fit函数这边讲呢
compile的时候是定义,真正的计算是在fit里。
012022-07-18
相似问题