浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack


Posted in Python onJune 23, 2020

有一段时间没用tensorflow了,现在跑实验还是存在一些坑了,主要是关于张量计算的问题。tensorflow升级1.0版本后与以前的版本并不兼容,可能出现各种奇奇怪怪的问题。

1 tf.concat函数

tensorflow1.0以前函数用法:tf.concat(concat_dim, values, name='concat'),第一个参数为连接的维度,可以将几个向量按指定维度连接起来。

如:

t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
#按照第0维连接
tf.concat(0, [t1, t2]) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
#按照第1维连接
tf.concat(1, [t1, t2]) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

tf.concat的作用主要是将向量按指定维连起来,其余维度不变;而1.0版本以后,函数的用法变成:

t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
#按照第0维连接
tf.concat( [t1, t2],0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
#按照第1维连接
tf.concat([t1, t2],1) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

位置变了,需要注意。

2 tf.stack函数

用法:stack(values, axis=0, name=”stack”):

“”“Stacks a list of rank-R tensors into one rank-(R+1) tensor.

x = tf.constant([1, 4])
y = tf.constant([2, 5])
z = tf.constant([3, 6])
tf.stack([x,y,z]) ==> [[1,4],[2,5],[3,6]]
tf.stack([x,y,z],axis=0) ==> [[1,4],[2,5],[3,6]]
tf.stack([x,y,z],axis=1) ==> [[1, 2, 3], [4, 5, 6]]

tf.stack将一组R维张量变为R+1维张量。注意:tf.pack已经变成了tf.stack

3.tf.reshape

用法:reshape(tensor, shape, name=None):主要通过改变张量形状,可以从高维变低维,也可以从低维变高维;

a = tf.Variable(initial_value=[[1,2,3],[4,5,6]]) ==> shape:[2,3]
b = tf.Variable(initial_value=[[[1,2,3],[4,5,6]],[[7,8,9],[1,0,2]]]) ==> shape:[2,2,3]

a_1 = tf.reshape(a,[2,1,1,3]) ==> [[[[1,2,3]]],[[[4,5,6]]]]
a_2 = tf.reshape(a,[2,1,3]) ==> [[[1,2,3]],[[4,5,6]]]
b_1 = tf.reshape(b,[2,2,1,3]) ==> [[[[1,2,3]],[[4,5,6]]],[[[7,8,9]],[[1,0,2]]]]

new_1 = tf.concat([b_1,a_1],1)
new_2 = tf.reshape(tf.concat([b,a_2],1),[2,3,1,3])
"""
new_1:
[[[[1 2 3]]

 [[4 5 6]]

 [[1 2 3]]]


 [[[7 8 9]]

 [[1 0 2]]

 [[4 5 6]]]]
new_2;
[[[[1 2 3]]

 [[4 5 6]]

 [[1 2 3]]]


 [[[7 8 9]]

 [[1 0 2]]

 [[4 5 6]]]]

补充知识:tensorflow中的reshape(tensor,[1,-1])和reshape(tensor,[-1,1])

和python 中的reshape用法应该一样

import tensorflow as tf
a = [[1,2],[3,4],[5,6]]
tf.reshape(a,[-1,1])
Out[13]: <tf.Tensor 'Reshape_4:0' shape=(6, 1) dtype=int32>
tf.reshape(tf.reshape(a,[-1,1]),[1,-1])
Out[14]: <tf.Tensor 'Reshape_6:0' shape=(1, 6) dtype=int32>

tf.reshape(tensor,[-1,1])将张量变为一维列向量

tf.reshape(tensor,[1,-1])将张量变为一维行向量

以上这篇浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用短信猫控件实现发短信功能实例
Jul 04 Python
python访问系统环境变量的方法
Apr 29 Python
详解Swift中属性的声明与作用
Jun 30 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
pytorch自定义二值化网络层方式
Jan 07 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
大数据分析用java还是Python
Jul 06 Python
简述 Python 的类和对象
Aug 21 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 Python
Python面向对象之内置函数相关知识总结
Jun 24 Python
解决tensorflow 释放图,删除变量问题
Jun 23 #Python
TensorFlow中如何确定张量的形状实例
Jun 23 #Python
Python docutils文档编译过程方法解析
Jun 23 #Python
python3的pip路径在哪
Jun 23 #Python
Python错误的处理方法
Jun 23 #Python
python文件读取失败怎么处理
Jun 23 #Python
使用tensorflow根据输入更改tensor shape
Jun 23 #Python
You might like
thinkphp循环结构用法实例
2014/11/24 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
javascript客户端解决方案 缓存提供程序
2010/07/14 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
JS中的==运算: [''] == false —&gt;true
2016/07/24 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python3 max()函数基础用法
2019/02/19 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
什么是TCP/IP
2014/07/27 面试题
研修第一天随笔感言
2014/02/15 职场文书
英文导游词
2015/02/13 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书