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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最新文章

  1. [tem]线段树(白书版)
  2. ubuntu下安装chrome
  3. iOS中的round ceil floorf表示的含义
  4. twitter storm 源码走读之5 -- worker进程内部消息传递处理和数据结构分析
  5. 安装CentOS Core之后布置环境脚本
  6. SD卡驱动分析(二)
  7. hdu 4628 Pieces
  8. C#3
  9. Embedding Lua in C: Using Lua from inside C.
  10. 设计模式_Proxy_代理模式
  11. Linux 终端部分重要快捷键
  12. OpenGL ES2.0入门详解
  13. SQL 创建存储过程,让主键自增
  14. springboot定时任务——整合Quartz
  15. SQL企业级面试题
  16. sql server 2012 新知识-序列
  17. redis 设置
  18. foreman容器化部署
  19. HTML界面多语言切换
  20. Python字符编码与转换

热门文章

  1. Jmeter 问题集
  2. 1038 Recover the Smallest Number (30 分)
  3. GitLab更新远程分支信息
  4. nodejs基础: 如何升级Noejs版本
  5. Hibernate cascade级联
  6. 并发基础(九) java线程的终止与中断
  7. json , 正则
  8. 图片水平垂直居中(兼容IE6,IE7,firefox,opera,safari,其中图片可以是任何块元素)
  9. OpenACC 计算圆周率(简单版)
  10. centos7配置vsftpd服务器