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 相关文章推荐
记录Django开发心得
Jul 16 Python
Python中实现的RC4算法
Feb 14 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 Python
Django model class Meta原理解析
Nov 14 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
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php 数组使用详解 推荐
2011/06/02 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
php之可变变量的实例详解
2017/09/12 PHP
js获取单选按钮的数据
2006/11/27 Javascript
jquery简单体验
2007/01/10 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
利用node.js搭建简单web服务器的方法教程
2017/02/20 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
js中的闭包学习心得
2018/02/06 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
横向对比分析Python解析XML的四种方式
2016/03/30 Python
利用python获取Ping结果示例代码
2017/07/06 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Django框架models使用group by详解
2020/03/11 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
退货证明模板
2015/06/23 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书