Pytorch 中的 torch.utils.data.dataloader.default_collate()

1 default_collate() 的作用

  • 将对应的元素类型变为 Tensor 类型的数据

  • 使用torch.utils.data.DataLoder() 处理数据后,当数据中有损坏的文件,我们则需要剔除,剔除试用的是filter(function,iteration)来处理,返回一个迭代器对象,我们可以通过list转换为列表的形式。但是送到神经网络中时,我们还是需要是batch的形式

  • 原来的DataLoader处理后的图像就是tensor的形式。具体的可以看该函数,函数中的关键字里有transform,所以我们需要将处理后的数据,在转换为batch的形式,其实就是将列表中中的元素处理为tensor的形式


2 示例

from torch.utils.data.dataloader import default_collate

a = [(0, 1), (2, 3), (4, 5), (6, 7)]
print('a.type:', type(a))
print(a)
b = default_collate(a)
print('b.type:',type(b))
print(b)
c = [[[0 ,1], [2, 3], [4, 5]],
    [[6, 7], [8, 9], [10, 11]]]
d = default_collate(c)
print('d.type:',type(d))
print(d)

>>> a.type: <class 'list'>
>>> [(0, 1), (2, 3), (4, 5)]
>>> b.type: <class 'list'>
>>> [tensor([0, 2, 4]), tensor([1, 3, 5])]
>>> d.type: <class 'list'>
>>> [[tensor([0, 6]), tensor([1, 7])], [tensor([2, 8]), tensor([3, 9])], [tensor([ 4, 10]), tensor([ 5, 11])]]

注意它的结果, 是将列表中的元素转换为一个一个的 batch的形式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值