在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代码实现
Aug 17 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
对Python中数组的几种使用方法总结
Jun 28 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
如何表示python中的相对路径
Jul 08 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 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中的日期处理方法集锦
2007/01/02 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
简单实例处理url特殊符号&处理(2种方法)
2013/04/02 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
javascript history对象详解
2017/02/09 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python中的引用和拷贝浅析
2014/11/22 Python
Django在Model保存前记录日志实例
2020/05/14 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
实习生的自我评价
2014/01/08 职场文书
人事专员的岗位职责
2014/03/01 职场文书
消防安全承诺书
2014/05/22 职场文书
父亲节活动策划方案
2014/08/24 职场文书
金融保险专业求职信
2014/09/03 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书