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程序实例(通讯录)
Nov 29 Python
python简单的函数定义和用法实例
May 07 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
python 内置函数filter
Jun 01 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
Django框架自定义session处理操作示例
May 27 Python
Python换行与不换行的输出实例
Feb 19 Python
详解Python IO编程
Jul 24 Python
python使用建议技巧分享(三)
Aug 18 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 Python
Python通过递归函数输出嵌套列表元素
Oct 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实现框架(二)
2006/10/09 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
jquery无缝图片轮播组件封装
2020/11/25 jQuery
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
python控制台中实现进度条功能
2015/11/10 Python
python使用fork实现守护进程的方法
2017/11/16 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Python实现GIF图倒放
2020/07/16 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
浙大毕业生自荐信
2014/01/26 职场文书
毕业证丢失证明范本
2014/09/20 职场文书
2014年手术室工作总结
2014/11/26 职场文书
回复函格式及范文
2015/07/14 职场文书
七年级生物教学反思
2016/02/20 职场文书
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技