PyTorch中permute的使用方法


Posted in Python onApril 26, 2022

permute(dims)

将tensor的维度换位。

参数:参数是一系列的整数,代表原来张量的维度。比如三维就有0,1,2这些dimension。

例:

import torch
import numpy    as np

a=np.array([[[1,2,3],[4,5,6]]])

unpermuted=torch.tensor(a)
print(unpermuted.size())  #  ——>  torch.Size([1, 2, 3])

permuted=unpermuted.permute(2,0,1)
print(permuted.size())     #  ——>  torch.Size([3, 1, 2])

 再比如图片img的size比如是(28,28,3)就可以利用img.permute(2,0,1)得到一个size为(3,28,28)的tensor。

利用这个函数permute(0,2,1)可以把Tensor([[[1,2,3],[4,5,6]]]) 转换成

tensor([[[1., 4.],
        [2., 5.],
        [3., 6.]]])

如果使用view,可以得到

tensor([[[1., 2.],
         [3., 4.],
         [5., 6.]]])

附:permute(多维数组,[维数的组合])

比如:

a=rand(2,3,4);  %这是一个三维数组,各维的长度分别为:2,3,4

%现在交换第一维和第二维:

permute(A,[2,1,3])  %变成3*2*4的矩阵

import torch
import numpy    as np
 
a=np.array([[[1,2,3],[4,5,6]]])
 
unpermuted=torch.tensor(a)
print(unpermuted.size())  #  ——>  torch.Size([1, 2, 3])
 
tensor([[[1., 4.],
        [2., 5.],
        [3., 6.]]])
 
permuted=unpermuted.permute(2,0,1)
print(permuted.size())     #  ——>  torch.Size([3, 1, 2])
 
tensor([[[1., 2.],
         [3., 4.],
         [5., 6.]]])

总结

到此这篇关于PyTorch中permute的基本用法的文章就介绍到这了!

Python 相关文章推荐
Python中无限元素列表的实现方法
Aug 18 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 Python
利用python发送和接收邮件
Sep 27 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
Python数据正态性检验实现过程
Apr 18 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 Python
keras .h5转移动端的.tflite文件实现方式
May 25 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
利用python绘制正态分布曲线
Jan 04 Python
Python matplotlib 利用随机函数生成变化图形
方法汇总:Python 安装第三方库常用
Apr 26 #Python
Python 统计序列中元素的出现频度
Apr 26 #Python
Python matplotlib安装以及实现简单曲线的绘制
Python爬虫 简单介绍一下Xpath及使用
分享python函数常见关键字
Apr 26 #Python
python和Appium的移动端多设备自动化测试框架
Apr 26 #Python
You might like
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
图像替换新技术 状态域方法
2010/01/28 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
利用vue开发一个所谓的数独方法实例
2017/12/21 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
windows下安装Python和pip终极图文教程
2017/03/05 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
创建Django项目图文实例详解
2019/06/06 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python程序如何进行保存
2020/07/03 Python
小学生自我鉴定
2013/10/12 职场文书
酒店员工检讨书
2014/02/18 职场文书
本科毕业生求职信
2014/06/15 职场文书
农业项目建议书
2014/08/25 职场文书
诚信考试主题班会
2015/08/17 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
Redis分布式锁Redlock的实现
2021/08/07 Redis
Oracle 触发器trigger使用案例
2022/02/24 Oracle