当前位置: 首页 > news >正文

pytorch中的contiguous()

官方文档:https://pytorch.org/docs/stable/generated/torch.Tensor.contiguous.html
其描述contiguous为:

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
我们随便初始化的张量一开始都是连续张量,后来在计算中为了加速和节省存储,我们只会操作张量的索引,比如常见的narrow(), view(), expand() 和 transpose()等。这样就会产生在内存上不连续,或者索引值顺序乱序的情况。这样,就需要contiguous()来调整一下。

import torcht = torch.tensor([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]])
print(t.is_contiguous())
# Truett = t.T
print(tt.is_contiguous())
# Falsett_con = tt.contiguous()
print(tt.is_contiguous())
print(tt_con.is_contiguous())
# False
# True

由这个例子,我们可以看出,二维张量转置以后会变得不连续,我们用contiguous做连续化以后并不会覆盖原来的张量,而是重新开辟了一块地址来存储连续的新张量。所以,contiguous只是在存储上做调整,不会改变张量的值。

什么时候该用contiguous呢?答:当系统报错RuntimeError: input is not contiguous的时候。

参考:https://stackoverflow.com/questions/48915810/what-does-contiguous-do-in-pytorch

http://www.lryc.cn/news/391553.html

相关文章:

  • Windows系统安装分布式搜索和分析引擎Elasticsearch与远程访问详细教程
  • 深入理解计算机系统 CSAPP 家庭作业8.26
  • 界面材料知识
  • 【Git】远程仓库操作
  • clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装
  • 短视频电商源码的优势及软件架构解析
  • Git使用[推送大于100M的文件后解救办法]
  • RClone挂载有阿里云的AList
  • [ruby on rails]rails6.0升级6.1
  • 大模型日报 2024-07-04
  • 技术成神之路:设计模式(一)单例模式
  • 四、(3)补充beautifulsoup、re正则表达式、标签解析
  • Vscode快捷键崩溃
  • Spring Boot中的开发工具与插件推荐
  • qt6 获取百度地图(一)
  • overlap的uORF对TE的抑制程度为什么显著高于non-overlap的uORF
  • 面向高精度导航定位领域的UM980RTK定位模块
  • 145-四路16位125Msps AD FMC子卡模块
  • 服务器被劫持
  • 康姿百德磁性床垫好不好,效果怎么样靠谱吗
  • [吃瓜教程]南瓜书第5章神经网络
  • 装饰模式解析:基本概念和实例教程
  • 211.xv6——3(page tables)
  • yum使用报错:ImportError: /lib64/libxml2.so.2: file too short
  • 【Android面试八股文】你是怎么保证Android设备的时间与服务器时间同步的?(使用NTP和TrueTime方案)
  • 解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件
  • SCI一区TOP|徒步优化算法(HOA)原理及实现【免费获取Matlab代码】
  • Android的activity广播无法接收,提示process gone or crashing原因有可能是那些?
  • 如何将等保2.0的要求融入日常安全运维实践中?
  • 51单片机嵌入式开发:STC89C52环境配置到点亮LED