使用卷积神经网络识别狗类:吴程锴的第5次上机作业
"吴程锴18029100040同学的第五次上机作业,主要内容是使用卷积神经网络(CNN)进行狗的类别判别。" 在此次作业中,吴程锴同学运用了深度学习中的卷积神经网络模型来识别四种不同类型的狗:哈士奇、柯基犬、秋田犬和边境牧羊犬。以下是作业中涉及的关键知识点和代码解释: 1. **导入必要的库**: - `torch`:PyTorch的核心库,提供张量操作和自动梯度功能。 - `torch.nn`:PyTorch的神经网络模块,包含构建和训练神经网络所需的功能。 - `torch.utils.data`:用于数据加载和处理的数据集工具。 - `torchvision`:包含预训练模型、数据集转换等功能。 - `PIL` 和 `matplotlib.pyplot`:用于图像处理和可视化。 2. **设置超参数**: - `LR=0.001`:学习率,决定每次优化步长的大小。 - `EPOCH=10`:训练轮数,模型在数据集上迭代的次数。 - `train=0`:未在描述中使用,可能是个错误或者预留变量。 3. **设备选择**: - `device=torch.device("cuda" if torch.cuda.is_available() else "cpu")`:根据GPU是否可用,将模型放在GPU或CPU上运行。 4. **图像预处理**: - `size=256`:设定图像的大小。 - `data_transform`:定义一系列预处理操作,包括: - `transforms.Resize(size)`:将图像调整到指定大小。 - `transforms.CenterCrop((size, size))`:中心裁剪,确保图像的宽高比不变。 - `transforms.ToTensor()`:将图像转换为PyTorch的张量格式。 - `transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])`:对像素值进行归一化,通常用于预训练模型。 5. **加载数据**: - `ImageFolder`:一个简单的数据集类,可以处理包含子目录的结构化数据集。 - `train_dataset`:使用`ImageFolder`加载“DogData/”目录下的训练数据,并应用预处理。 - `train_loader`:创建一个数据加载器,批量加载数据,批量大小为10,随机打乱顺序,且使用两个工作线程。 6. **获取单个样本**: - `img, label=train_dataset.__getitem__(600)`:从数据集中获取第600个样本的图像和对应的标签。 7. **反向转换**: - `unloader=torchvision.transforms.ToPILImage()`:定义了一个转换器,用于将张量转换回PIL图像。虽然在代码中注释掉了,但在实际操作中可能会用到。 这个作业主要展示了如何使用PyTorch搭建一个基本的CNN模型来处理图像分类任务。虽然没有给出完整的模型定义和训练部分,但可以推测,接下来吴程锴同学可能将定义一个CNN模型,然后使用`train_loader`加载数据进行训练。整个过程涉及了深度学习模型的构建、数据预处理、模型训练等核心步骤。
![](https://csdnimg.cn/release/download_crawler_static/86287013/bg1.jpg)
下载后可阅读完整内容,剩余8页未读,立即下载
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://profile-avatar.csdnimg.cn/a6c78ea1f30e48719d2af520d7002c59_weixin_35745915.jpg!1)
- 粉丝: 36
- 资源: 305
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)