在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 相关文章推荐
Django框架中render_to_response()函数的使用方法
Jul 16 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
Python装饰器用法示例小结
Feb 11 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
python 元组和列表的区别
Dec 30 Python
python实现双人五子棋(终端版)
Dec 30 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 Python
Python中异常处理用法
Nov 27 Python
使用python绘制横竖条形图
Apr 21 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
js中将多个语句写成一个语句的两种方法小结
2007/12/08 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
将Django使用的数据库从MySQL迁移到PostgreSQL的教程
2015/04/11 Python
在Django中创建第一个静态视图
2015/07/15 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
python3编码问题汇总
2016/09/06 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
Python如何实现动态数组
2019/11/02 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
调研汇报材料范文
2014/08/17 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
与死神共舞观后感
2015/06/15 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书