PyCharm入门学习笔记(二)Torchvision和DataLoader

文章介绍了Torchvision在PyTorch深度学习框架中的作用,包括用于数据加载的datasets、图像变换的transforms和批量数据读取的DataLoader。以CIFAR10数据集为例,展示了如何使用transforms进行数据预处理,并通过DataLoader进行批量读取。此外,还提到了DataLoader的关键参数及其作用。
摘要由CSDN通过智能技术生成

一、Torchvision

torchvision是pytorch的一个图形库,它服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。以下是torchvision的构成:

  1. torchvision.datasets: 一些加载数据的函数及常用的数据集接口;
  2. torchvision.models: 包含常用的模型结构(含预训练模型),例如AlexNet、VGG、ResNet等;
  3. torchvision.transforms: 常用的图片变换,例如裁剪、旋转等;
  4. torchvision.utils: 其他的一些有用的方法

二、datasets和transforms的使用

简单展示datasets和transforms的结合使用,并显示在tensorboard上

import torchvision
from torch.utils.tensorboard import SummaryWriter

# torchvision的transform设置对数据的操作
dataset_transform = torchvision.transforms.Compose([
    torchvision.transforms.ToTensor()
])
# torchvision的dataset数据集
# root表示下载目录,train为True表示数据集、False表示训练集
# download表示是否从官网下载资源,transform表示对数据进行的操作
train_set = torchvision.datasets.CIFAR10(root="./dataset",
            train=True, download=True, transform=dataset_transform)
test_set = torchvision.datasets.CIFAR10(root="./dataset",
            train=False, download=True, transform=dataset_transform)

# 速度下载比较慢的话,可以把链接复制到迅雷下载,然后把资源压缩包放在root设置的目录下
# 并且会自动把压缩包解压
writer = SummaryWriter("logs")
for i in range(10):
    img, terget = test_set[i]
    writer.add_image("test_set", img, i)
writer.close()

三、datasets和DataLoader的使用

3.1 DataLoader概念

DataLoader与DataSet是PyTorch数据读取的核心。

“torch.utils.DataLoader”的作用是构建一个可迭代的数据装载器,每次执行循环的时候,就从中读取一批Batchsize大小的样本进行训练。

其主要参数有五项:

  1. dataset:隶属DataSet类,表示数据从哪里读取以及如何读取

  2. batchsize:批大小

  3. num_works:是否多进程读取数据

  4. shuffle:每个epoch是否乱序

  5. drop_last:当样本数不能被batchsize整除时,是否舍弃最后一批数据

上述主要参数中num_works通常在单进程时默认为“0”,也可以在支持多进程的设备上设置为允许的“4 | 8 | 16”等。shuffle则通常设置为使用乱序(True),以使得每次数据读取具有随机性。
材料取自

3.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())
# 从数据集中取数据,每次取64个,随机采样,进程为主进程,余数不丢掉
test_loader = DataLoader(dataset=test_data, batch_size=64,
            shuffle=True, num_workers=0, drop_last=False)

writer = SummaryWriter("logs")
step = 0
for data in test_loader:
    imgs, targets = data
    # 记住这里是add_images要加s
    writer.add_images("dataloader", imgs, step)
    step = step + 1
writer.close()

3.3 结果展示

每次取出64张图片,并且最后16张不舍去
在这里插入图片描述
在这里插入图片描述

【参考 PyTorch深度学习快速入门教程 -小土堆】

学习Django时,使用PyCharm作为开发工具可以提高效率。PyCharm是一款功能强大的Python集成开发环境,它提供了丰富的功能和工具,可以帮助开发者更好地编写和调试Django应用程序。 在学习Django的过程中,可以使用PyCharm创建Django项目,并使用其内置的Django支持功能来简化开发过程。PyCharm可以自动识别Django项目的结构,并提供代码补全、语法检查、调试等功能,帮助开发者更快地编写和调试代码。 此外,PyCharm还提供了集成的版本控制系统,如Git,可以方便地管理和追踪代码的变化。它还支持自动化测试和部署,可以帮助开发者更好地进行项目管理和发布。 总之,使用PyCharm作为开发工具可以提高Django学习的效率和便利性。它的强大功能和友好的用户界面使得开发者可以更专注于代码的编写和项目的开发。\[1\] \[2\] \[3\] #### 引用[.reference_title] - *1* *3* [PyCharm平台下初学Django框架](https://blog.csdn.net/howard2005/article/details/93491364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [pycharm平台下的Django教程](https://blog.csdn.net/Sunshine_ZCC/article/details/73918408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值