例:统计班级的学生的分数ui
a = [class1-4,student,scores],4个班级,35个学生,8门课的分数spa
b = [class5-6,student,scores],2个班级,35个学生,8门课的分数code
cancat要求除了指定合并的维度以外,其他的维度要大小要相同blog
1 a = tf.ones([4,35,8]) 2 b = tf.ones([2,35,8]) 3 c = tf.concat([a,b],axis = 0) #参数要用[]括起来,并且要指定维度,TypeError: concat() missing 1 required positional argument: 'axis'
4 print(c.shape) #(6, 35, 8)
5
6 a = tf.ones([4,35,8]) 7 b = tf.ones([4,3,8]) #除了指定的维度,其他的维度要相同
8 c = tf.concat([a,b],axis = 1) 9 print(c.shape) #(4, 38, 8)
1 #建立新的维度须要全部维度的大小是同样的 2 a = tf.ones([4,35,8]) 3 b = tf.ones([4,35,8]) 4 5 c1 = tf.concat([a,b],axis=-1) 6 print(c1.shape) #(4, 35, 16) 7 8 c2 = tf.stack([a,b],axis=0) # 在第一个维度以前建立新的维度 9 print(c2.shape) #(2, 4, 35, 8) 10 11 c3 = tf.stack([a,b],axis=3) #在最后一个维度以后建立新的维度 12 print(c3.shape) #(4, 35, 8, 2)
1 #三、unstack分割数据
2 a = tf.ones([4,35,8]) 3 b = tf.ones([4,35,8]) 4
5 c = tf.stack([a,b],axis=0) 6 print(c.shape) #(2, 4, 35, 8)
7
8 aa,bb = tf.unstack(c,axis=0) 9 print(aa.shape,bb.shape) #分割成两个同样的(4, 35, 8)
四、split ,在对一个张量进行切割以后,能够指定要分割以后的数量 it
1 #四、split
2 a = tf.ones([4,35,8]) 3 b = tf.ones([4,35,8]) 4
5 c = tf.stack([a,b],axis=0) 6 print(c.shape) 7
8 res = tf.unstack(c,axis=3) #生成8个[4,35]张量的list
9 print(len(res)) # 8
10
11 res = tf.split(c,axis=3,num_or_size_splits=2) #num_or_size_split指定要分割的份数,也能够指定每一份张量数,用列表装着
12 print(len(res)) # 2 生成两个(2, 4, 35, 4)
13 print(res[0].shape) # (2, 4, 35, 4)
14
15 res = tf.split(c,axis=3,num_or_size_splits=[1,2,3,2]) #指定划分后的张量的个数,并对划分后每一个张量的维度大小进行指定
16 print(res[0].shape) #(2, 4, 35, 1)
17 print(res[1].shape) #(2, 4, 35, 2)
18 print(res[2].shape) #(2, 4, 35, 3)
19 print(res[3].shape) #(2, 4, 35, 2)