第P3周:天气识别

P1-2了解了pytorch并初步学会了用pytorch构建一个简单的深度学习程序,学会构建CNN网络。

本次连续学习P3-p4:

学习要点和拔高部分:

P3:

要求:1. 本地读取并加载数据。2. 测试集accuracy到达93%

拔高:1. 测试集accuracy到达95%。2. 调用模型识别一张本地图片

一.前期准备

  1. 设置GPU

      2. 导入数据

本次导入数据部分和p1-2直接调用torchvision库的数据集不同,采用调用本地数据的形式。

这里学会了几个函数:

  1. pathlib.Path()
  2. 使用glob()方法获取data_dir路径下的所有文件路径:以下两个例子便于我的理解,都可以直接返回list,第一个也可以不用设定为列表:

data_paths = list(data_dir.glob('*'))

model_name_list = glob(ROOT_DIR + '*')

  1. Split函数分割每个子文件夹

这里设置了绝对路径,在获取子文件夹的时候可以取路径中的最后一个

返回代码:

  1. PIL库:Pillow Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像、调整图像大小和图像颜色处理等。
  2. torchvision.transforms.Compose()这个类的作用就是串联多个图形的统一https://blog.csdn.net/qq_38251616/article/details/124878863

这里完善了对torchvision库的理解。之前的已经学过并且运用了其中的datasets数据库以及使用了utlis中的dataloader进行数据的加载。这次完善了另外几个构成:1models包含了几个常用的模型结构2transforms。

本次训练使用了该类统一了图片尺寸,对图片进行了归一化、标准化处理,并且对数据集进行随机抽样得到了平均值与标准差值。

这里对imagefolder还不是很熟悉,暂时理解就是输出了整个数据集的图片数量,并且输入transform参数对图片进行统一化处理。

  1. 划分数据集

学会了以下函数:

1. torch.utils.data.random_split(total_data, [train_size, test_size])(目前utlis学到的有random_split/datafolder)。输入所有的数据,训练集、测试集size;输出测试集和训练集。

这里相对于p1-2拓展了怎么自己划分数据集的方法。P3中选取了80%的数据作为训练集,剩下的数据作为测试集。

和p1-2不同的是,p1-2是在dataloader里设置了transform参数,这里是在之前的imagefolder里设置,都是属于torch.datasets里的类(也许有共同性?。

这一课也具体介绍了dataloader的用法:用于加载和管理数据的一个实用工具类。它允许你以小批次的方式迭代你的数据集。新掌握的知识点包括以下参数设置:1 num_workers2 pin_memory3 drop_last4timeout5worker_init_fn

二、构建简单的CNN网络

这里介绍了新的知识点,也就是在卷积层和全连接层之间,可以使用之前是torch.flatten()也可以使用我下面的x.view()亦或是torch.nn.Flatten()。

三. 训练模型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值