人脸识别、图像生成、图像风格转换、自动驾驶
全部由全连接层组成的神经网络
全连接神经网络也可用于计算机视觉,但因处理图像时权重矩阵的参数过多,出现过拟合现象。而卷积神经网络通过卷积核将神经元相连实现了局部关联,同时因为使用的卷积核不变,所以实现了参数共享,大大降低了参数数量。
一个典型的卷积神经网络通常由卷积层、池化层和全连接层交叉堆叠而成







这一步进行网络的构建和定义训练和测试函数


在全连接网络上训练和测试

在卷积神经网络上训练与测试


展示图片








1.dataloader 里面 shuffle 取不同值有什么区别?
dataloader中的shuffle的作用是是否对每次迭代时的数据进行打乱,如果需要打乱,则值为True,否则为False。
2.transform 里,取了不同值,这个有什么区别?
transform对图像进行预处理,提高模型泛化能力。经查阅,知道其有以下区别:
①裁剪
transforms.CenterCrop中心裁剪
transforms.RandomCrop随机裁剪
transforms.RandomResizedCrop随机长宽比裁剪
transforms.FiveCrop上下左右中心裁剪
transforms.TenCrop上下左右中心裁剪后翻转
②翻转
transforms.RandomHorizontalFlip(p=0.5)依概率p水平翻转
transforms.RandomVerticalFlip(p=0.5)依概率p垂直翻转
③旋转
transforms.RandomRotation随机旋转
④图像变换
transforms.Resize调整尺寸
transforms.Normalize标准化
transforms.ToTensor转为tensor
transforms.Pad 填充
transforms.ColorJitter修改亮度、对比度和饱和度
transforms.Grayscale变为灰度图
transforms.LinearTransformation()线性变换
transforms.RandomAffine仿射变换
transforms.RandomGrayscale按照概率p转为灰度图
⑤数据增强
transforms.RandomChoice从给定的选一个进行操作
transforms.RandomApply按照概率进行操作
transforms.RandomOrder将t操作随机化
3.epoch 和 batch 的区别?
epoch指训练的次数,而batch指每一次训练一个epoch分割的每份。
epoch指所有的数据都进行一次训练,有时候损失函数不够小,需要多轮epoch。其为宏观层面上理解,
batch是由于一个epoch的数据量太多不利于操作,所以进行分割。
4.1x1的卷积和 FC 有什么区别?主要起什么作用
1×1的卷积和FC输出大小相同,但是FC在一开始根据图像大小设定好不能再变,而前者可以任意适应。1×1的卷积主要起到升维和降维的作用。
5.residual leanring 为什么能够提升准确率?
解决了梯度消失的问题,并且使用跨越的方式,变相增加了网络的深度。
6.代码练习二里,网络和1989年 Lecun 提出的 LeNet 有什么区别?
激活函数LeNet使用了sigmoid函数,实验二使用的是RELU函数。
另外LeNet采用均值池化,实验二采用最大值池化。
7.代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learning?
使用1×1的卷积核改变图像大小即可。
8.有什么方法可以进一步提升准确率?
增加准确率最好的方式还是从本质上修改训练方法。此外的调整epoch次数、调整网络深度等方式,容易造成过拟合的问题。