目录
四、torchvision
1.Transforms
①定义
transforms是对图像、文本等其他数据进行各种变换,也就是对数据进行预处理,以准备数据供深度学习模型使用的工具
②常见用法
2.torchvision数据集的使用
①定义
torchvision包是专门的视觉库,包含了预训练的一些CV神经网络模型;是服务于pytorch深度学习框架的,用来生成图片,视频数据集,和一些流行的模型类和预训练模型。
②用法
代码如下:
import torchvision
from torch.utils.tensorboard import SummaryWriter
#用transforms将PIL_image图片转为Tensor数据类型以供pytorch使用
dataset_transform=torchvision.transforms.Compose([
torchvision.transforms.ToTensor()
])
##./表示当前目录,root是创建一个文件 train表示是训练集还是测试集 download表示是否从网上自动下载数据集
##transform表示将数据转化为别的数据类型
train_set=torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
test_set=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transform,download=True)
# print(test_set[0])
# print((test_set.classes))
#
# img,target=test_set[0]
# print(img)
# print(target)
# print(test_set.classes[target])
# img.show()
#print(test_set[0]) 已经转化为了Tensor数据类型
writer=SummaryWriter("p10")
for i in range(10):
img,target=test_set[i]
writer.add_image("test_set",img,i)
writer.close()
运行结果:
五、dataloader
1.定义
dataloader是一个加载器,把数据加载到神经网络中,是对数据集的一种抓取方式,能够将数据进行乱序,还可以节省空间。
2.用法
使用代码如下:
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
#准备的数据集
test_data=torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=torchvision.transforms.ToTensor())
#batch_size=4表示每次从test_data中取四个数据集进行打包
#shuffle=True时epoch;两轮选的数据不一样
#drop_last 取出最后多余的图像
test_loader=DataLoader(dataset=test_data,batch_size=64,shuffle=True,num_workers=0,drop_last=True)
#测试数据集中第一张图片及target
img,target=test_data[0]
# print(img.shape)
# print(target)
writer=SummaryWriter("p12")
for epoch in range(2):
step=0
for data in test_loader:
imgs,targets=data
#print(imgs.shape)
#print(targets)
writer.add_images("Epoch:{}".format(epoch), imgs, step)
step=step+1
writer.close()
运行结果:
如下图,同样在step155,两组图片却不一样了,便是用dataloader进行了乱序抽取处理。