深度学习——数据篇
介绍
以下使用公开数据集,是在公开数据集上进行了一些图像变换和转换。在建模之前的一些必要处理。
把数据相关的处理都放到这一章的内容中进行介绍。
注意,开源数据集有一些是可以直接通过pytorch的包load之后直接使用的,没有必要全都转化成.jpg这样的图片格式。有一些数据集下载下来是纯图片和标签,就需要我们手动进行处理,这里只是为了分享经验。如果是打算直接从图片开始,可以跳过前面的部分。
1.数据集
下载开源数据集
数据集去官网即可找到,这里举一个例子。可以在下面的链接下载官方版本,我下载的是FIFAR-100 Python版本。
https://www.cs.toronto.edu/~kriz/cifar.html
2.数据集转图片
下载解压后将数据集可以转换成图片
1 | import os |
3.提取标签
1 | import os |
4.生成标注文件
1 | #生成标注文件 |
5.自己分割训练集和测试集
1 | import torch |
6.从切分后的图像中加载数据集
加载数据集这一块涉及到很多的数据调整,包括裁剪,batchsize等等。
自定义图片数据集的加载
1 | import json |
transforms.Compose的一些用法
1 | self.transform = transforms.Compose([transforms.Resize([224,224]), transforms.CenterCrop([224,224]), transforms.ToTensor(),transforms.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))]) |
transforms的这个折腾了很长事件,它transforms.Compose是一个集合,在这个集合里面可以设置图片缩放大小,裁剪大小,归一化等等操作。
这里需要注意,当Resize只有一个参数时,是将图片的短边拉成Resize的大小,再进行中心裁剪CenterCrop时按照从中心计算的区域进行裁剪。
ToTensor是将向量进行Tensor的归一化计算。
transforms.Normalize则是规定了具体归一化的均值和方差。
解决数据不能被batch_size整除的问题,使用drop_last
1 | test_loader = DataLoader(test_data, batch_size=batch_size, shuffle=True, num_workers=num_workers,drop_last=True) |
drop_last=True就不加入最后不能被整除的部分了。
7.显示单张图片
1 | plt.imshow(train_loader.dataset[0][0][0], cmap='gray') |
- Post title:深度学习——数据篇
- Post author:Yang Li
- Create time:2022-09-20 21:12:00
- Post link:https://yangli-os.github.io//2022/09/20/深度学习-数据篇/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments