当前位置 主页 > 网站技术 > 代码类 >

    TensorFlow2.0:张量的合并与分割实例

    栏目:代码类 时间:2020-01-19 18:09

    **

    一 tf.concat( ) 函数–合并
    **

    In [2]: a = tf.ones([4,35,8])                          
    
    In [3]: b = tf.ones([2,35,8])                          
    
    In [4]: c = tf.concat([a,b],axis=0)                       
    
    In [5]: c.shape                                 
    Out[5]: TensorShape([6, 35, 8])
    
    In [6]: a = tf.ones([4,32,8])                          
    
    In [7]: b = tf.ones([4,3,8])                          
    
    In [8]: c = tf.concat([a,b],axis=1)                       
    
    In [9]: c.shape                                 
    Out[9]: TensorShape([4, 35, 8])
    

    **

    二 tf.stack( ) 函数–数据的堆叠,创建新的维度
    **

    In [2]: a = tf.ones([4,35,8])                          
    
    In [3]: a.shape                                 
    Out[3]: TensorShape([4, 35, 8])
    
    In [4]: b = tf.ones([4,35,8])                          
    
    In [5]: b.shape                                 
    Out[5]: TensorShape([4, 35, 8])
    
    In [6]: tf.concat([a,b],axis=-1).shape                     
    Out[6]: TensorShape([4, 35, 16])
    
    In [7]: tf.stack([a,b],axis=0).shape                      
    Out[7]: TensorShape([2, 4, 35, 8])
    
    In [8]: tf.stack([a,b],axis=3).shape                      
    Out[8]: TensorShape([4, 35, 8, 2])
    

    **

    三 tf.unstack( )函数–解堆叠
    **

    In [16]: a = tf.ones([4,35,8])                                                                                       
    
    In [17]: b = tf.ones([4,35,8])                                                                                       
    
    In [18]: c = tf.stack([a,b],axis=0)                                                                                     
    
    In [19]: a.shape,b.shape,c.shape                                                                                      
    Out[19]: (TensorShape([4, 35, 8]), TensorShape([4, 35, 8]), TensorShape([2, 4, 35, 8]))
    
    In [20]: aa,bb = tf.unstack(c,axis=0)                                                                                    
    
    In [21]: aa.shape,bb.shape                                                                                         
    Out[21]: (TensorShape([4, 35, 8]), TensorShape([4, 35, 8]))
    
    In [22]: res = tf.unstack(c,axis=1)                                                                                     
    
    In [23]: len(res)                                                                                              
    Out[23]: 4
    

    **

    四 tf.split( ) 函数
    **

    In [16]: a = tf.ones([4,35,8])                                                                                       
    
    In [17]: b = tf.ones([4,35,8])                                                                                       
    
    In [18]: c = tf.stack([a,b],axis=0)                                                                                     
    
    In [19]: a.shape,b.shape,c.shape                                                                                      
    Out[19]: (TensorShape([4, 35, 8]), TensorShape([4, 35, 8]), TensorShape([2, 4, 35, 8]))
    
    In [20]: aa,bb = tf.unstack(c,axis=0)                                                                                    
    
    In [21]: aa.shape,bb.shape                                                                                         
    Out[21]: (TensorShape([4, 35, 8]), TensorShape([4, 35, 8]))
    
    In [22]: res = tf.unstack(c,axis=1)                                                                                     
    
    In [23]: len(res)                                                                                              
    Out[23]: 4