在TensorFlow中实现矩阵维度扩展


Posted in Python onMay 22, 2020

一般TensorFlow中扩展维度可以使用tf.expand_dims()。近来发现另一种可以直接运用取数据操作符[]就能扩展维度的方法。

用法很简单,在要扩展的维度上加上tf.newaxis就行了。

foo = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
print(foo[tf.newaxis, :, :].eval()) # => [[[1,2,3], [4,5,6], [7,8,9]]]
print(foo[:, tf.newaxis, :].eval()) # => [[[1,2,3]], [[4,5,6]], [[7,8,9]]]
print(foo[:, :, tf.newaxis].eval()) # => [[[1],[2],[3]], [[4],[5],[6]],[[7],[8],[9]]]

参考:

https://tensorflow.google.cn/api_docs/python/tf/Tensor?hl=en#__getitem__

补充知识:tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度

在利用tensorflow进行文本挖掘工作的时候,经常涉及到维度扩展和压缩工作。比如对文本进行embedding操作完成之后,若要进行卷积操作,就需要对embedded的向量扩展维度,将[batch_size, embedding_dims]扩展成为[batch_size, embedding_dims, 1],利用tf.expand_dims(input, -1)就可实现,反过来用squeeze(input, -1)或者tf.squeeze(input)也可以把最第三维去掉。

tf.expand_dims()
tf.squeeze()

tf.expand_dims()

tf.expand_dims(input, axis=None, name=None, dim=None)

在第axis位置增加一个维度.

给定张量输入,此操作在输入形状的维度索引轴处插入1的尺寸。 尺寸索引轴从零开始; 如果您指定轴的负数,则从最后向后计数。

如果要将批量维度添加到单个元素,则此操作非常有用。 例如,如果您有一个单一的形状[height,width,channels],您可以使用expand_dims(image,0)使其成为1个图像,这将使形状[1,高度,宽度,通道]。

例子

# 't' is a tensor of shape [2]
shape(expand_dims(t, 0)) ==> [1, 2]
shape(expand_dims(t, 1)) ==> [2, 1]
shape(expand_dims(t, -1)) ==> [2, 1]
# 't2' is a tensor of shape [2, 3, 5]
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

tf.squeeze()

tf.squeeze(input, axis=None, name=None, squeeze_dims=None)

直接上例子

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
 shape(squeeze(t)) ==> [2, 3]
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
 shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]

以上这篇在TensorFlow中实现矩阵维度扩展就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
Aug 10 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
Python中如何获取类属性的列表
Dec 26 Python
python解决js文件utf-8编码乱码问题(推荐)
May 02 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
Python接口测试数据库封装实现原理
May 09 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
用Python远程登陆服务器的步骤
Apr 16 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Python多个装饰器的调用顺序实例解析
May 22 #Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 #Python
Tensorflow tf.tile()的用法实例分析
May 22 #Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 #Python
Tensorflow实现将标签变为one-hot形式
May 22 #Python
Python selenium爬取微博数据代码实例
May 22 #Python
python实现文法左递归的消除方法
May 22 #Python
You might like
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
Jquery知识点一 Jquery的ready和Dom的onload的区别
2011/01/15 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
JavaScript简介
2015/02/15 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python 函数基础知识汇总
2018/03/09 Python
python用post访问restful服务接口的方法
2018/12/07 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python如何执行系统命令
2020/09/23 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
Haggar官网:美国男装品牌
2020/02/16 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
Sql面试题
2013/03/20 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
高三霸气励志标语
2014/06/24 职场文书
大专生求职信
2014/06/29 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
老公保证书怎么写
2015/02/26 职场文书
新年晚会开场白
2015/05/29 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang