PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类(限免视频)

PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类(限免视频)
文章图片
PyTorch是当前主流深度学习框架之一 , 其设计追求最少的封装、最直观的设计 , 其简洁优美的特性使得PyTorch代码更易理解 , 对新手非常友好 。
本文为实战篇 , 介绍搭建卷积神经网络进行图像分类 , 扫描文中的二维码可观看视频实操讲解(限免3天) 。
1
实验数据准备
本章中准备使用MIT67数据集 , 这是一个标准的室内场景检测数据集 , 一共有67个室内场景 , 每类包括80张训练图片和20张测试图片 , 读者可以登录http://web.mit.edu/torralba/www/indoor.html , 在如图9.1所示的页面中 , 下载得到这个数据集 。
■图9.1MIT67数据集
将下载的数据集解压 , 主要使用Image文件夹 , 这个文件夹一共包含6700张图片 , 还有TrainImages.txt , 包含67×80张训练集图像路径和它们的标签 , 以及TestImages.txt,包含67×20张测试集图像路径和它们的标签 , 其他的文件在本实验中暂时没有用处 。
2
数据预处理和准备
1

数据集的读取
首先需要将下载的数据集读入内存 , 读入路径和标签这些信息存在于两个.label文件中 。 读取完成后应该得到一个图片路径组成的数组和一个标签组成的数组 。 这一步可以根据机器上的路径进行读取 。 将读取的结果记为train_list,train_labels(test_list,test_labels) 。
我们的最终目标是将输入组织成DataLoader的结构 , 这个结构中将图片像素矩阵与label一一对应并且随机排序 , 这也是能够被PyTorch框架作为输入的标准结构 。 可以通过将上一步得到的数组放入DataLoader的构造函数来自动生成这个类 。
2

重载data.Dataset类
可以发现 , 在构造DataLoader的时候 , 第一个参数是MyDataset类对象 , 首先需要定义这个类 。 这个类是data.Dataset这个PyTorch框架中的数据类的继承 , 需要重写以下几个函数 , 其中尤其要注意使得__getitem__方法可以返回tensor格式的预处理后的图像和标签 。
PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类(限免视频)
文章图片
3

transform数据预处理
PyTorch中利用torchvision中的transforms包对图像输入进行预处理 , 在上一步重载data.Dataset中可以找到这个函数 。 这个函数接受一个PIL图像 , 首先缩放到256×256×3 , 然后随机截取成224×224×3 , 这是为了保证训练集的多样性 , 然后转化成PyTorch运算所接受的tensor格式 , 最后进行数据标准化 。
PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类(限免视频)
文章图片
实操可扫码观看(限免3天)
实例讲解
PyTorch深度学习实战
PyTorch深度学习实战 | 搭建卷积神经网络进行图像分类(限免视频)
文章图片
下期预告
深度学习简介
1.计算机视觉
2.自然语言处理
3.强化学习
深度学习框架
4.PyTorch
PyTorch环境搭建
5.PyTorch环境搭建(Linux和Windows平台)
精彩回顾
实战篇
7.图像风格迁移
8.基于RNN的文本分类
3
参考书籍
《PyTorch深度学习实战-微课视频版》
数学基础和深度学习知识点与8个完整的实战案例相结合 , 配有详细的视频讲解 , 手把手带你通关深度学习 。
作者:吕云翔刘卓然主编关捷雄欧阳植昊杨卓谦华昱云陈妙然黎昆昌吕可馨王渌汀副主编
价格:59.90元
内容简介
本书在内容安排上十分精良 , 为便于数学基础较薄弱的读者学习 , 引入了深度学习数学基础;再由浅入深地以实战案例讲解的方式 , 对于误差反向传播法、卷积运算等进行详细剖析 , 使读者在实现层面上理解;此外还加入了前沿技术 , 如BatchNormalization等内容 。 本书提供了8个完整的项目案例、完整的构建过程、详细的视频讲解以及相应源代码 , 使读者能在实战案例中 , 深入完成深度学习的学习与掌握 。