trochvision(1)
如何将数据集与transform结合到一起
一、数据集
Pytorch官网

点击torchvision进入

COCO # 用于目标检测 语义分割
MNIST # 手写文字
CIFAR-10 # 物体识别数据集

1.CIFAR-10

CIFAR-10 数据集的参数(parameters):
root # 数据集的位置
train # 为true 则为训练数据集 为false 则为测试数据集
transform # 对数据集中的元素进行变换,可将transform中的函数相关变化写在改参数位置
target_transform # 对target 进行transform
download # 为true 则在网上下载数据集 为false 则不上网下载
使用案例1:
import torchvision
# 训练集 train=True # 即使数据集已经下载好了 也可以使用 download=True
train_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True)
# 测试集 rain=False
test_set = torchvision.datasets.CIFAR10(root="./dataset",train=False,download=True)
下载结果:

使用案例2
import torchvision
# 训练集 train=True
train_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True)
# 测试集 rain=False
test_set = torchvision.datasets.CIFAR10(root="./dataset",train=False,download=True)
# 输出测试集中的第一个数据 CIFAR-10 中的数据为 PIL Image 格式
print(test_set[0]) # (<PIL.Image.Image image mode=RGB size=32x32 at 0x7F37DB707A90>, 3) 其中3为target
print(test_set.classes) # ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
# test_set.classes 输出用于分类的列表 其中 target==3 代表 cat
img,target = test_set[0] # 可得到测试集中的数据
print(img)
print(target)
# 显示图片
img.show()
运行结果:

使用案例3(与transform结合使用)
import torchvision
from torch.utils.tensorboard import SummaryWriter
# transform 可以通过 Compose 类组合到dataset中
dataset_transform = torchvision.transforms.Compose([
torchvision.transforms.ToTensor()
])
# 训练集 train=True
train_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,transform=dataset_transform,download=True)
# 测试集 rain=False
test_set = torchvision.datasets.CIFAR10(root="./dataset",train=False,transform=dataset_transform,download=True)
print(test_set[0])
writer = SummaryWriter("p10")
for i in range(10):
img,target = test_set[i]
# ℹ 为 step 步数
writer.add_image("test_set",img,i)
运行结果:
/home/zxz/anaconda3/envs/pytorch/bin/python /home/zxz/DEEPLEARNING/DEMO/TensorBoard_1/2.py
Files already downloaded and verified
Files already downloaded and verified
(tensor([[[0.6196, 0.6235, 0.6471, ..., 0.5373, 0.4941, 0.4549],
[0.5961, 0.5922, 0.6235, ..., 0.5333, 0.4902, 0.4667],
[0.5922, 0.5922, 0.6196, ..., 0.5451, 0.5098, 0.4706],
...,
[0.2667, 0.1647, 0.1216, ..., 0.1490, 0.0510, 0.1569],
[0.2392, 0.1922, 0.1373, ..., 0.1020, 0.1137, 0.0784],
[0.2118, 0.2196, 0.1765, ..., 0.0941, 0.1333, 0.0824]],
[[0.4392, 0.4353, 0.4549, ..., 0.3725, 0.3569, 0.3333],
[0.4392, 0.4314, 0.4471, ..., 0.3725, 0.3569, 0.3451],
[0.4314, 0.4275, 0.4353, ..., 0.3843, 0.3725, 0.3490],
...,
[0.4863, 0.3922, 0.3451, ..., 0.3804, 0.2510, 0.3333],
[0.4549, 0.4000, 0.3333, ..., 0.3216, 0.3216, 0.2510],
[0.4196, 0.4118, 0.3490, ..., 0.3020, 0.3294, 0.2627]],
[[0.1922, 0.1843, 0.2000, ..., 0.1412, 0.1412, 0.1294],
[0.2000, 0.1569, 0.1765, ..., 0.1216, 0.1255, 0.1333],
[0.1843, 0.1294, 0.1412, ..., 0.1333, 0.1333, 0.1294],
...,
[0.6941, 0.5804, 0.5373, ..., 0.5725, 0.4235, 0.4980],
[0.6588, 0.5804, 0.5176, ..., 0.5098, 0.4941, 0.4196],
[0.6275, 0.5843, 0.5176, ..., 0.4863, 0.5059, 0.4314]]]), 3)
Process finished with exit code 0
本文介绍了如何在Pytorch的torchvision库中结合数据集与transform进行操作,以CIFAR-10数据集为例,展示了如何下载数据、应用transform如ToTensor,并利用SummaryWriter将数据写入TensorBoard进行可视化。
1012

被折叠的 条评论
为什么被折叠?



