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中operator模块的操作符使用示例总结
Jun 28 Python
python实现图像识别功能
Jan 29 Python
python 判断网络连通的实现方法
Apr 22 Python
python3.5基于TCP实现文件传输
Mar 20 Python
python学生管理系统开发
Jan 30 Python
Puppeteer使用示例详解
Jun 20 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
Jun 28 Python
python中列表的切片与修改知识点总结
Jul 23 Python
通过python扫描二维码/条形码并打印数据
Nov 14 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
Python装饰器的应用场景代码总结
Apr 10 Python
python中wx模块的具体使用方法
May 15 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 CURL获取cookies模拟登录的方法
2013/11/04 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
php浏览历史记录的方法
2015/03/10 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
php_pdo 预处理语句详解
2016/11/21 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
Python3生成手写体数字方法
2018/01/30 Python
Python寻找两个有序数组的中位数实例详解
2018/12/05 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
Python configparser模块应用过程解析
2020/08/14 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
HTML5 window/iframe跨域传递消息 API介绍
2013/08/26 HTML / CSS
联想台湾官网:Lenovo TW
2018/05/09 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
百度吧主申请感言
2014/01/12 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
教你怎么用Python操作MySql数据库
2021/05/31 Python
nginx之queue的具体使用
2022/06/28 Servers