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中DJANGO简单测试实例
May 11 Python
Python切片操作实例分析
Mar 16 Python
pandas 数据实现行间计算的方法
Jun 08 Python
基于python实现KNN分类算法
Apr 23 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
php中目录,文件操作详谈
2007/03/19 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
vue v-model的用法解析
2020/10/19 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
不要用强制方法杀掉python线程
2017/02/26 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
保密承诺书
2014/03/27 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
工程材料采购方案
2014/05/18 职场文书
承诺书模板
2014/08/30 职场文书
入党个人总结范文
2015/03/02 职场文书
保险公司增员口号
2015/12/25 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
Redis的字符串是如何实现的
2021/10/24 Redis
服务器间如何实现文件共享
2022/05/20 Servers