学习pytorch6 torchvision中的数据集使用

这篇具有很好参考价值的文章主要介绍了学习pytorch6 torchvision中的数据集使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


B站 小土堆 视频学习笔记

1. torchvision中的数据集使用

官网文档

注意左上角的版本

https://pytorch.org/vision/0.9/
学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

注意点1 totensor实例化不要忘记加括号

totensor实例化不要忘记加括号,否则后面用数据集序列号的时候会报错
学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

注意点2 download可以一直保持为True

download可以一直保持为True,下载一次后指定目录下有下载好的数据集,代码不会重复下载,也可以自己把下载好的数据集压缩包放到指定目录,代码会自动解压缩

代码

from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets, transforms

# 用法1
# 数据下载很慢的话 可以使用迅雷下载,属性里面可以看到迅雷是从多方下载的,速度比较快 https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
train_set = datasets.CIFAR10(root='./dataset', train=True, download=True)
test_set = datasets.CIFAR10(root='./dataset', train=False, download=True)
# 下载的数据集是图片类型,可以debug查看数据
print(test_set[0])  # __getitem__ return img, target
print(type(test_set[0]))
img, target = test_set[0]
print(target)
print(test_set.classes[target])
print(img)
# PIL 图片可以直接show函数展示
img.show()

# 用法2
# 将数据集批量调用transforms,使用tensor数据类型
# trans_compose = transforms.Compose([transforms.ToTensor])  # 错误写法 会导致后面报错
trans_compose = transforms.Compose([transforms.ToTensor()])
train_set2 = datasets.CIFAR10(root='./dataset', train=True, transform=trans_compose, download=True)
test_set2 = datasets.CIFAR10(root='./dataset', train=False, transform=trans_compose, download=True)
print(type(test_set2[2]))
img, target = test_set2[0]
print(target)
print(test_set2.classes[target])
print(type(img))
writer = SummaryWriter("logs")
for i in range(10):
    img_tensor, target = test_set2[i]
    writer.add_image('tensor dataset', img_tensor, i)
writer.close()

执行结果

> p11_torchvision_dataset.py
Files already downloaded and verified
Files already downloaded and verified
(<PIL.Image.Image image mode=RGB size=32x32 at 0x1CF47DA9E20>, 3)
<class 'tuple'>
3
cat
<PIL.Image.Image image mode=RGB size=32x32 at 0x1CF47DA9E20>
Files already downloaded and verified
Files already downloaded and verified
<class 'tuple'>
3
cat
<class 'torch.Tensor'>

Process finished with exit code 0

2. DataLoader的使用

学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

官方文档

https://pytorch.org/docs/stable/data.html?highlight=dataloader#torch.utils.data.DataLoader

参数解释

Parameters:

  • dataset (Dataset) – dataset from which to load the data.
    加载哪个数据

  • batch_size (int, optional) – how many samples per batch to load (default: 1).
    每次拿多少数据

  • shuffle (bool, optional) – set to True to have the data reshuffled at every epoch (default: False).
    当设置为False,则两次拿的数据都是一样的【相当于设置了随机数种子】,当设置为True,则每次拿的数据不一样

  • sampler (Sampler or Iterable, optional) – defines the strategy to draw samples from the dataset. Can be any Iterable with len implemented. If specified, shuffle must not be specified.

  • batch_sampler (Sampler or Iterable, optional) – like sampler, but returns a batch of indices at a time. Mutually exclusive with batch_size, shuffle, sampler, and drop_last.

  • num_workers (int, optional) – how many subprocesses to use for data loading. 0 means that the data will be loaded in the main process. (default: 0)
    多进程取数据,设置为0则用主进程执行,win系统不设置为0可能报下面的错误BrokenPipeError

  • collate_fn (Callable, optional) – merges a list of samples to form a mini-batch of Tensor(s). Used when using batched loading from a map-style dataset.

  • pin_memory (bool, optional) – If True, the data loader will copy Tensors into device/CUDA pinned memory before returning them. If your data elements are a custom type, or your collate_fn returns a batch that is a custom type, see the example below.

  • drop_last (bool, optional) – set to True to drop the last incomplete batch, if the dataset size is not divisible by the batch size. If False and the size of dataset is not divisible by the batch size, then the last batch will be smaller. (default: False)
    当数据总数除以batch_size 除不尽有余数是,设置为True是余下的数据不参与训练,舍去余数,设置为False则剩下的数据就参与训练,不舍弃余数。默认为False

  • timeout (numeric, optional) – if positive, the timeout value for collecting a batch from workers. Should always be non-negative. (default: 0)

  • worker_init_fn (Callable, optional) – If not None, this will be called on each worker subprocess with the worker id (an int in [0, num_workers - 1]) as input, after seeding and before data loading. (default: None)

  • generator (torch.Generator, optional) – If not None, this RNG will be used by RandomSampler to generate random indexes and multiprocessing to generate base_seed for workers. (default: None)

  • prefetch_factor (int, optional, keyword-only arg) – Number of batches loaded in advance by each worker. 2 means there will be a total of 2 * num_workers batches prefetched across all workers. (default value depends on the set value for num_workers. If value of num_workers=0 default is None. Otherwise if value of num_workers>0 default is 2).

  • persistent_workers (bool, optional) – If True, the data loader will not shutdown the worker processes after a dataset has been consumed once. This allows to maintain the workers Dataset instances alive. (default: False)

  • pin_memory_device (str, optional) – the data loader will copy Tensors into device pinned memory before returning them if pin_memory is set to true.
    当num_worker>0 在windows上使用的时候可能会报错 BrokenPipeError,此时可以把num_wordker参数设置为0试试

https://blog.csdn.net/Ginomica_xyx/article/details/113745596
https://www.ngui.cc/el/1916356.html?action=onClick

学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

DataLoader的返回值,返回两个迭代器

学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集
取数据的时候,默认是随机采样 sampler
学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

代码

from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets
from torchvision import transforms


test_set = datasets.CIFAR10(root='./dataset', train=False, transform=transforms.ToTensor(), download=True)
"""
注意调整的参数:
1. batch_size 一次拿多少张图片
2. shuffle  两个epoch数据顺序是否一致 false不打乱,顺序一致
3. drop_last 除不尽batch_size余下的样本是否丢弃不处理, false 剩余样本不丢弃,数据一样处理
"""
# data = DataLoader(dataset=test_set, batch_size=4, shuffle=False, num_workers=0, drop_last=False)
data = DataLoader(dataset=test_set, batch_size=64, shuffle=False, num_workers=0, drop_last=False)
# data = DataLoader(dataset=test_set, batch_size=64, shuffle=False, num_workers=0, drop_last=True)
# data = DataLoader(dataset=test_set, batch_size=64, shuffle=True, num_workers=0, drop_last=True)

writer = SummaryWriter("logs")
for epoch in range(2):
    step = 0
    for one in data:
        imgs, targets = one
        # print(imgs.shape)
        # print(targets)
        """add_images 可以在同一张画布上展示多张图片, imgs有多少张展示多少张"""
        writer.add_images("step_dropFalse: {}".format(epoch), imgs, step)
        # writer.add_images("step_dropTrue: {}".format(epoch), imgs, step)
        # writer.add_images("step_dropTrue_shufTrue: {}".format(epoch), imgs, step)
        step += 1

writer.close()

执行结果

1. shuffle=False 不重新洗牌,拿到数据的顺序一致

学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

2. shuffle=True 重新洗牌,拿到数据的顺序不一致

学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集

3. drop_last=False 不丢弃未除尽batch的样本

学习pytorch6 torchvision中的数据集使用,python,学习pytorch,学习,python,pytorch,数据集文章来源地址https://www.toymoban.com/news/detail-682443.html

到了这里,关于学习pytorch6 torchvision中的数据集使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PyTorch与torchvision、torchaudio、python版本对应关系

    PyTorch与torchvision、python 对应关系 torch    torchvision    python main / nightly    main / nightly    =3.7, =3.10 1.12.0    0.13.0    =3.7, =3.10 1.11.0    0.12.3    =3.7, =3.10 1.10.2    0.11.3    =3.6, =3.9 1.10.1    0.11.2    =3.6, =3.9 1.10.0    0.11.1    =3.6, =3.9 1.9.1    0.10.1    =3.6, =3.9 1.

    2024年02月09日
    浏览(37)
  • python的pytorch和torchvision利用wheel文件安装

    在做人工智能的时候,我们需要下载pytorch和torchvision,那么如何下载呢。利用wheel文件+pip安装 首先要看你的python版本,打开命令行,输入: 就可以看到了 打开下载网址 pytorch和torchvision下载地址 根据你的电脑下载相应的wheel包,我的电脑是windows,cpu,x64,python3.9所以我选择

    2024年02月07日
    浏览(32)
  • torchvision pytorch预训练模型目标检测使用

    参考: https://pytorch.org/vision/0.13/models.html https://blog.csdn.net/weixin_42357472/article/details/131747022 有分类、检测、分割相关预训练模型 https://pytorch.org/vision/0.13/models.html#object-detection-instance-segmentation-and-person-keypoint-detection https://h-huang.github.io/tutorials/intermediate/torchvision_tutorial.html https

    2024年03月19日
    浏览(42)
  • Anaconda搭建深度学习虚拟环境:cuda+cudnn+pytorch+torchvision(并验证)

    1.以管理员的身份打开Anaconda Prompt窗口: 2.创建新的虚拟环境: 3.激活刚刚创建好的虚拟环境: 1.右击鼠标打开NVIDIA控制面板,查看显卡支持的最高CUDA版本: 2.Anaconda 换清华镜像源,提高下载速度: 3.我电脑的CUDA最高支持12.0,但注意 在环境中安装比电脑CUDA版本低的 ,因为

    2023年04月09日
    浏览(148)
  • PyTorch中torch、torchtext、torchvision、torchaudio与Python版本兼容性

    torch与torchtext,Python对应关系,来源:https://pypi.org/project/torchtext/ 截止发文,最新版本:torch 2.0.0,torchtext 0.15.1 安装方法: 或 torch与torchvision,Python对应关系,来源:https://github.com/pytorch/vision 截止发文,最新版本:torch 2.0.0,torchvision 0.15.1 安装方法: 或 torch与torchaudio,Pyt

    2024年02月04日
    浏览(81)
  • 深度学习:Pytorch安装的torch与torchvision的cuda版本冲突问题与解决历程记录

    今天不小心将conda环境中的一个pytorch环境中的torch包给搞混了,将其更新了一下,发生了一些问题: 当时运行了一下这个代码:  pip install torchvision --upgrade 导致了环境中包的混乱: 只能说欲哭无泪,当时这个 pytorch环境中我是安装的CUDA11.8的版本应该,后来安装了cpu版本的将

    2024年02月20日
    浏览(48)
  • PyTorch框架中torch、torchvision、torchaudio与python之间的版本对应关系(9月最新版)

    随着python语言和pytorch框架的更新,torchtorchvisiontorchaudio与python之间的版本对应关系也在不断地更新。 最新版本 torch与torchvision 对应关系如下: 稍旧版本 torch与torchvision 对应关系如下: 最新版本 torch与torchaudio 对应关系如下:

    2024年02月21日
    浏览(49)
  • python 3.7安装并配置 pytorch(torch 1.8.2 + cuda 11.1 + torchaudio 0.8.2 + torchvision 0.9.2)

    本篇文章主要介绍在Windows下 python 3.7 配置 pytorch,帮助需要的朋友避坑 安装 pytorch 需要多个版本适配,本文提供一种使用于python 3.7 和 cuda 的安装方法,同时给出一些处理问题的建议 python 3.7 是比较稳定的版本,可以根据自己的需求安装,可以参考博客: anaconda安装 补充:

    2024年02月03日
    浏览(61)
  • pytorch的安装(CUDA10.2+cuDNN8.3.3+torch1.10+​torchvision​0.11.1+python3.9)

    (已存网盘和硬盘,文件夹含三个文件) 本文基本逻辑是: 一、先根据电脑硬件的条件获取本身CUDA版本,据此以及表格比较得出cuDNN、torch、torchvision、python版本。 二、在 NVIDIA 官网下载CUDA和cuDNN,获取torch的下载链接,网页提供python3.9的下载链接 三、安装CUDA后,把cuDNN这个

    2024年01月17日
    浏览(85)
  • PyTorch-torchvision

    dataset.py Ps:如果是从其他地方下载的gz文件,直接建立一个dataset文件夹然后将gz文件放进去,再运行。  result: PIL.Image.Image image mode=RGB size=32x32 at 0x1F9FA5D3E50 3 cat dataset.py result: (tensor([[[0.6196, 0.6235, 0.6471,  ..., 0.5373, 0.4941, 0.4549],          [0.5961, 0.5922, 0.6235,  ..., 0.5333, 0.4902, 0

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包