一、数据集的基本使用介绍
1.数据集的基本介绍
CIFAR-10dataset数据集
在这个数据集中包括了60000张32*32的彩色图片这个图片会有10种类别
['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
每个类别有6000张图像其中有50000张图像训练图片然后10000张是测试图片
这个原始的图片对应的是PIL image我们在这边使用要把这个图片转化为tensor的数据类型
可以通过transform的compose函数对图片进行转化可以进行图片的裁剪,resize等等操作
但是因为这个数据集种的图片是32*32的图片比较小所以现在只进行totensor
然后就可以在这个数据集的操作种加入transform的操作
2.数据集调用的基本使用
root数据集所处的位置这个位置是数据集基础设置的位置 train数据集的状态true训练集 false创建的是测试集 transfrom如果相对数据集产生一定的变化就可以吧transform写在这里 target_transform 对于target进行transform download如果设置为true就会自动从网上下载数据集如果为false的话就不会下载例如我们下载一些数据集要通过晚上搜索比较麻烦但是如果吧torchvision提供的download设置为true的话就会比较方便
2.数据集的下载
1.数据集的下载
import torchvision
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transfrom,download=True)
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transfrom,download=True)
这个root一般写的是相对路径比较好寻找
2.数据集下载出现的问题
如果下载比较慢的话就可以吧下载的链接进行复制把它放到迅雷当中迅雷会自动检测到这个下载链接 迅雷下载的话就不一定会从源地址完全下载下俩有的有p2p加速还有的会有镜像加成通过这些可以在一定成度上加快下载速度 首先的话是一个压缩文件然后会对压缩文件进行解压然后解压形成一定的数据集这个数据集比较小只有100多M所以比较推荐大家平时练习的时候的使用 在文件下载好的情况下就不会在进行下载所以建议在使用torchvision的数据集的时候就一般默认设置为true
迅雷下载过程:
如果没有检测到的话可以:
迅雷下载图像:
下载完成后的结果:
这个因为我设置的root的名称为dataset所以是dataset
3.数据集的基本调用
1.数据集内容的基本调用方式
import torchvision
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transfrom,download=True)
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transfrom,download=True)
print(test_set[0])
print(test_set.classes)
img,target=test_set[0]
print(img)
print(target)
target对应的数据是这个数据集对应的识别出来的图片属性这个target对应的数字为3则这个数据集对应的第一个是类别里面对应的cat
print(test_set.classes[target])
img.show()#展示数据集中的图片
print(test_set[0])
这个数据集可以和数组一样的方式来调用数据集中的具体内容然后也可以通过直接调用属性的方式来显示数据集中的基本属性十种类型['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog','horse', 'ship', 'truck']可以通过单个赋值的方法把数据集单个属性的两个分类分别赋值输出
如下图:
数据的基本属性:
这个后面是对数据集加有transforms的操作这个原始的图片对应的是PIL image我们在这边使用要把这个图片转化为tensor的数据类型转化为totensor数据类型以后就可以直接用tensboard的方式进行显示
import torchvision
from torch.utils.tensorboard import SummaryWriter
dataset_transfrom=torchvision.transforms.Compose([
torchvision.transforms.ToTensor()
])
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transfrom,download=True)
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transfrom,download=True)
# print(test_set[0])
# print(test_set.classes)
# img,target=test_set[0]
# print(img)
# print(target)#target对应的数据是这个数据集对应的识别出来的图片属性这个target对应的数字为3则这个数据集对应的第一个是类别里面对应的cat
# print(test_set.classes[target])
# img.show()#展示数据集中的图片
# print(test_set[0])
writer=SummaryWriter("p10")
for i in range(10):
img,target=test_set[i]
writer.add_image("test_set",img,i)#当想知道需要哪些属性就可以用CTR+p来进行查看首先让我们输入的有标签 传入tensor数据类型的图片 和进行查看的步距
writer.close()#关闭读写
这个用for循环的方式来进行数据集的遍历来查询数据集中的内容转化为tensor的数据类型后的结果
将转化的totensor的数据类型通过totensor的方法来通过tensboard的方式来显示:
1.tensorboard的打开
2.数据集图片在tensorboard中显示的结果
4.总结
基本上所有的torchvision的数据集的使用方式都是这样的这次的数据集展示主要是因为这个数据集比较小如果使用大型的数据集例如COCO等的推荐使用迅雷的方式进行下载。