1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| # 分割张量 # 分割张量:就是将一个张量拆分成多个张量。分割后的张量维度不变 # tf.split(value,nums,axis=0) # nums 为一个整数时,为等分割成nums个常量 # nums为一个列表时候,就表示不等分割成列表长度的张量。如:[1,2,1] 表示分割成是三个张量,长度分别为1,2,3 x = tf.range(24) x = tf.reshape(x,[4,6]) x
tf.split(x,2,0) # 分割完成之后,就是两个2行6列的矩阵张量
# 我们不等分割成三个张量 tf.split(x,[1,2,1],0) ''' [<tf.Tensor: shape=(1, 6), dtype=int32, numpy=array([[0, 1, 2, 3, 4, 5]], dtype=int32)>, <tf.Tensor: shape=(2, 6), dtype=int32, numpy= array([[ 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17]], dtype=int32)>, <tf.Tensor: shape=(1, 6), dtype=int32, numpy=array([[18, 19, 20, 21, 22, 23]], dtype=int32)>] '''
tf.split(x,[1,4,1],1) ''' [<tf.Tensor: shape=(4, 1), dtype=int32, numpy= array([[ 0], [ 6], [12], [18]], dtype=int32)>, <tf.Tensor: shape=(4, 4), dtype=int32, numpy= array([[ 1, 2, 3, 4], [ 7, 8, 9, 10], [13, 14, 15, 16], [19, 20, 21, 22]], dtype=int32)>, <tf.Tensor: shape=(4, 1), dtype=int32, numpy= array([[ 5], [11], [17], [23]], dtype=int32)>] ''' # 张量的分割和拼接,改变了张量的视图,但是张量的存储顺序并没有发生改变
|