在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 sys.path详细介绍
Oct 17 Python
python实现用于测试网站访问速率的方法
May 26 Python
实例讲解Python中SocketServer模块处理网络请求的用法
Jun 28 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
pytorch的batch normalize使用详解
Jan 15 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python之变量类型和if判断方式
May 05 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 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
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
vue按需加载实例详解
2019/09/06 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
Python中装饰器高级用法详解
2017/12/25 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
django 控制页面跳转的例子
2019/08/06 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
ipad上运行python的方法步骤
2019/10/12 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
利用python汇总统计多张Excel
2020/09/22 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
尊师重教演讲稿
2014/09/04 职场文书
师德师风自查总结
2014/10/14 职场文书
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers