tensor.contiguous 的作用

  之前看一些大佬的代码,在对一些feature map进行维度转换处理的时候,在使用tensor.transpose() 等一些维度变换函数后,会先使用 tensor.contiguous() 然后再用tensor.view() 这种维度变形函数


  pytorch官方给的函数解释为:
  Returns a contiguous in memory tensor containing the same data as self tensor. If self tensor is already in the specified memory format, this function returns the self tensor.(返回包含与自张量相同数据的连续内存张量。 如果自张量已经在指定的内存格式中,则此函数返回自张量。)

  再参考一篇博客(链接)的说法:(两种解释)

  1. 当一个Tensor经过 tensor.transpose()、tensor.permute()等这类维度变换函数后,内存并不是连续的,而tensor.view()维度变形函数的要求是需要Tensor的内存连续,所以在运行tensor.view()之前,先使用 tensor.contiguous(),防止报错。

  2. 维度变换函数是进行的浅拷贝操作(只复制了指像某个对象的指针,新旧对象还是共享同一块内存)即view操作会连带原来的变量一同变形,这是不合法的,所以也会报错;---- 这个解释有部分道理,也即contiguous返回了tensor的深拷贝contiguous copy数据;

  不过当在这类操作中忘记调用tensor.contiguous()而报错的话,pytorch也会进行提示:

RuntimeError: input is not contiguous

tensor.contiguous()相关推荐

  1. 【Pytorch】Tensor.contiguous()使用与理解

    官方文档地址:https://pytorch.org/docs/stable/generated/torch.Tensor.contiguous.html?highlight=torch%20cont ...

  2. PyTorch torch.Tensor.contiguous() 用法与理解

    中文文档: contiguous() → Tensor         返回一个内存连续的有相同数据的 tensor,如果原 tensor 内存连续则返回原 tensor 英文文档: contiguo ...

  3. PyTorch: tensor操作(一) contiguous

    本文目录 tensor在内存中的存储 信息区和存储区 shape && stride contiguous 什么时候用contiguous呢? 为什么要用contiguous 为什么c ...

  4. 深度学习框架PyTorch一书的学习-第三章-Tensor和autograd-1-Tensor

    参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 Tensor Tensor可以是一个数 ...

  5. Tensor看这一篇就够了!

    文章目录 Tensor 1. 基础操作 1.1 创建Tensor 1.2 常用Tensor操作 1.3 索引操作 1.4 高级索引 1.5 Tensor类型 1.6 逐元素操作 1.7 归并操作 1. ...

  6. torch对于tensor的常规操作

    前言 使用pytorch框架,会常操作tensor,以下则是对tensor常规操作的汇总. import torch torch.Tensor会继承某些torch的某些数学运算,例如sort, min ...

  7. pytorch 定义torch类型数据_PyTorch官方中文文档:torch.Tensor

    torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...

  8. PyTorch中contiguous、view、Sequential、permute函数的用法

    在pytorch中,tensor的实际数据以一维数组(storage)的形式存储于某个连续的内存中,以"行优先"进行存储. 1. tensor的连续性 tensor连续(conti ...

  9. pytorch中contiguous()

    contiguous:view只能用在contiguous的variable上.如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguou ...

最新文章

  1. Remove Trovi Search from Apple Mac OS X
  2. python输入输出简单例子_Python 文件和流的简单示例
  3. Scrapy定向爬虫教程(二)——提取网页内容
  4. 函数递归以及尾递归调用
  5. [ZOJ 3203] 灯泡
  6. 如何提高阅读源代码的效率 .
  7. HDU1248 寒冰王座 【数学题】or【全然背包】
  8. 漂亮大气注册登录页面模板
  9. 感谢宝贝: 带给我别样人生
  10. Atitit 团队远景规划与目标总结 v4 目录 1. 使命和组织宗旨 1 1.1. 组织使命 1 1.2. 核心价值观 1 2. 行政目标体系 2 2.1. 打造体系齐全的复合体 2 2.2. 人
  11. python实现连接池技术
  12. 想知道怎么在CAD制图里面测量多线段的长度就往这看!
  13. 显卡检测神器 GPU-Z v2.30.0 简体中文汉化版
  14. 黑马程序员————集合框架1(day14)
  15. JQuery-样式篇
  16. U盘如何恢复正常存储U盘
  17. 关于LD1117S12TR
  18. 全球与中国隔膜阀行业调查与未来发展趋势研究报告
  19. windows聚焦壁纸不更新_win7系统下聚焦锁屏壁纸无法自动更换的解决步骤?
  20. The King’s Ups and Downs (线性DP)

热门文章

  1. 看完全都会了!我在华为做Android外包的真实经历!震撼来袭免费下载!
  2. 使用Laya开发微信小游戏时无法使用位图字体解决方案
  3. TencentTbs腾讯浏览服务 x5内核使用
  4. 请教smart form字体预览和打印不一致的变化原因及解决
  5. 【计算机视觉】HSV颜色空间
  6. ecno是什么的缩写_EcIo EcNo等几个概念
  7. python datetime strftime_正确使用python的datetime的strftime方法
  8. worm/spybot_周末娱乐:在Spybot中搜索和销毁复活节彩蛋
  9. 9种自动驾驶传感器融合算法你都知道吗?
  10. 计算日落日出时间算法与代码