zoukankan      html  css  js  c++  java
  • tf.unstack f.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
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
    萍水相逢逢萍水,浮萍之水水浮萍!
  • 相关阅读:
    实验证明:ObjectiveC++ 完美支持 ARC
    用 Java 实现的日志切割清理工具
    数字电视,方便了谁
    商品EAN13条码的生成
    关于错误“Cannot connect to the Citrix MetaFrame server.Can't assign requested address”的解决方法
    "加载类型库/dll时出错" 的解决方法
    解决连接SQL Server 2000的TCP/IP错误的Bug
    电脑自动关机之CPU风扇烧坏
    winrar 8 注册方法
    电脑死机之CPU温度过高
  • 原文地址:https://www.cnblogs.com/AIBigTruth/p/10290259.html
Copyright © 2011-2022 走看看