在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 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
python将文本转换成图片输出的方法
Apr 28 Python
python更改已存在excel文件的方法
May 03 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
Python创建一个空的dataframe,并循环赋值的方法
Nov 08 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
python3实现mysql导出excel的方法
Jul 31 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
php中smarty区域循环的方法
2015/06/11 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
Python循环语句中else的用法总结
2016/09/11 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
python flask实现分页的示例代码
2018/08/02 Python
python 重命名轴索引的方法
2018/11/10 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
2021/02/16 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
六道php面试题附答案
2014/06/05 面试题
什么是继承
2013/12/07 面试题
学期研究性学习个人的自我评价
2014/01/09 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python