训练数据量中关于batch_size,iteration和epoch的概念

batch_size

机器学习使用训练数据进行学习,针对训练数据计算损失函数的值,找出使该值尽可能小的参数。但当训练数据量非常大,这种情况下以全部数据为对象计算损失函数是不现实的。因此,我们从全部数据中选出一部分,作为全部数据的“近似”。神经网络的学习也是从训练数据中选出一批数据(称为 mini-batch,小批量),然后对每个mini-batch进行学习。比如,从60000个训练数据中随机选取100个数据,用这100个数据进行学习,这种学习方式成为 mini-batch 学习。
用mini-batch的方法定义batch_size,把数据分成小批量,每小批的大小batch_size=100

iteration

迭代,即训练学习循环一遍(寻找最优参数(权重和偏置))。比如 iteration=30000,循环一遍即执行了30000次迭代。当 batch_size=100,可以说执行完一遍 iteration,即执行了30000次 batch_size

epoch

epoch 是一个单位。一个 epoch表示学习中所有训练数据均被使用过一次时的更新次数。比如,对于1000个训练数据,用大小为100个数据的mini-batch(batch_size=100)进行学习时,重复随机梯度下降法100次,所有的训练数据就都被“看过”了。此时,10次就是一个 epoch。(即:遍历一次所有数据,就称为一个 epoch)
实例

训练数据量:60000
mini-batch方法:batch_size = 100
迭代次数:iteration = 30000
平均每个epoch的重复次数:60000 / 100 = 600
当迭代进行到600次时,即视为完成了一个epoch
30000 / 600 = 50

从这个实例可以看出,执行完一遍 iteration,完成了50个 epoch
————————————————

你可能感兴趣的:(ppython,机器学习)