在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实现把json格式转换成文本或sql文件
Jul 10 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
Python批量查询域名是否被注册过
Jun 21 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Django中的Model操作表的实现
Jul 24 Python
Python BS4库的安装与使用详解
Aug 08 Python
python获取Linux发行版名称
Aug 30 Python
利用python中集合的唯一性实现去重
Feb 11 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
python 下载m3u8视频的示例代码
Nov 11 Python
pytorch常用数据类型所占字节数对照表一览
May 17 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
SONY ICF-F10中波修复记
2021/03/02 无线电
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
javascript之bind使用介绍
2011/10/09 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
node.js中的path.normalize方法使用说明
2014/12/08 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
使用K.function()调试keras操作
2020/06/17 Python
详解Python IO口多路复用
2020/06/17 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
药品质量检测应届生求职信
2013/11/14 职场文书
11月红领巾广播稿
2014/01/17 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2015年党小组工作总结
2015/05/26 职场文书
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技