在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实现bitmap数据结构详解
Feb 17 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
python 把文件中的每一行以数组的元素放入数组中的方法
Apr 29 Python
对Python中数组的几种使用方法总结
Jun 28 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
超简单使用Python换脸实例
Mar 27 Python
python pygame实现球球大作战
Nov 25 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
Dec 25 Python
python几种常用功能实现代码实例
Dec 25 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 Python
Python 中 Shutil 模块详情
Nov 11 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
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
javascript ajax 仿百度分页函数
2013/10/29 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
浅析js中substring和substr的方法
2015/11/09 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
宠物店的创业计划书范文
2014/01/11 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
英语教研活动总结
2014/07/02 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
HttpClient实现表单提交上传文件
2022/08/14 Java/Android