iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Pytorch使用技巧之Dataloader中的collate_fn参数详析
  • 562
分享到

Pytorch使用技巧之Dataloader中的collate_fn参数详析

2024-04-02 19:04:59 562人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

以MNIST为例 from torchvision import datasets mnist = datasets.MNIST(root='./data/', train=True

以MNIST为例

from torchvision import datasets
mnist = datasets.MNIST(root='./data/', train=True, download=True)
print(mnist[0])

结果

(<PIL.Image.Image image mode=L size=28x28 at 0x196E3F1D898>, 5)

MINIST数据集的dataset是由一张图片和一个label组成的元组

dataloader = torch.utils.data.DataLoader(dataset=mnist, batch_size=2, shuffle=True,collate_fn=lambda x:x)
for each in dataloader:
    print(each)
    break

结果

[(<PIL.Image.Image image mode=L size=28x28 at 0x2CB3B105630>, 0), (<PIL.Image.Image image mode=L size=28x28 at 0x2CB3B105668>, 2)]

collate_fn为lamda x:x时表示对传入进来的数据不做处理

下面自定义collate_fn看看什么效果

def collate(data):
    img = []
    label = []
    for each in data:
        img.append(each[0])
        label.append(each[1])
    return img,label
dataloader = torch.utils.data.DataLoader(dataset=mnist, batch_size=2, shuffle=True,collate_fn=lambda x:collate(x))
for each in dataloader:
    print(each)
    break

结果

([<PIL.Image.Image image mode=L size=28x28 at 0x241433A36D8>, <PIL.Image.Image image mode=L size=28x28 at 0x241433A3710>], [9, 3])

说明:若不设置collate_fn参数则会使用默认处理函数

但必须保证传进来的数据都是tensor格式否则会报错

附:DataLoader完整的参数表如下:

class torch.utils.data.DataLoader(
    dataset,
    batch_size=1,
    shuffle=False,
    sampler=None,
    batch_sampler=None,
    num_workers=0,
    collate_fn=<function default_collate>,
    pin_memory=False,
    drop_last=False,
    timeout=0,
    worker_init_fn=None)

DataLoader在数据集上提供单进程或多进程的迭代器

几个关键的参数意思:

- shuffle:设置为True的时候,每个世代都会打乱数据集

- collate_fn:如何取样本的,我们可以定义自己的函数来准确地实现想要的功能

- drop_last:告诉如何处理数据集长度除于batch_size余下的数据。True就抛弃,否则保留

总结

到此这篇关于PyTorch使用技巧之Dataloader中的collate_fn参数的文章就介绍到这了,更多相关Dataloader中的collate_fn参数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Pytorch使用技巧之Dataloader中的collate_fn参数详析

本文链接: https://www.lsjlt.com/news/142802.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Pytorch使用技巧之Dataloader中的collate_fn参数详析
    以MNIST为例 from torchvision import datasets mnist = datasets.MNIST(root='./data/', train=True...
    99+
    2024-04-02
  • pytorch中dataloader的sampler参数详解
    目录1. dataloader() 初始化函数2. shuffle 与sample 之间的关系3. sample 的定义方法3.1 sampler 参数的使用4. batch 生成过...
    99+
    2024-04-02
  • Pytorch中DataLoader的使用方法详解
    目录一:dataset类构建。二:DataLoader使用三:举例前言加载数据datasetdataloader在Pytorch中,torch.utils.data中的Dataset...
    99+
    2024-04-02
  • Python必备技巧之函数的使用详解
    目录1.如何用函数2.默认参数陷阱2.1针对可变数据类型,不可变不受影响3.名称空间和作用域4.闭包函数5.函数的参数5.1定义阶段5.2调用阶段6.装饰器:闭包函数的应用6.1装饰...
    99+
    2024-04-02
  • Golang函数的指针参数使用技巧
    Golang函数的指针参数使用技巧在Golang中,函数的指针参数是非常常见的用法。它可以让我们在函数内部修改传入的参数值,而不需要返回多个值。本文将介绍一些使用指针参数的技巧,以及注意事项。一、指针参数的定义在Golang中,使用指针作为...
    99+
    2023-05-16
    技巧 Golang 函数指针
  • C++ 函数模板中类型参数的使用技巧?
    使用类型参数技巧可以创建针对任何类型工作的通用 c++++ 函数模板,包括:声明类型参数:使用尖括号 和 typename 声明类型参数。使用类型参数:在函数体内使用类型参数作为类型声...
    99+
    2024-04-15
    c++ 函数模板
  • Python命令行参数解析的实用技巧
    Python命令行参数解析的实用技巧 在使用Python编写脚本时,经常需要从命令行获取参数。Python内置的argparse模块提供了一个简单而强大的实现命令行参数解析的工具。本文将介绍argparse的基本用法,并提供一些...
    99+
    2024-02-03
    命令行参数解析 命令行解析器
  • pytorch中BatchNorm2d函数的参数怎么使用
    本篇内容主要讲解“pytorch中BatchNorm2d函数的参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pytorch中BatchNorm2d函数的参数怎么使用”吧!BN原理、作...
    99+
    2023-07-04
  • Redis实战之Lettuce的使用技巧详解
    目录一、摘要二、Lettuce2.1、基本使用2.2、同步操作2.3、异步操作2.4、响应式编程2.5、发布和订阅2.6、客户端资源与参数配置2.7、线程池配置2.8、主从模式配置2.9、哨兵模式配置2.10、Clust...
    99+
    2022-12-23
    Redis Lettuce使用技巧 Redis Lettuce使用 Redis Lettuce
  • PHP开发中的技巧:巧妙使用default参数优化代码逻辑
    PHP开发中的技巧:巧妙使用default参数优化代码逻辑 在PHP开发中,我们经常会遇到需要处理各种不同情况的代码逻辑。为了提高代码的可读性、简洁性和易维护性,我们可以巧妙地运用de...
    99+
    2024-04-02
  • Git操作规范之tag的使用技巧详解
    目录常用分支masterdevelopreleasehotfix使用注意tag规范打tag场景tag命名规范版本类型说明版本号设置规范场景举例新需求修复bug重大版本更新特殊情况常用...
    99+
    2024-04-02
  • SpringBoot参数校验之@Validated的使用详解
    目录简介依赖用法1:不分组代码测试用法2:分组代码测试简介 说明 本文用示例说明SpringBoot的@Validated的用法。 依赖 <dependency> ...
    99+
    2024-04-02
  • SpringBoot参数校验之@Valid的使用详解
    目录简介依赖代码 测试测试1:缺少字段测试2:不缺少字段测试3:缺少字段,后端获取BindResult 简介 说明 本文用示例说明SpringBoot的@Vali...
    99+
    2024-04-02
  • H5中position属性的使用技巧解析
    掌握H5中position属性的使用技巧,需要具体代码示例H5是一种用于网页设计和开发的标记语言,其中的position属性是控制元素定位的重要属性之一。在本篇文章中,我们将讨论position属性的几种常见使用技巧,并提供具体的代码示例。...
    99+
    2023-12-27
    使用技巧 H position属性
  • 一文详解Lombok中@ToString()的使用技巧
    目录Lombok 的使用Lombok的配置父类 toString() 的调用省略字段名称使用字段代替 Getter字段的包含和排除输出排序方法输出修改字段名称打印数组有一些注意点在平...
    99+
    2023-02-03
    Lombok @ToString()使用技巧 Lombok @ToString()使用 Lombok @ToString()
  • 详解Pandas中stack()和unstack()的使用技巧
    目录介绍1.单层2.多层次:简单案例3. 多层次:缺失值4. 多层次:规定要堆叠的层次5. 多层次:删除缺失值6. unstack: 简单案例7. unstack:更多用法结论介绍 ...
    99+
    2024-04-02
  • PHP8中的数组函数:array_map()的详细应用技巧
    近年来,随着互联网行业的迅速发展,编程语言也在不断地更新换代。PHP作为一种较为流行的编程语言,也在这种趋势下不断发展。PHP8作为最新的版本,更新了其内置函数库,提供了更多实用的函数。本文将介绍PHP8中的数组函数array_map()的...
    99+
    2023-05-18
    PHP 数组函数 array_map()
  • Visual Studio使用小技巧之区块选择的示例分析
    这篇文章主要介绍Visual Studio使用小技巧之区块选择的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!区块选择(box selection)大家应该都很熟悉了,就是按住Alt键,然后拖动鼠标,跨越多行...
    99+
    2023-06-17
  • 写批处理必备的命令参数使用技巧有哪些
    小编给大家分享一下写批处理必备的命令参数使用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 首先批处理文件是一个文本文件,这个文件的每一行都是...
    99+
    2023-06-09
  • shell重定向的使用技巧以及PHP中的数据类型解析!
    Shell重定向的使用技巧以及PHP中的数据类型解析 Shell是Linux系统中常用的命令行工具,而重定向是Shell的一种非常重要的功能。它可以将一个命令的输出结果输入到另一个命令中,或者将输出结果保存到文件中。在本文中,我们将介绍一些...
    99+
    2023-08-09
    数据类型 shell 重定向
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作