在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 相关文章推荐
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
Python对list列表结构中的值进行去重的方法总结
May 07 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 Python
python web框架 django wsgi原理解析
Aug 20 Python
基于Django统计博客文章阅读量
Oct 29 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 Python
关于Numpy之repeat、tile的用法总结
Jun 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python写入xml文件的方法
2015/05/08 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
python实现静态web服务器
2019/09/03 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
心理健康心得体会
2014/01/02 职场文书
爱心活动计划书
2014/04/26 职场文书
公司户外活动总结
2014/07/04 职场文书
教师师德表现自我评价
2015/03/05 职场文书
乔布斯辞职信(中英文对照)
2015/05/12 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Django使用redis配置缓存的方法
2021/06/01 Redis
OpenCV实现普通阈值
2021/11/17 Java/Android
Python实现自动玩连连看的脚本分享
2022/04/04 Python
PHP RabbitMQ消息列队
2022/05/11 PHP
关于mysql中string和number的转换问题
2022/06/14 MySQL
利用Python实时获取steam特惠游戏数据
2022/06/25 Python