Pytorch之Dataloader参数collate_fn研究
前言
之前看了不到pytorch代码,对Dataloader的大部分参数都比较了解,今天看代码时,发现了一个参数collate_fn ,之前论文代码没怎么见过,也就自动忽略了,今天既然遇到了,就突然来了好奇心,想搞清楚用途及用法,以下为正文。
问题及实验
- 问题
今天看代码时出现如下问题:
对Dataloader参数中的collate_fn甚感好奇,故想一探究竟。
2. 实验
1):myDataset()类中__getitem__方法返回的数据
代码如下:
测试结果:
可见myDataset()类中__getitem__方法返回值为两个,网络的输入数据为128x40的tensor,输出是个分类标签数据。
2):Dataloader 运行过程
过程:首先Dataloader 会根据batch参数生成一个长度为batch值的列表,列表的值是myDataset()类中__getitem__()的参数,如果shuffle为True ,列表的值就是从0到len(data)中随机抽样索引。然后列表的索引值会依次送入__getitem__()方法,最终返回一个列表的数据,该列表数据会作为collate_fn 函数的参数传入,最终得到一个batch的数据。其中collate_fn 函数可以使用系统默认的也可以使用自己设计的,非常灵活。
debug验证:
程序:
debug1:
进入self._next_data():
index 即为根据batch参数得到的列表:
进入fetch函数:
debug如下:
即fetch函数通过传入index列表得到一个新的列表数据,然后该列表数据通过collate_fn()函数得到最终数据。
--------------------------------------------------------------分割线----------------------------------------------------------
以下无关Dataloarder的使用方法,仅仅是研究以下这里的自定义collate_fn函数的功能。
进入collate_fn函数:
关于zip的拆包功能研究:
测试结果:
通过pad_sequence得到最终结果:
参考文章:
https://blog.csdn.net/dong_liuqi/article/details/114521240
Pytorch之Dataloader参数collate_fn研究相关推荐
- python中fn的用法_Pytorch技巧:DataLoader的collate_fn参数使用详解
DataLoader完整的参数表如下: class torch.utils.data.DataLoader( dataset, batch_size=1, shuffle=False, sampler ...
- pytorch中DataLoader的num_workers参数详解与设置大小建议
Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的? train_loader = torch.utils.data.Data ...
- [Pytorch] Sampler, DataLoader和数据batch的形成
目录 1. 简介 2. 整体流程 3. Sampler和BatchSampler 3.1 Sampler 3.2 BatchSampler 4. DataLoader 4.1 DataLoader 4 ...
- pytorch之深入理解collate_fn
文章目录 前言 dataset dataloader之collate_fn 应用情形 前言 import torch.utils.data as tud collate_fn:即用于collate的f ...
- pytorch Dataset, DataLoader产生自定义的训练数据
pytorch Dataset, DataLoader产生自定义的训练数据 目录 pytorch Dataset, DataLoader产生自定义的训练数据 1. torch.utils.data.D ...
- PyTorch 之 DataLoader
DataLoader DataLoader 是 PyTorch 中读取数据的一个重要接口,该接口定义在 dataloader.py 文件中,该接口的目的: 将自定义的 Dataset 根据 batch ...
- Pytorch之DataLoader Dataset、datasets、models、transforms的认识和学习
文章目录 利用PyTorch框架来开发深度学习算法时几个基础的模块 Dataset & DataLoader 基础概念 自定义数据集 1 读取自定义数据集 1 自定义数据集 2 自定义数据集3 ...
- Pytorch载入部分参数并冻结
参考资料 pytorch 模型部分参数的加载 Pytorch中,只导入部分模型参数的做法 Correct way to freeze layers Pytorch自由载入部分模型参数并冻结 pytor ...
- Pytorch 查看模型参数
Pytorch 查看模型参数 查看利用Pytorch搭建模型的参数,直接看程序 import torch # 引入torch.nn并指定别名 import torch.nn as nn import ...
最新文章
- 在CentOS 6.9 x86_64搭建Lua开发环境
- 通过学习生物范式,寻找解决AI识别噪音的新方法
- 查找命令find的用法
- Linux 配置nfs
- 实模式和保护模式区别及寻址方式
- Flutter VS React Native –为什么我认为Flutter最适合移动应用程序开发
- RGB转灰度图的几种算法
- .NET Standard中使用TCPListener和TCPClient的高性能TCP客户端服务器
- PDE8 wave equation: derivation
- 货物贸易外汇监测系统 企业版_企业能耗在线监测系统介绍
- hanlp和jieba等六大中文分工具的测试对比
- 懒人工作源码分析(1)
- php moodle mysql_搭建基于Windows + Apache + PHP + MySQL的Moodle平台
- 路由表的下一跳地址如何计算
- mumu的adb_MuMu模拟器进行adb操作
- 分治算法详解及经典例题
- 计算个人所得税的html,实验3-6 计算个人所得税 (10 分)
- 阿里云服务器遇到的问题
- FFE均衡技术的原理、作用及特点
- NLP系列笔记:通俗理解LDA主题模型
热门文章
- Android开发:如何隐藏自己的app应用
- Windows - 文件系统 学习/收集
- 树枝学术 | 图书查找、论文查找全攻略
- java8中的lambda表达式实用详解
- python获取地图上经纬度_Python从地图上划出经纬度
- vue项目运行出现66% buil 98% after emitting CopyPlugin
- 万物Linux皆可刷安卓,万物皆可Win,开发者成功在安卓手机刷入Win10系统
- htc+m7+android系统+电源,htc one m7 4.4系统获取root权限教程(安卓4.4专用)
- 区块链公司BitFury与联合国合作开展哈萨克斯坦的森林项目
- vmware+双显示器实现双系统同时使用