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中编写数据库模块的教程
Apr 29 Python
Python AES加密模块用法分析
May 22 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
Python格式化日期时间操作示例
Jun 28 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
基于Tensorflow高阶读写教程
Feb 10 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
我的Node.js学习之路(二)NPM模块管理
2014/07/06 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JavaScript中字面量与函数的基本使用知识
2015/10/20 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
javascript关于继承解析
2016/05/10 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
python发送伪造的arp请求
2014/01/09 Python
Python重新引入被覆盖的自带function
2014/07/16 Python
python uuid模块使用实例
2015/04/08 Python
python获取文件扩展名的方法
2015/07/06 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
vue项目实现分页效果
2021/03/24 Vue.js
英文留学推荐信范文
2014/01/25 职场文书
学校十一活动方案
2014/02/01 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
篮球比赛口号
2014/06/10 职场文书
财务检查整改报告
2014/11/06 职场文书