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 相关文章推荐
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
python 设置文件编码格式的实现方法
Dec 21 Python
Python中extend和append的区别讲解
Jan 24 Python
python numpy实现文件存取的示例代码
May 26 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
python实现简单坦克大战
Mar 27 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
python 爬虫请求模块requests详解
Dec 04 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
Jan 24 Python
python 批量将中文名转换为拼音
Feb 07 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作的文本留言本的例子(五)
2006/10/09 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
Python logging模块学习笔记
2014/05/24 Python
python追加元素到列表的方法
2015/07/28 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python实现PS滤镜碎片特效功能示例
2018/01/24 Python
python按照多个条件排序的方法
2019/02/08 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
用友笔试题目
2016/10/25 面试题
大三自我鉴定范文
2013/10/05 职场文书
岗位职责的构建方法
2014/02/01 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP