卷积神经 络基础
前言
本博客为OUC2022秋季软件工程第三周作业
学习博客
朱泽灵
-
dataloader 里面 shuffle 取不同值有什么区别p>
[答] : DataLoader是Pytorch中用来处理模型输入数据的一个工具类。组合了数据集(dataset) + 采样器(sampler),并在数据集上提供单线程或多线程(num_workers )的可迭代对象;shuffle (bool, optional) –每一个 epoch是否为乱序 (default: False);
? shuffle=True对数据读取的作用,每个epoch读完数据之后,在下次读取数据时是否会将数据打乱顺序,如果设置shuffle=True,那么在下一次epoch时,会将数据打乱顺序,然后再进行下一次读取,从而两次epoch读到的数据顺序是不同的;如果设置shuffle=False,那么在下一次数据读取时,不会打乱数据的顺序,从而两次读取到的数据顺序是相同的。
-
transform 里,取了不同值,这个有什么区别p>
[答] : 常用的数据预处理方法。
-
epoch 和 batch 的区别p>
[答] : epoch是训练数据集的轮数,一个epoch相当于全部跑完一次数据集;bantch是一个epoch内一次批量训练的样本数
-
1×1的卷积和 FC 有什么区别起什么作用p>
[答] : 在数学本质上一样,都是特征图中的元素乘以权重再求和。
功能上1*1卷积可以减少或增加特征图的层数,全连接无法做到。
用1*1卷积代替全连接应该是基于输入尺寸的考虑,全连接的输入是特征图所有元素乘以权重再求和,但是这个权重向量是在设计 络的时候就需要固定的,所以全连接没办法适应输入尺寸的变化只能固定。通俗来说就是卷积是权值共享。
-
residual leanring 为什么能够提升准确率p>
[答] : 在训练 络的过程中,深度越深,参数越复杂, 络也就越复杂,但分类任务具有过程未知性,并且深度的神经 络很难实现恒等映射,导致 络很难学习到更优的参数,引入残差学习后, 络能实现恒等映射了,训练过程中可以根据实际效果跳过其中的几个层,灵活性更大,因此可以提高准确率
-
代码练习二里, 络和1989年 Lecun 提出的 LeNet 有什么区别p>
[答] : 模型构造不同。以AlexNet为例,AlexNet 络包含8层,其中包括5层卷积和2层全连接隐藏层,以及1个全连接输出层。
激活函数不同。传统的LeNet 络使用的是sigmoid激活函数,而AlexNet使用的是ReLU函数。ReLU函数比sigmoid函数计算上更为简单,且ReLU函数在不同的参数初始化方法下可以让模型更容易训练。 -
代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learningp>
[答] : 可以使用填充padding以及使用1*1的卷积的方法来调整feature map的尺寸。
-
有什么方法可以进一步提升准确率p>
[答] :
使用标准化输入和BatchNorm;
增加训练集的数据,划分更加恰当的训练集、验证集、测试集;
针对训练的异常值进行分析处理,调节超参数;
用效果好的 络进行迁移学习;加深 络深度
调整 络结构
王匀卓
-
dataloader 里面 shuffle 取不同值有什么区别p>
[答] : shuffer=False表示不打乱数据的顺序, 然后以batch为单位从头到尾按顺序取用数据。
shuffer=Ture表示在每一次epoch中都打乱所有数据的顺序,然后以batch为单位从头到尾按顺序取用数据。这样的结果就是不同epoch中的数据都是乱序的。 -
transform 里,取了不同值,这个有什么区别p>
[答] : transform是对数据进行预处理,代码中用到的transforms.normalize()是对图像进行标准化。
-
epoch 和 batch 的区别p>
[答] : Batch大小是在更新模型之前处理的多个样本。 Epoch数是通过训练数据集的完整传递次数。
-
1×1的卷积和 FC 有什么区别起什么作用p>
[答] : 区别:1×1的卷积核是输入map大小不固定的;而全连接是固定的。
1×1卷积的主要作用:- 降维
- 增加非线性,可以大幅增加非线性特性, 络能做得很深
- 跨通道信息交互
FC作用:可以将卷积得到的局部特征连接起来,综合考虑整个图像。
-
residual leanring 为什么能够提升准确率p>
[答] : 残差块解决了梯度消失问题,可以将 络结构设计的更深。
-
代码练习二里, 络和1989年 Lecun 提出的 LeNet 有什么区别p>
[答] : 激活函数不同,LeNet池化层采用平均池化,激活函数是sigmoid函数,代码练习二中池化层采用最大池化和激活函数ReLU。
-
代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learningp>
[答] : ResNet在shortcut中采用1*1的卷积对大小不同的feature map进行调整。
-
有什么方法可以进一步提升准确率p>
[答] : 提高数据的多样性;进行数据预处理;优化 络结构
叶鹏
-
dataloader 里面 shuffle 取不同值有什么区别p>
[答] :
shuffle value True 每一次epoch中都打乱所有数据的顺序 False 不打乱数据的顺序 -
transform 里,取了不同值,这个有什么区别p>
[答] : 取不同的值是为了对图像实现不同的操作
-
epoch 和 batch 的区别p>
[答] :
: 使用训练集的全部数据对模型进行一次完整的训练,称为一代训练
: 使用训练集的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为一批数据
-
1×1的卷积和 FC 有什么区别起什么作用p>
[答] : 在数学本质上一样,都是特征图中的元素乘以权重再求和,1×1的卷积采用参数共享方式,需要的参数量比FC使用的参数量少,计算速度更快。 1×1的卷积可以用于降维,升维,代替FC成为一个分类器。
-
residual leanring 为什么能够提升准确率p>
[答] : 可以自适应学习特定的 络深度;不会存在梯度消失问题,可以适应更深的 络结构。残差 络可以通过增加 络深度来提升准确率,通过直接将输入信息绕道传到输出,保护信息的完整性,整个 络只需要学习输入和输出有差别的那一部分,这样就简化了学习目标以及难度。普通 络结构是一个连乘的形式,残差多了加和,缓解了梯度消失的问题。
-
代码练习二里, 络和1989年 Lecun 提出的 LeNet 有什么区别p>
[答] : 激活函数不同,LeNet采用Softmax激活函数,代码练习二采用ReLU激活函数。
-
代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learningp>
[答] : 使用填充padding以及使用1*1的卷积的方法来调整feature map的尺寸
-
有什么方法可以进一步提升准确率p>
[答] :
- 增加数据集的大小
- 使用不同的激活函数,交叉熵函数
- 加深 络深度
- 调整 络结构
张丁月
-
dataloader 里面 shuffle 取不同值有什么区别p>
[答] : (1)shuffer=False表示不打乱数据的顺序,然后以batch为单位从头到尾按顺序取用数据。(2)shuffer=Ture表示在每一次epoch中都打乱所有数据的顺序,然后以batch为单位从头到尾按顺序取用数据。
-
transform 里,取了不同值,这个有什么区别p>
[答] : 不同之处在于训练部分的数据集增加了数据的增强,利用随机裁剪以及随机翻转,以增强模型的泛化能力。
-
epoch 和 batch 的区别p>
[答] : (1)Epoch : 使用训练集的全部数据对模型进行了一次完整的训练,被称为一代训练
(2)Batch : 使用训练集的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为 一批数据 -
1×1的卷积和 FC 有什么区别起什么作用p>
[答] : (1)1×1的卷积层采用参数共享方式,需要的参数量会比FC层所使用的参数量少,计算速度更快;(2)1*1的卷积可以用于降维(减少通道数),升维(增加通道数),代替fc成为一个分类器;另外,FC层对于训练样本要求统一尺寸,但是1×1的卷积不会受该规定的限制;
-
residual leanring 为什么能够提升准确率p>
[答] : 残差 络可以通过增加 络深度来提升准确率,通过直接将输入信息绕道传到输出,保护信息的完整性,整个 络只需要学习输入和输出有差别的那一部分,这样就简化了学习目标以及难度。普通 络结构是一个连乘的形式,残差多了加和,缓解了梯度消失的问题。
-
代码练习二里, 络和1989年 Lecun 提出的 LeNet 有什么区别p>
[答] : 区别在于LeNet使用的sigmoid激活函数,而实验中使用的则是ReLU激活函数。
-
代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learningp>
[答] : 添加一个1*1的卷积核 进行调整
-
有什么方法可以进一步提升准确率p>
[答] : (1)增加数据集的大小
(2)修改 络结构模型
(3)增加训练的轮数
(4)使用不同的激活函数,交叉熵函数
杨淋云
-
dataloader 里面 shuffle 取不同值有什么区别p>
[答] : shuffle为True,输入数据的顺序打乱。
? shuffle为False,输入数据的顺序固定。
-
transform 里,取了不同值,这个有什么区别p>
[答] : 对数据进行不同的操作。
-
epoch 和 batch 的区别p>
[答] : epoch是使用训练集的全部数据对模型进行一次完整的训练,称为一代训练。
batch是使用训练集的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为一批数据。 -
1×1的卷积和 FC 有什么区别起什么作用p>
[答] : 1×1的卷积采用参数共享方式,需要的参数量比FC使用的参数量少,计算速度更快。
? 1×1的卷积可以用于降维,升维,代替FC成为一个分类器。
-
residual leanring 为什么能够提升准确率p>
[答] : 因为残差 络可以通过增加 络深度来提升准确率,通过直接将输入信息绕道传到输出,保护信息的完整性,整个 络只需要学习输入和输出有差别的那一部分,这样就简化了学习目标以及难度。普通 络结构是一个连乘的形式,残差多了加和,缓解了梯度消失的问题。
-
代码练习二里, 络和1989年 Lecun 提出的 LeNet 有什么区别p>
[答] : LeNet采用Softmax激活函数,代码练习二采用ReLU激活函数。
-
代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learningp>
[答] : 添加一个1×1的卷积核进行调整。
-
有什么方法可以进一步提升准确率p>
[答] : 1.使用特征更明显、分类更合理的数据集,对数据预处理。
? 2.修改 络结构模型,选择性能更优的神经 络结构。
? 3.使用不同的激活函数,交叉熵函数。
余艺
-
dataloader 里面 shuffle 取不同值有什么区别p>
[答] : shuffle=true时,随机打乱顺序;shuffle=false时,不随机打乱顺序。打乱有利于降低模型对训练顺序的依赖。
-
transform 里,取了不同值,这个有什么区别p>
[答] : transform:图像预处理。取不同的值是为了对图像实现不同的操作。
-
epoch 和 batch 的区别p>
[答] : epoch:更新模型前处理过的样本。epoch:通过训练的完整传递次数。
-
1×1的卷积和 FC 有什么区别起什么作用p>
[答] : 数学本质上一样。适应输入尺寸的变化
-
residual leanring 为什么能够提升准确率p>
[答] : 可以自适应学习特定的 络深度;不会存在梯度消失问题,可以适应更深的 络结构
-
代码练习二里, 络和1989年 Lecun 提出的 LeNet 有什么区别p>
[答] : 络结构不完全一样;激活函数不同,分别是sigmoid和Relu
-
代码练习二里,卷积以后feature map 尺寸会变小,如何应用 Residual Learningp>
[答] : 进行零填充
-
有什么方法可以进一步提升准确率p>
[答] : 加大训练量,增加数据集的数据量;选用更合适的损失函数和激活函数。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!