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操作SQLite数据库及文件操作详解
Sep 22 Python
Python随机函数random()使用方法小结
Apr 29 Python
Python装饰器原理与用法分析
Apr 30 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 Python
详解【python】str与json类型转换
Apr 29 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
Django框架创建项目的方法入门教程
Nov 04 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
浅谈Python numpy创建空数组的问题
May 25 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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 基础函数
2017/02/10 PHP
php readfile下载大文件失败的解决方法
2017/05/22 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
python实现xlsx文件分析详解
2018/01/02 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
高中班级口号
2014/06/09 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
机关工会工作总结2015
2015/05/26 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
详解JS数组方法
2021/11/20 Javascript