Python day39
@浙大疏锦行 python day39.
图像数据介绍:区别于机器学习中的数据(特征1,特征2,,,),单个图像数据通常有三维,即(C,H,W)分别代表了通道数、高度以及宽度;而在大规模训练中通常会按照batch的形式训练,此时为四维(B,C,H,W);
使用MLP神经网络时,就需要将上面的多维数据展平为一维数据(Flatten);
使用batch训练的模式时,模型的定义并不需要修改,只需要在Dataloader中设置batch size大小即可,Pytorch会自动进行处理,每次从Dataloader中读取batch size大小的数据;
显存可以看作GPU使用的内存,如果训练过程中显存不够,则会爆出OOT的错误;针对训练过程中占用的显存大致包括如下部分:模型的参数,梯度,优化器状态,输入的数据以及前向传播反向传播中的中见变量,如果不能选择合适的设置可能会导致无法训练;主要通过调整batch size的大小来调整显存的占用,通常合适的 batch_size = 硬件显存允许的最大值 × 0.8(预留安全空间);
使用batch进行训练时,更新参数所用的梯度为batch内每个样本梯度的平均值,因此使用batch或者较大的batch训练的好处就是可以训练更稳定更迅速,但是相应的显存占用也会增多。