Pytorch_Geometric(PyG)使用DataLoader报错RuntimeError: Sizes of tensors must match except in dimension 0.

使用Pytorch_Geometric(PyG)时构建DataLoader,从DataLoader获取样本Batch时报错: RuntimeError: Sizes of tensors must match except in dimension 0.

Pytorch_Geometric(PyG)使用DataLoader报错RuntimeError: Sizes of tensors must match except in dimension 0.

报错原因是数据对齐错误,1个batch是多个样本的集合,在样本拼接成集合时出现错误,其规律如下:

  • 使用pytorch-geometric的dataloader时,batch的各个样本合并规则
  • 属性edge_index规则特殊,每个样本edge_index为2 × e i 2\times e_i 2 ×e i ​,则合并n个样本形成一个batch之后的batch.edge_index大小为2 × ( ∑ i = 1 n e i ) 2\times(\sum_{i=1}^n e_i)2 ×(∑i =1 n ​e i ​)
  • 其他所有属性如果为tensor,则按照第一个维度扩展,例如对于属性x x x,第一个样本大小为d 1 × d 2 d_1\times d_2 d 1 ​×d 2 ​,第二个样本大小为d 3 × d 2 d_3\times d_2 d 3 ​×d 2 ​,则如果有一个batch包含这两个样本,batch.x的大小会是( d 3 + d 1 ) × d 2 (d_3+d_1)\times d_2 (d 3 ​+d 1 ​)×d 2 ​。 这里一个巨坑,要求除了第一个维度之外,其他维度大小都必须要相同!! 否则会报错 RuntimeError: Sizes of tensors must match except in dimension 0.
  • 其他属性如果不是tensor,就会正常按照列表返回,batch.x=[ 样本1的x,样本2的x,样本3的x]

如何解决:

  • 如果是使用torch tensor引起的,可以考虑想办法对齐除了第一个维度外,其他维度的宽度。
  • 如果没办法对齐,使用非tensor数据类型替换,例如列表。
  • 最后的选择,指定batch_size=1以规避。 dataloader=DataLoader(MyData,batch_size=1)

2022/06/23原始

2023/02/20更新
https://pytorch-geometric.readthedocs.io/en/latest/notes/batching.html
这个是官网更详细的描述,直接看这个简单

Original: https://blog.csdn.net/weixin_44839047/article/details/125419476
Author: Deno_V
Title: Pytorch_Geometric(PyG)使用DataLoader报错RuntimeError: Sizes of tensors must match except in dimension 0.

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/707617/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • np.argmax()函数

    函数:numpy.argmax(array, axis)array:代表输入数组;axis:代表对array取行(axis=0)或列(axis=1)的最大值。 x = np.ara…

    人工智能 2023年7月30日
    060
  • DPU到底是什么?真能做到与CPU、GPU比肩

    DPU:第三颗主力芯片 英伟达吹爆的DPU到底是啥?真能做到与CPU、GPU比肩? 2020年,NVIDIA在GTC战略发布中将DPU定义为,继CPU和GPU之后”第三…

    人工智能 2023年6月4日
    0134
  • 语音合成论文优选:语音合成综述(2021)

    声明:工作以来主要从事TTS工作,平时看些文章做些笔记。文章中难免存在错误的地方,还望大家海涵。平时搜集一些资料,方便查阅学习:TTS 论文列表 http://yqli.tech/…

    人工智能 2023年5月25日
    077
  • Matlab中镜头畸变矫正

    matlab中其实自己带了镜头畸变矫正的代码。找了很久才发现原来兜兜转转还是回到原点 %% Correct Image for Lens Distortion%%%close al…

    人工智能 2023年6月22日
    069
  • 项目:机器学习+FLD分类+python图像处理mnist数据集

    机器学习+FLD分类+python图像处理mnist数据集 ** 以mnist数据集实现Fisher Linear Discriminant(FLD)的分类以及降维功能 任务一如下…

    人工智能 2023年7月1日
    083
  • YoloV1~YoloV4

    Yolov1-v4 文章目录 Yolov1-v4 一. Yolo是什么? * (一)目标检测 (二) Yolo 系列 二. Yolo的演进 * (一)Yolov1 – …

    人工智能 2023年7月9日
    073
  • HuggingFace简明教程

    视频链接:HuggingFace简明教程,BERT中文模型实战示例.NLP预训练模型,Transformers类库,datasets类库快速入门._哔哩哔哩_bilibili 1….

    人工智能 2023年6月23日
    083
  • NCCL基本介绍

    前言 调研一下NCCL,所以在这里记录一下。 参考: NCCL DOCUMENTATIONNCCL Slide浅谈GPU通信和PCIe P2P DMA 简介 NCCL是NVIDIA…

    人工智能 2023年6月15日
    0107
  • 负对数似然(negative log-likehood, NLL)

    目录 1. 似然 2. 最大似然估计 3. 对数似然 4. 负对数似然 5. 补充说明 Reference 1. 似然 似然与概率不同。 概率是指一个事件发生的可能性,描述的是对象…

    人工智能 2023年7月21日
    098
  • 机器学习之随机森林

    一、集成学习 在机器学习的有监督学习算法中,我们的目标是通过训练学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个偏向于某方面比较好的模型…

    人工智能 2023年6月16日
    081
  • 第三届“马栏山杯” 国际音视频算法大赛

    ; 比赛简介 第三届”马栏山杯”国际音视频算法大赛如期而至!本次大赛分为邀请赛、正式赛及现场颁奖交流分享三个阶段,通过汇集国内一线音视频项目的真实痛点,鼓励…

    人工智能 2023年5月28日
    085
  • Google Colab 无敌详细使用教程

    目录 什么是Google Colab 谷歌云盘(Google Driver) 一、使用Colab进行训练 1.数据集的上传 2、预训练权重的上传 3.深度学习网络的上传 二、打开C…

    人工智能 2023年6月26日
    082
  • 点云3D目标检测之——尝试SFD代码跑通(超详细!!)

    前言 到目前为止还没跑通,但是bug实在太多了,我的每一步都有错,如果不记录下来又会有遗漏,(肯定已经遗漏了很多),在这里把能想起来的都记录一下以便不时之需。另外,本人深度学习小白…

    人工智能 2023年7月9日
    066
  • torchvision工具包之torchvision.datasets以及torch.utils.DataLoader的使用

    一、torchvision工具包(计算机视觉工具包)中包含3个主要模块: 1.torchvision.datasets:常用的数据集的dataset实现。 2.torchvisio…

    人工智能 2023年6月25日
    086
  • Pandas

    1.Pandas的数据结构分析 Pandas中的两个主要数据结构:Series和DataFrame Series:一维的数据结构 DataFrame:二维的,表格型的数据结构 (1…

    人工智能 2023年7月8日
    094
  • Pytorch手动实现softmax回归

    文章目录 简述 理论基础 * 回归 softmax 损失函数 读取数据 初始化模型参数 实现softmax运算 定义模型 定义损失函数 计算分类准确率 训练模型 预测 整体代码 *…

    人工智能 2023年6月17日
    060
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球