tensor.contiguous()
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.(返回包含与自张量相同数据的连续内存张量。 如果自张量已经在指定的内存格式中,则此函数返回自张量。)
再参考一篇博客(链接)的说法:(两种解释)
当一个Tensor经过 tensor.transpose()、tensor.permute()等这类维度变换函数后,内存并不是连续的,而tensor.view()维度变形函数的要求是需要Tensor的内存连续,所以在运行tensor.view()之前,先使用 tensor.contiguous(),防止报错。
维度变换函数是进行的浅拷贝操作(只复制了指像某个对象的指针,新旧对象还是共享同一块内存)即view操作会连带原来的变量一同变形,这是不合法的,所以也会报错;---- 这个解释有部分道理,也即contiguous返回了tensor的深拷贝contiguous copy数据;
不过当在这类操作中忘记调用tensor.contiguous()而报错的话,pytorch也会进行提示:
RuntimeError: input is not contiguous
tensor.contiguous()相关推荐
- 【Pytorch】Tensor.contiguous()使用与理解
官方文档地址:https://pytorch.org/docs/stable/generated/torch.Tensor.contiguous.html?highlight=torch%20cont ...
- PyTorch torch.Tensor.contiguous() 用法与理解
中文文档: contiguous() → Tensor 返回一个内存连续的有相同数据的 tensor,如果原 tensor 内存连续则返回原 tensor 英文文档: contiguo ...
- PyTorch: tensor操作(一) contiguous
本文目录 tensor在内存中的存储 信息区和存储区 shape && stride contiguous 什么时候用contiguous呢? 为什么要用contiguous 为什么c ...
- 深度学习框架PyTorch一书的学习-第三章-Tensor和autograd-1-Tensor
参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 Tensor Tensor可以是一个数 ...
- Tensor看这一篇就够了!
文章目录 Tensor 1. 基础操作 1.1 创建Tensor 1.2 常用Tensor操作 1.3 索引操作 1.4 高级索引 1.5 Tensor类型 1.6 逐元素操作 1.7 归并操作 1. ...
- torch对于tensor的常规操作
前言 使用pytorch框架,会常操作tensor,以下则是对tensor常规操作的汇总. import torch torch.Tensor会继承某些torch的某些数学运算,例如sort, min ...
- pytorch 定义torch类型数据_PyTorch官方中文文档:torch.Tensor
torch.Tensor torch.Tensor是一种包含单一数据类型元素的多维矩阵. Torch定义了七种CPU tensor类型和八种GPU tensor类型: Data tyoe CPU te ...
- PyTorch中contiguous、view、Sequential、permute函数的用法
在pytorch中,tensor的实际数据以一维数组(storage)的形式存储于某个连续的内存中,以"行优先"进行存储. 1. tensor的连续性 tensor连续(conti ...
- pytorch中contiguous()
contiguous:view只能用在contiguous的variable上.如果在view之前用了transpose, permute等,需要用contiguous()来返回一个contiguou ...
最新文章
- Remove Trovi Search from Apple Mac OS X
- python输入输出简单例子_Python 文件和流的简单示例
- Scrapy定向爬虫教程(二)——提取网页内容
- 函数递归以及尾递归调用
- [ZOJ 3203] 灯泡
- 如何提高阅读源代码的效率 .
- HDU1248 寒冰王座 【数学题】or【全然背包】
- 漂亮大气注册登录页面模板
- 感谢宝贝: 带给我别样人生
- Atitit 团队远景规划与目标总结 v4 目录 1. 使命和组织宗旨	1 1.1. 组织使命	1 1.2. 核心价值观	1 2. 行政目标体系	2 2.1. 打造体系齐全的复合体	2 2.2. 人
- python实现连接池技术
- 想知道怎么在CAD制图里面测量多线段的长度就往这看!
- 显卡检测神器 GPU-Z v2.30.0 简体中文汉化版
- 黑马程序员————集合框架1(day14)
- JQuery-样式篇
- U盘如何恢复正常存储U盘
- 关于LD1117S12TR
- 全球与中国隔膜阀行业调查与未来发展趋势研究报告
- windows聚焦壁纸不更新_win7系统下聚焦锁屏壁纸无法自动更换的解决步骤?
- The King’s Ups and Downs (线性DP)
热门文章
- 看完全都会了!我在华为做Android外包的真实经历!震撼来袭免费下载!
- 使用Laya开发微信小游戏时无法使用位图字体解决方案
- TencentTbs腾讯浏览服务 x5内核使用
- 请教smart form字体预览和打印不一致的变化原因及解决
- 【计算机视觉】HSV颜色空间
- ecno是什么的缩写_EcIo EcNo等几个概念
- python datetime strftime_正确使用python的datetime的strftime方法
- worm/spybot_周末娱乐:在Spybot中搜索和销毁复活节彩蛋
- 9种自动驾驶传感器融合算法你都知道吗?
- 计算日落日出时间算法与代码