赞
踩
知识来源知乎专栏作者风度、
作者眼睛里面进砖头了https://www.zhihu.com/question/456600260
epoch:
一个完整的数据集通过了神经网络一次并返回一次,称为一个epoch。所有的训练样本在神经网络中都进行了一次正向传播和反向传播,就是一个epoch将所有的训练集训练一次的过程。
Batch:
当一个epoch的样本数量太庞大,需要把它分成多个小块,也就是分成多个batch来进行训练。batch(批/一批样本),将整个训练样本分成若干个batch。
batch_size:
每批样本的大小
iteration:
一次迭代,训练一个Batch就是一次iteration
神经网络中传递完整的数据集一次是不够的,而且我们需要将完整的数据集在同样的神经网络中传递多次。使用有限的数据集,使用一个迭代过程即梯度下降优化学习过程。随着epoch数量增加,神经网络中的权重的更新次数也在增加,但是具体多少个epoch case by case
Batch_size:它的大小影响模型的优化程度和速度,直接影响到GPU内存的使用情况,GPU内存不大,数值最好设置小一点。
Batch_size增大,梯度变得准确,当非常准确的时候,在增加batch_size也没用了。
batch_size增大要到达相同的准确度,必须增大epoch:
batch size的大小影响的是训练过程中的完成每个epoch所需的时间和每次迭代(iteration)之间梯度的平滑程度。其实看完batch_size的解释,基本就应该知道epoch在发挥个什么作用了。说简单点,epoch影响的就是迭代计算的次数。
在不限内存的情况,应当用大点的batch_size, 进行模型优化,稳且快。在内存有限的情况下,减小batch_size的情况下应该相应减小的是learning_rate, 至于epoch怎么调,你就需要综合看你的loss下降情况与验证集的指标情况了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。