Python3 Tensorlfow:增加或者减小矩阵维度的实现


Posted in Python onMay 22, 2020

1.增加维度

下面给出两个样例

样例1:

[1, 2, 3] ==> [[1],[2],[3]]

import tensorflow as tf

a = tf.constant([1, 2, 3])
b = tf.expand_dims(a,1)

with tf.Session() as sess:
 a_, b_ = sess.run([a, b])
 print('a:')
 print(a_)
 print('b:')
 print(b_)

输出结果

a:
[1 2 3]
b:
[[1]
 [2]
 [3]]

样例2:

[1, 2, 3] ==> [[1,2,3]]

import tensorflow as tf

a = tf.constant([1, 2, 3])
b = tf.expand_dims(a, 0)

with tf.Session() as sess:
 a_, b_ = sess.run([a, b])
 print('a:')
 print(a_)
 print('b:')
 print(b_)

输出结果:

a:
[1 2 3]
b:
[[1 2 3]]

2.降低维度

样例1:

[[1, 2, 3]] ==> [1, 2, 3]

import tensorflow as tf

a = tf.constant([[1, 2, 3]])
b = tf.squeeze(a)

with tf.Session() as sess:
 a_, b_ = sess.run([a, b])
 print('a:')
 print(a_)
 print('b:')
 print(b_)

输出结果

a:
[[1 2 3]]
b:
[1 2 3]

样例2:

[[1], [2], [3]] ==> [[1, 2, 3]

import tensorflow as tf

a = tf.constant([[1], [2], [3]])
b = tf.squeeze(a, 1)

with tf.Session() as sess:
 a_, b_ = sess.run([a, b])
 print('a:')
 print(a_)
 print('b:')
 print(b_)

补充知识:pytorch中squeeze()、unsqueeze(),以及一些高维数组操作

博主最近阅读YOLO底层代码,Torch中对多数组矩阵有很多高维操作,看过一边之后,记录一下,以防忘记。

torch.squeeze()

功能:取消为1的维度

squeeze(input, dim=None, out=None) -> Tensor

这里一般分不清dim的意思

举个例子:

input=(A , 1 , B , C ,1 , D)
squeeze(input)=(A,B,C,D)
input= (A, 1, B)

squeeze(input, 0)=(A, 1, B) 不会改变 squeeze(input, 1)=(A, B) 会改变

Python3 Tensorlfow:增加或者减小矩阵维度的实现

这里0, 1 ,2就分别代表 A, 1, B

torch.unsqueeze()

unsqueeze(input, dim, out=None) -> Tensor

功能: 在某一位置插入一维

这里面也是dim这个参数比较难理解

dim的取值是[- input.dim()-1, imput.dim()]

给定一个dim

input=(A , B , C , D)

input的维度input_dim为4, dim的取值[-5, 4]

unsqueeze(input, 0)=(1, A , B , C , D)
unsqueeze(input, 1)=(A , 1, B , C , D)
unsqueeze(input, -5)=(1, A , B , C , D)

Python3 Tensorlfow:增加或者减小矩阵维度的实现

看一个简单用例,size表示维度大小,10是取值范围,a=[:,:,:,4]表示取a最后一维的第四个元素(从0开始第四个),即取[0,0,3],[5,6,1],[0,6,8],[…], 判断大于5为true,否则为false。

注意:b的维度比a少了一维。

Python3 Tensorlfow:增加或者减小矩阵维度的实现

继续上一步,这里使用unsqueeze函数将b的维度扩展一维[2,2,3]------>[2,2,3,1] 这时b的最后一维只有一个元素, .expand_as将最后最后的元素扩展到a最后一维的个数

a[c] 表示取出为True的所有行在a中的元素

Python3 Tensorlfow:增加或者减小矩阵维度的实现

以上这篇Python3 Tensorlfow:增加或者减小矩阵维度的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数式编程指南(三):迭代器详解
Jun 24 Python
Python 稀疏矩阵-sparse 存储和转换
May 27 Python
PyQt5每天必学之带有标签的复选框
Apr 19 Python
PyQt5每天必学之拖放事件
Aug 27 Python
Python2包含中文报错的解决方法
Jul 09 Python
Python TestCase中的断言方法介绍
May 02 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
python的reverse函数翻转结果为None的问题
May 11 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
Python基础详解之邮件处理
Apr 28 Python
Python pandas如何向excel添加数据
May 22 #Python
python3.8.1+selenium实现登录滑块验证功能
May 22 #Python
在TensorFlow中实现矩阵维度扩展
May 22 #Python
Python多个装饰器的调用顺序实例解析
May 22 #Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 #Python
Tensorflow tf.tile()的用法实例分析
May 22 #Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 #Python
You might like
无限级别菜单的实现
2006/10/09 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
php操作xml入门之cdata区段
2015/01/23 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
写的htc的数据表格
2007/01/20 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
原生js实现照片墙效果
2020/10/13 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
库房管理员岗位职责
2015/02/12 职场文书
公司仓库管理制度
2015/08/04 职场文书