pytorch dataloader参数,pytorch dataloader读取数据
collate_fn参数的作用是随意改变数据的类型。这些数据由数据加载器加载,如img和target。下面文章主要介绍Pytorch的技能数据加载器中关于collate_fn参数的相关信息。有需要的可以参考一下。
以MNIST为例
从torchvision导入数据集
mnist=数据集。MNIST(root=。/data/,train=True,download=True)
打印(mnist[0])
结果
(PIL。Image . Image Image mode=L size=28x 28 at0x 196 E3 f1 d 898,5)
MINIST数据集的数据集是一个由图片和标签组成的元组。
data loader=torch . utils . data . data loader(dataset=mnist,batch_size=2,shuffle=True,collate_fn=lambda x:x)
对于dataloader:中的每个
打印(每张)
破裂
结果
[(PIL。Image . Image mode=L size=28x 28 at0x 2 CB 3b 105630,0),(PIL。Image . Image Image mode=L size=28x 28 at0x2cb 3b 105668,2)]
Collate_fn是lamda x:x,这意味着不会处理传入的数据。
下面自定义collate_fn看看什么效果
定义整理(数据):
img=[]
label=[]
对于数据:中的每个
img.append(每个[0])
label.append(每个[1])
返回图像,标签
data loader=torch . utils . data . data loader(dataset=mnist,batch_size=2,shuffle=True,collate _ fn=lambda x : collate(x))
对于dataloader:中的每个
打印(每张)
破裂
结果
([PIL。Image . Image mode=L size=28x 28 at0x 241433 a36d 8,PIL。Image . Image mode=L size=28x 28 at0x 241433 a 3710],[9,3])
注意:如果collate_fn参数没有设置,将使用默认的处理函数。
但是您必须确保传入的数据是张量格式的,否则您将报告一个错误。
附:DataLoader完整的参数表如下:
类torch.utils.data.DataLoader(
数据集,
batch_size=1
洗牌=假,
采样器=无,
batch _ sampler=无,
工作人数=0,
collate _ fn=函数default_collate
pin_memory=False,
drop_last=False,
超时=0,
worker_init_fn=None)
DataLoader提供数据集上单进程或多进程的迭代器。
几个关键参数意味着:
-shuffle:设置为True时,每代将对数据集进行加扰。
-collate_fn:这本书怎么取样?我们可以定义自己的函数来精确地实现想要的功能。
-drop_last:告诉如何处理除batch_size以外的数据集长度的数据。True表示丢弃,否则表示保留。
总结
关于Pytorch的Dataloader中的collate_fn参数的使用技巧这篇文章到此为止。关于Dataloader中collate_fn参数的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览以下相关文章。希望你以后能支持热门的IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。