pytorch数据读取深入理解

来源:投稿 作者:小灰灰
编辑:学姐

了解数据

Q:我现在什么基础也没有,我要学习深度学习,学习cv,学习nlp。

A:首先我们知道,深度学习是建立在数据集的基础上。现在呢,我要有数据,数据可以选择官网下载,或者自己手机上随便找些数据。

假设我有下图人民币数据,有100张一元人民币和一百张100元人民币,总共200张,使用代码划分为训练,验证,测试集比例为8:1:1

现在我有数据啦,但怎么训练呢,就要了解epochiterationbatchsize

Epoch:是整个训练集数据样本都输入到模型里面了,称为一个epoch。

iteration:是一批样本输入到模型中,就称为一个iteration。

batchsize:是批大小,假设我们有一个数据集,里面包含80张图片,我把batchsize设置为8,那么我们需要10个iteration才能训练完整个数据集,就是一个epoch。

代码加载数据

现在我们知道了数据集,那么用代码怎样实现加载呢,就会用到pytorch框架里面的dataset,dataloader,或者tensorflow,mxnet框架里面的数据加载的方法。 我们要设置读取数据集的硬盘路径,

接下来构建dataset和dataloader

#构建MyDataset实例

train_data = RMBDataset(data_dir=train_dir, transform=train_transform)

valid_data = RMBDataset(data_dir=valid_dir, transform=valid_transform)
#构建DataLoder

train_loader = DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuffle=True)

valid_loader = DataLoader(dataset=valid_data, batch_size=BATCH_SIZE)

上面是准备工作,具体的开始在

for i, data in enumerate(train_loader):
    #print(data)
    # forward
    inputs, labels = data

    outputs = net(inputs)

可以看到train_loader里面会调用RMBDataset,那么下图就是这个类,最主要的就是__getitem__函数的编写。输入框架中随机打乱的index,得到数据和标签。因此,pytorch会从dataset里面shuffle=True的条件下,随机打乱形成index,复写__getittem__函数,将下标index输入,实现自己的功能。

因此最终获取数据出来的结果为:获取到图片的路径,然后用image读取出来。

我们现在开始训练,拿到train_loader里面的值,就可以了。

数据预处理

当然上面的步骤只是单独的获取到了数据集,如果我们想要提高模型的泛化能力,就得使用transforms,对图片进行数据中心化,缩放,裁剪,填充等的一些操作,当然pytorch下的torchvision里面已经做好了基本的一些数据增强的操作。

那么我们就要知道,在框架中应该怎么写,根据上图RMBDataset这个类,在创建mydataset的时候就已经传进去框架里面指定好的数据增强类型。

# 构建MyDataset实例

train_data = RMBDataset(data_dir=train_dir, transform=train_transform)

valid_data = RMBDataset(data_dir=valid_dir, transform=valid_transform)

那么我们就需要知道,到底框架哪里执行transforms运算。

根据第二步,我们在getitem中获取到数据,下一步就是数据增强。

这里的self.transform就会根据写的数据增强进行运算。

以上就是对数据进行处理的过程,那么对每一步数据增强,我们都可以进行可视化,看效果是否与自己一样。

点击下方卡片关注《学姐带你玩AI》🚀🚀🚀

回复“环境搭建”免费领取AI开发环境搭建视频教程

码字不易,欢迎大家点赞评论收藏!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PyTorch是一个用于机器学习和深度学习的开源库,提供了丰富的API文档,方便用户进行模型构建、训练和推理。 PyTorch的API文档包含详细的函数说明、参数说明和示例代码。文档中涵盖了所有的模块、类和函数的详细用法,使用户可以快速了解每个API的功能和使用方式。 API文档按照模块划分,包括张量操作、神经网络、数据加载、优化器和损失函数等。每个模块的文档会列出所有可用的函数和类,并提供简明的说明和示例代码,用户可以根据需要选择适合的API进行使用。 在API文档中,每个函数和类都会列出其所需的参数和返回值,以及每个参数的说明和示例值。这有助于用户理解API的输入和输出,更好地使用PyTorch库。 此外,API文档还提供了一些常见任务的示例代码,如图像分类、文本生成和语音识别等。这些示例代码可以帮助用户快速入门并在实际项目中应用PyTorch。 总的来说,PyTorch的API文档是一个非常有价值的资源,它提供了丰富的函数和类的详细说明和示例代码,帮助用户了解和使用PyTorch库的各项功能。无论是初学者还是有经验的开发者,都可以从API文档中获得非常有用的信息,加速模型的开发和应用。 ### 回答2: PyTorch API文档是PyTorch库提供的官方文档,供用户参考和学习如何使用PyTorch库中的各种函数、类和方法。这些文档详细描述了每个API的功能、输入参数、返回值等信息,并提供了示例代码和使用说明,方便用户理解和使用。 PyTorch API文档覆盖了PyTorch库的各个部分,如张量操作、自动微分、神经网络、优化器、数据加载和转换等。用户可以通过索引或搜索来查找特定API文档,并根据自己的需要学习和使用。 PyTorch API文档的编写目的是帮助用户快速入门和使用PyTorch,减少开发过程中的困惑和错误。通过API文档,用户可以了解每个函数或类的功能和用法,从而更好地利用PyTorch库实现自己的深度学习模型或解决问题。 使用PyTorch API文档时,用户应该通过读取文档中的描述和示例来理解API的使用方法和注意事项。文档中通常也会提供一些常见问题的解答或链接到相关资源,以便用户深入学习和扩展使用。 总之,PyTorch API文档是PyTorch库的重要组成部分,提供了用户学习和使用PyTorch的指南。通过阅读和理解这些文档,用户可以更高效地使用PyTorch进行深度学习任务,并在实践中取得更好的结果。 ### 回答3: PyTorch API文档是PyTorch深度学习框架的一份重要参考手册,为开发者提供了关于PyTorch库中各个模块、函数、类等的详细说明和使用示例。这个文档包含了PyTorch中的所有API接口,可以帮助开发者更加高效地使用PyTorch进行深度学习任务的开发。 PyTorch API文档的内容结构清晰,按照PyTorch库的模块分类,如torch、torchvision、torchtext等。每个模块下面都有相应的子模块,如torch.Tensor、torch.nn、torch.optim等。开发者可以根据自己的需求,按照模块和子模块的划分去查找并了解具体的函数、类的使用方式和参数说明。 PyTorch API文档提供了对不同模块、子模块的整理分类,方便开发者快速找到所需的API接口。每个接口都有详细的功能说明、参数说明和使用示例,开发者可以通过这些示例代码来学习如何正确地使用这些API接口。 在PyTorch API文档中,还有一些额外的资源,如教程、应用示例等,可以帮助开发者更深入地理解和应用PyTorch的各种功能。 总的来说,PyTorch API文档是一份对PyTorch库中各个模块、函数、类等进行详细说明的文档,可以帮助开发者更好地学习和使用PyTorch进行深度学习任务,是深度学习开发者的重要参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值