OUC的搬砖日记02|深度学习第二周

一、代码部分

CNN_CIFAR10icon-default.png?t=N7T8https://gitee.com/gongchuanzheng/ouc/blob/master/week2/CNN_CIFAR10.ipynbCNN对 mnist 数据集进行分类icon-default.png?t=N7T8https://gitee.com/gongchuanzheng/ouc/blob/master/week2/CNN%E5%AF%B9%20mnist%20%E6%95%B0%E6%8D%AE%E9%9B%86%E8%BF%9B%E8%A1%8C%E5%88%86%E7%B1%BB.ipynbVGG16_CIFAR10icon-default.png?t=N7T8https://gitee.com/gongchuanzheng/ouc/blob/master/week2/VGG16_CIFAR10.ipynb

二、问题总结

1.dataloader 里面 shuffle 取不同值有什么区别?

①shuffle=False:不对数据进行随机打乱。

②shuffle=True:对数据进行完全随机的打乱。

③shuffle=Sequence:根据指定种子来对数据进行打乱,用相同的种子打乱的结果是一样的。

2.transform里,取了不同值,这个有什么区别?

①缩放操作:

transforms.Resize(size):将图像缩放到指定的大小,size 可以是一个整数或一个元组,例如 transforms.Resize(256) 或 transforms.Resize((256, 256))。

transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.333)):随机裁剪并缩放图像,裁剪后的图像大小为 size,scale 和 ratio 用于指定裁剪的范围和宽高比。

②翻转操作:

transforms.RandomHorizontalFlip(p=0.5):以给定的概率随机水平翻转图像,p 为翻转概率。

transforms.RandomVerticalFlip(p=0.5):以给定的概率随机垂直翻转图像,p 为翻转概率。

③旋转操作:

transforms.RandomRotation(degrees, resample=False, expand=False, center=None):对图像进行随机旋转,degrees 为旋转角度。

transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0):对图像进行仿射变换,包括旋转、平移、缩放和剪切等操作。

④色彩操作:

transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0):对图像进行颜色抖动,包括亮度、对比度、饱和度和色相等操作。

transforms.Grayscale(num_output_channels=1):将图像转换为灰度图像。

⑤归一化操作:

transforms.Normalize(mean, std):对图像进行归一化,mean 和 std 分别为均值和标准差。

⑥其他操作:

transforms.ToTensor():将图像转换为张量。

transforms.Lambda(lambda_func):使用自定义函数对图像进行转换。

3.epoch 和 batch 的区别?

①epoch:一个 epoch 表示模型训练过程中,将训练数据集中的所有样本都过一遍的训练过程。

②batch:一个 batch 表示在模型训练过程中,将训练数据集中的一部分样本作为一个小批次(batch)输入到模型中进行训练的过程。

4.1x1的卷积和 FC 有什么区别?主要起什么作用?

①1x1卷积层:1x1卷积层通常用于调整特征图的深度(即通道数),可以增加或减少特征图中的通道数,从而提高模型的表达能力。1x1卷积层也可以作为一种降维操作,将高维特征图转换为低维特征图以降低计算复杂度。

②全连接层:全连接层通常用于将特征图中的高维信息转换为一维向量,以便进行分类或回归等任务。

5.residual leanring 为什么能够提升准确率?

F(x) + x

深度神经网络中经常出现的梯度消失和梯度爆炸问题,使得深层网络很难学习到有效的特征。通过使用跨层连接,Residual Learning 可以将梯度直接从后面的层传递到前面的层,从而缓解这些问题。

6.代码练习二里,网络和1989年 Lecun 提出的 LeNet 有什么区别?

①模型深度和参数量:CNN 模型比 LeNet 更深,拥有更多的层数和更多的参数。

②模型结构: CNN 模型通常包括多个卷积层、池化层和全连接层。而 LeNet 模型则包括两个卷积层和三个全连接层。

③激活函数: CNN 模型通常使用 Rectified Linear Unit(ReLU)作为激活函数,而 LeNet 使用的是 Sigmoid 激活函数。ReLU 激活函数具有更好的非线性特性,可以更好地避免梯度消失问题,从而提高模型的训练效率和准确率。

7.代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learning?

①使用跨层连接

②将特征图的尺寸减小到与输出特征图的尺寸相同

8.有什么方法可以进一步提升准确率?

①数据增强

②批标准化

③残差注意力机制

④自适应学习率调整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值