在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字符串对象的实现
Dec 24 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
Python之ReportLab绘制条形码和二维码的实例
Jan 15 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
Django如何使用第三方服务发送电子邮件
Aug 14 Python
关于python字符串方法分类详解
Aug 20 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
 Python 中 logging 模块使用详情
Mar 03 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
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
php 中include()与require()的对比
2006/10/09 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
Python实现将文本生成二维码的方法示例
2017/07/18 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
2014端午节活动策划方案
2014/01/27 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
基石观后感
2015/06/12 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
《青山不老》教学反思
2016/02/22 职场文书
python中mongodb包操作数据库
2022/04/19 Python
速龙x4-860k处理器相当于i几
2022/04/20 数码科技