1.什么是batchsize?
简单点说,就是我们一次要将多少个数据扔进模型去训练,这个值介于1和训练样本总个数之间。
若batchsize太小的缺点:①耗时长,训练效率低。②训练数据就会非常难收敛,从而导致欠拟合
随着batchsize逐渐增大的优缺点
1.大的batchsize减少训练时间的同时所需内存容量增加
①大的batchsize减少训练时间
这是肯定的,同样的epoch数目,大的batchsize需要的batch数目减少了,所以处理速度变快,可以减少训练时间;
②大的batchsize所需内存容量增加
但是如果该值太大,假设batchsize=100000,一次将十万条数据扔进模型,很可能会造成内存溢出,而无法正常进行训练。
2.大的batchsize在提高稳定性的同时可能导致模型泛化能力下降
①大的batch size梯度的计算更加稳定
因为模型训练曲线会更加平滑。在微调的时候,大的batchsize可能会取得更好的结果。因为在一定范围内,一般来说batchsize越大,其确定的下降方向越准,引起训练震荡越小。batchsize增大到一定程度,其确定的下降方向已经基本不再变化。
②大的batchsize可能导致模型泛化能力下降
在一定范围内,增加batchsize有助于收敛的稳定性,但是随着batchsize的增加,模型的泛化性能会下降。若batchsize设为最大(样本总个数),则每次更新参数都是相同的样本,下降方向基本确定,这会导致模型的泛化性能下降。
一般在Batchsize增加的同时,我们需要对所有样本的训练次数(也就是后面要讲的epoch)增加(以增加训练次数达到更好的效果)这同样会导致耗时增加,因此需要寻找一个合适的batchsize值,在模型总体效率和内存容量之间做到最好的平衡。
②由于上述两种因素的矛盾,batchsize增大到某个时候,达到时间上的最优。由于最终收敛精度会陷入不同的局部极值,因此batchsize增大到某些时候,达到最终收敛精度上的最优。
2.epoch:训练时,所有训练数据集都训练过一次
3.什么是计算图?
是用来 描述运算 的有向无环图,主要由节点和边组成。节点表示数据,如向量、矩阵、张量,边表示运算,如加减乘除等
【Torch笔记】计算图与动态图_torch计算图-CSDN博客
4.什么是梯度?
梯度的提出只为回答一个问题:
函数在变量空间的某一点处,沿着哪一个方向有最大的变化率?
梯度定义如下:
函数在某一点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。
这里注意三点:
1)梯度是一个向量,即有方向有大小;
2)梯度的方向是最大方向导数的方向;
3)梯度的值是最大方向导数的值。
梯度下降法
既然在变量空间的某一点处,函数沿梯度方向具有最大的变化率,那么在优化目标函数的时候,自然是沿着负梯度方向去减小函数值,以此达到我们的优化目标。
如何沿着负梯度方向减小函数值呢?既然梯度是偏导数的集合,如下:
5.怎样卷积神经网络的输入输出特征图大小计算
简明易懂——卷积神经网络的输入输出特征图大小计算_卷积输入输出大小计算-CSDN博客
6.什么是全连接层?
全连接层那些事(Fully Connected Layer)-CSDN博客
7.什么是插值?双线性插值?