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

时间:2021-11-03 06:44:53

**

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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( ) 函数–数据的堆叠,创建新的维度
**

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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( )函数–解堆叠
**

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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( ) 函数
**

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

以上这篇TensorFlow2.0:张量的合并与分割实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/meijie2018_1/article/details/99439186