IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> pytorch中tensor维度转换view()和permute() -> 正文阅读

[人工智能]pytorch中tensor维度转换view()和permute()

学习代码的第一个拦路虎,在pytorch中非常常用的维度转换。

首先了解一下tensor的size是怎么来的,几个中括号就说明有几个维度,然后看第一个中括号里用逗号分隔开了几个元素,就是第一个维度的值,其他依次类推。例如Tensor([[[1,2,3],[4,5,6]]])中第一个中括号里为[[1,2,3],[4,5,6]],只有一个元素,第二个中括号内为[1,2,3],[4,5,6],有两个元素,第三个为[1,2,3],有三个元素。

view()

view变换维度,把原先tensor中的数据按行优先的顺序排成一个一维数据(这里应该是因为要求地址是连续存储的),然后按照输入参数要求,组合成其他维度的tensor。例如:

a=torch.Tensor([[[1,2,3],[4,5,6]]])#  ——>  torch.Size([1, 2, 3])
print(a.view(3,2))#  ——>  torch.Size([3, 2])

#输出为:
tensor([[1., 2.],
        [3., 4.],
        [5., 6.]])

permute()

permute将tensor中任意维度调换。permute里的参数对应的是张量a的维度索引,permute的输入参数的维度必须与a一致,并且只能是0,1,2…,dim,能够一一对应地索引到a里面的维度。这个比view()稍微难理解一点,但只要明白每个数值对应维度的索引值,改变索引值最终改变输出值。a.permute(2,0,1)的意思是,把a的最后一个维度放到最前面。详细理解图见下:
在这里插入图片描述

b=torch.Tensor([[[1,2,3],[4,5,6]]])
print(b.size())  #  ——>  torch.Size([1, 2, 3])
permuted=b.permute(2,0,1)
print(permuted.size())     #  ——>  torch.Size([3, 1, 2])
print(permuted)
#输出为:
torch.Size([1, 2, 3])
torch.Size([3, 1, 2])
tensor([[[1, 4]],
        [[2, 5]],
        [[3, 6]]], dtype=torch.int32)

transpose()

对于二维tensor,permute(1,0)做的就是转置,等价于transpose()。

transpose()选择tensor中两个维度进行转置。代码中transpose(1,2)表示将三维张量中的后两维转置。

c=torch.Tensor([[[1,2,3],[4,5,6]]])
print(c.transpose(1,2))
#输出为:
tensor([[[1., 4.],
         [2., 5.],
         [3., 6.]]])
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:37:50  更:2021-08-06 09:51:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:46:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码