在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 相关文章推荐
利用django如何解析用户上传的excel文件
Jul 24 Python
python中sys.argv函数精简概括
Jul 08 Python
对python中Json与object转化的方法详解
Dec 31 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
Python输出指定字符串的方法
Feb 06 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
python matplotlib包图像配色方案分享
Mar 14 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
一文详述 Python 中的 property 语法
Sep 01 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 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
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
javascript:void(0)使用探讨
2013/08/27 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
JavaScript队列结构Queue实现过程解析
2020/03/07 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
讲解Python中的标识运算符
2015/05/14 Python
Python中super关键字用法实例分析
2015/05/28 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
python中with语句结合上下文管理器操作详解
2019/12/19 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android