常用术语
epoch、batch、batch size、iteration
1 iteration
迭代次数
一个batch向前向后传播次数( 通常为跑完一次数据)
2 epoch
当一个完整的数据集通过神经网络迭代一次并且返回一次的过程称为一个epoch。
然而,当一个epoch对于计算机太过庞大时,就需要把它分成多个小块。
3 batch
批大小
在不能将数据一次性通过神经网络的适合,就需要将数据集分成几个batch.
3 batch size
直观的理解
一个batch中的样本总数( 一次训练所选取的样本数 )
batch size的大小影响模型的优化程度和速度。同时其直接影响到GPU内存的使用情况,假如你GPU显存不大,该数值最好设置小一点。
提出batch size的原因
在没有使用Batch Size之前,这意味着网络在训练时,是一次把所有的数据(整个数据库)输入网络中,然后计算它们的梯度进行反向传播,由于在计算梯度时使用了整个数据库,所以计算得到的梯度方向更为准确。但在这情况下,计算得到不同梯度值差别巨大,难以使用一个全局的学习率,所以这时一般使用Rprop这种基于梯度符号的训练算法,单独进行梯度更新。
在小样本数的数据库中,不使用Batch Sie是可行的,而且效果也很好。但是一旦是大型的数据库,一次性把所有数据输进网络,肯定会引起内存的爆炸。所以就提出Batch Size的概念
batch size设置合适时的优点
1、通过并行化提高内存的利用率。就是尽量让你的GPU满载运行,提高训练速度
2、单个epoch的迭代次数减少了,参数的调整也慢了,假如要达到相同的识别精度,需要更多的epoch。
3、适当batch size使得梯度下降方向更加准确。
常用命令
查看显卡信息
!/opt/bin/nvidia-smi
命令行
%%shell
python src/finetune.py
!ls
!git clone https://github.com/
文章介绍了深度学习中关键的训练参数epoch、batch和batchsize的概念及其影响。epoch是指数据集完整遍历神经网络一次,batch是数据分批处理的单位,batchsize则影响优化速度和GPU内存使用。合适的batchsize能提高内存利用率,加速训练,且使梯度下降更准确。文章还提到了检查GPU信息的命令`!nvidia-smi`。
718

被折叠的 条评论
为什么被折叠?



