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 相关文章推荐
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Django入门使用示例
Dec 12 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
python os.path模块常用方法实例详解
Sep 16 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
python处理大日志文件
Jul 23 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
使用python 将图片复制到系统剪贴中
Dec 13 Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
python-jwt用户认证食用教学的实现方法
Jan 19 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
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
php搜索文件程序分享
2015/10/30 PHP
php编程每天必学之表单验证
2016/03/01 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
在Python的Django框架中包装视图函数
2015/07/20 Python
python多进程实现进程间通信实例
2017/11/24 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
合作协议书怎么写
2014/04/18 职场文书
优秀学生评语大全
2014/04/25 职场文书
企业理念标语
2014/06/09 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
2014年应急工作总结
2014/12/11 职场文书
营销计划书范文
2015/01/17 职场文书
学术研讨会主持词
2015/07/04 职场文书
商务信函英语问候语
2015/11/10 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android