tf.unstack\tf.unstack

tf.unstack

原型:

unstack(

value,

num=None,

axis=0,

name=‘unstack‘ )

官方解释:https://tensorflow.google.cn/api_docs/python/tf/unstack

解释:这是一个对矩阵进行分解的函数,以下为关键参数解释:

value:代表需要分解的矩阵变量(其实就是一个多维数组,一般为二维);

axis:指明对矩阵的哪个维度进行分解。

要理解tf.unstack函数,我们不妨先来看看tf.stack函数。Tf.stack刚好是与tf.unstack函数相反,前者是对矩阵进行拼接,后者则对矩阵进行分解。

Tf.stack用法举例:假如现在有两个变量,a=[1, 2, 3],b=[4, 5, 6],现在我要使用tf.stack对他们进行拼接,变成一个二维矩阵[ [1, 2, 3], [4, 5, 6] ]。代码【示例1】如下:

【示例1】



import tensorflow as tf

a = tf.constant([1, 2, 3])

b = tf.constant([4, 5, 6])

c = tf.stack( [a,b], axis=0)

with tf.Session() as sess:

 print(sess.run(c))


输出结果是:



[[1 2 3]

 [4 5 6]]


此时,我如果把【示例1】里面的tf.stack参数axis=0改成1,运行结果如下:


[[1 4]

 [2 5]

 [3 6]]


可以理解,axis作用就是指明以何种方式对矩阵进行拼接,说白了,就是对原矩阵的哪个维度进行拼接。

理解了tf.stack,tf.unstack也就不难理解了。比如说现在有变量c,如下:

c=[[1 2 3]

[4 5 6]]

现在要对c进行分解,代码如下:



import tensorflow as tf

c = tf.constant([[1, 2, 3],

 [4, 5, 6]])

d = tf.unstack(c, axis=0)

e = tf.unstack(c, axis=1)

with tf.Session() as sess:

 print(sess.run(d))

 print(sess.run(e))


结果如下:


[array([1, 2, 3]), array([4, 5, 6])]

[array([1, 4]), array([2, 5]), array([3, 6])]


可以看出来,tf.unstack其实就是在做与tf.stack相反的事情。这样一来,你是不是恍然大悟了呢?

作者:JempChou
链接:https://www.jianshu.com/p/25706575f8d4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/fpzs/p/10290259.html

时间: 2024-08-29 20:50:43

tf.unstack\tf.unstack的相关文章

TF:TF定义两个变量相乘之placeholder先hold类似变量+feed_dict最后外界传入值—Jason niu

#TF:TF定义两个变量相乘之placeholder先hold类似变量+feed_dict最后外界传入值 import tensorflow as tf input1 = tf.placeholder(tf.float32) #TF一般只能处理float32的数据类型 input2 = tf.placeholder(tf.float32) #ouput = tf.mul(input1, input2) ouput = tf.multiply(input1, input2) #定义两个变量相乘 w

tensorflow-底层梯度tf.AggregationMethod,tf.gradients

(1)tf.AggregationMethod是一个类 Class?AggregationMethod类拥有的方法主要用于聚集梯度 ?计算偏导数需要聚集梯度贡献,这个类拥有在计算图中聚集梯度的很多方法.比如: ADD_N: 所有的梯度被求和汇总,使用 "AddN"操作.有一个特点:所有的梯度在聚集之前必须要准备好,DEFAULT: 默认聚集方法类方法 ADD_N DEFAULT EXPERIMENTAL_ACCUMULATE_N EXPERIMENTAL_TREE TensorFlow

TensorFlow 学习(二)—— tf Graph tf Session 与 tf Session run

session: with tf.Session() as sess:/ tf.InteractiveSession() 初始化: tf.global_variables_initializer() with tf.Session() as sess: sess.run(tf.global_variables_initializer()) 1 2 0. tf.Graph 命名空间与 operation name(oper.name 获取操作名): c_0 = tf.constant(0, nam

ROS TF——learning tf

在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换. 相关链接:http://www.ros.org/wiki/tf/Tutorials#Learning_tf 一.tf简介 我们通过一个小小的实例来介绍tf的作用. 1.安装turtle包 $ rosdep install turtle_tf rviz $ rosmake turtle_tf rviz 2.运行demo 运行简单的demo: $ roslaunch turtle_tf turtle_tf_demo.lau

TFboy养成记 tf.cast,tf.argmax,tf.reduce_sum

referrence: 莫烦视频 先介绍几个函数 1.tf.cast() 英文解释: 也就是说cast的直译,类似于映射,映射到一个你制定的类型. 2.tf.argmax 原型: 含义:返回最大值所在的坐标.(谁给翻译下最后一句???) ps:谁给解释下axis最后一句话? 例子: 3.tf.reduce_mean() 原型: 含义:一句话来说就是对制定的reduction_index进行均值计算. 注意,reduction_indices为0时,是算的不同的[]的同一个位置上的均值 为1是是算

TensorFlow之tf.unstack学习循环神经网络中用到!

unstack( value, num=None, axis=0, name='unstack' ) tf.unstack() 将给定的R维张量拆分成R-1维张量 将value根据axis分解成num个张量,返回的值是list类型,如果没有指定num则根据axis推断出! DEMO: import tensorflow as tf a = tf.constant([3,2,4,5,6]) b = tf.constant([1,6,7,8,0]) c = tf.stack([a,b],axis=0

tf.unstack()、tf.stack()

tf.unstack 原型: unstack( value, num=None, axis=0, name='unstack' ) 官方解释:https://tensorflow.google.cn/api_docs/python/tf/unstack 解释:这是一个对矩阵进行分解的函数,以下为关键参数解释: value:代表需要分解的矩阵变量(其实就是一个多维数组,一般为二维): axis:指明对矩阵的哪个维度进行分解. 要理解tf.unstack函数,我们不妨先来看看tf.stack函数.T

TF Boys (TensorFlow Boys ) 养成记(五)

郑重声明:此文为本人原创,转载请注明出处:http://www.cnblogs.com/Charles-Wan/p/6207039.html 有了数据,有了网络结构,下面我们就来写 cifar10 的代码. 首先处理输入,在 /home/your_name/TensorFlow/cifar10/ 下建立 cifar10_input.py,输入如下代码: from __future__ import absolute_import # 绝对导入 from __future__ import div

在ros下使用tf

tf真是一个好东西,把坐标变换都简化了 首先tf需要有一个broadcaster #include <ros/ros.h> #include <tf/transform_broadcaster.h> #include <nav_msgs/Odometry.h> void poseCallback(const nav_msgs::OdometryConstPtr& msg){ static tf::TransformBroadcaster br; ROS_INFO