- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
卷积神经网络的简介及应用
实验18
课程学习目标
理解卷积神经网络(ConvolutionalNeuralNetwork,CNN)的基础知识。
掌握如何使用PyTorch构建和训练CNN模型。
CNN简介
CNN分为输入层、卷积层、池化层、全连接层、输出层。
CNN基本结构
接收原始输入数据,定义数据形状和类型,无处理。
输入层
使用可学习滤波器提取特征,后接ReLU激活函数增加非线性。
卷积层
降低特征图空间尺寸,减少参数和计算复杂性,增强位置变化鲁棒性。
池化层
根据提取特征做出决策或分类,每个神经元与前一层全连接。
全连接层
输出最终分类或预测结果,多分类使用softmax函数转换为概率分布。
输出层
01
02
03
04
05
06
CNN的应用实例
CNN的应用领域
CNN在图像分类、物体检测、图像分割等领域有广泛应用,能自动学习图像特征。
本节实验
通过构建和训练CNN处理CIFAR-10数据集,深入理解CNN工作原理,学习PyTorch框架。
1.导入库
导入TensorFlow,NumPy等库,为CNN实验做准备。
此外,使用代码检查GPU是否可用,优先使用GPU加速计算。
2.准备数据
特征
描述
数据集名称
CIFAR-10
数据集类型
计算机视觉数据集
图像数量
60,000张(50,000张训练图像和10,000张测试图像)
图像尺寸
32x32像素(彩色图像)
类别数量
10个类别
类别标签
飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车
每类图像数量
每个类别均包含6,000张图像
用途
机器学习算法测试和图像分类研究
难度
挑战性高,因为类别间相似性较大
下载链接
/~kriz/cifar.html
1
CIFAR-10数据集是一个用于机器学习算法测试和图像分类研究的重要资源,包含10个类别,每个类别6,000张图像,共计60,000张图像。
2
该数据集在计算机视觉和机器学习领域具有重要的应用价值,由于类别间相似性较大,它为研究者提供了一个具有挑战性的测试平台。
2.准备数据
使用以下代码导入及加载CIFAR-10数据集
2.准备数据
定义了一个imshow()函数从训练集中随机获取一些的图片,并显示。
3.定义CNN模型
层的名称
层的参数
层的功能
第一个卷积层
in_channels=3,out_channels=6,kernel_size=5
第一个卷积层,使用5x5的卷积核从RGB图像中提取特征
第一个池化层
kernel_size=2,stride=2
池化层,使用2x2的窗口进行最大池化,以减少特征维度
第二个卷积层
in_channels=6,out_channels=16,kernel_size=5
第二个卷积层,进一步提取特征并增加输出通道数
第一个全连接层
in_features=1655,out_features=120
第一个全连接层,将卷积层输出的二维特征图展平为一维向量
第二个全连接层
in_features=120,out_features=84
第二个全连接层,进一步处理特征
第三个全连接层
in_features=84,out_features=10
第三个全连接层,输出最终的分类结果(10个类别)
定义了一个典型的CNN模型结构,包含卷积层、池化层和全连接层,用于处理图像数据。
3.定义CNN模型
定义CNN模型的步骤:
3.定义CNN模型
代码示例如下:
4.训练模型
使用交叉熵损失函数和SGD优化器来训练模型。训练该模型的步骤如下:
4.训练模型
模型训练的代码和结果如图。
模型在训练过程中每经过2000个小批量数据后的平均损失值。可以看到随着训练的进行,损失值逐渐下降,模型在逐步学习和优化,这表明模型的训练是成功的。
5.评估模型
模型训练的代码和结果如图。
从结果可以看出,这个模型在测试数据集上的表现尚有改进空间,56.93%的准确率,表明模型对数据的分类还不够理想,可能需要进一步优化模型架构、调整超参数、增加训练数据或改进数据预处理方法。
6.保存和加载模型
保存模型:使用torch.save(net.state_dict(),PATH)将模型参数保存到文件。
加载模型:使用net.load_state_dict(torch.load(PATH))从文件中加载模型参数。
本节实验作业
1.定义一个简单的CNN,包含一个卷积层后接一个池化层和一个全连接层。
文档评论(0)