吴裕雄--天生自然TensorFlow2教程:合并与分割

import tensorflow as tf

# 6个班级的学生分数情况
a = tf.ones([4, 35, 8])
b = tf.ones([2, 35, 8])
c = tf.concat([a, b], axis=0)
c.shape
# 3个学生学生补考
a = tf.ones([4, 32, 8])
b = tf.ones([4, 3, 8])
tf.concat([a, b], axis=1).shape
a = tf.ones([4, 35, 8])
b = tf.ones([4, 35, 8])
a.shape
b.shape
tf.concat([a, b], axis=-1).shape
tf.stack([a, b], axis=0).shape
tf.stack([a, b], axis=3).shape
a = tf.ones([4, 35, 8])
b = tf.ones([3, 33, 8])
try:
    tf.concat([a, b], axis=0).shape
except Exception as e:
    print(e)
# concat保证只有一个维度不相等
b = tf.ones([2, 35, 8])
c = tf.concat([a, b], axis=0)
c.shape
# stack保证所有维度相等
try:
    tf.stack([a, b], axis=0)
except Exception as e:
    print(e)
a.shape
b = tf.ones([4, 35, 8])
c = tf.stack([a, b])
c.shape
aa, bb = tf.unstack(c, axis=0)
aa.shape, bb.shape
# [2,4,35,8]
res = tf.unstack(c, axis=3)
# 8个[2, 4, 35]的Tensor
res[0].shape, res[1].shape, res[7].shape
# [2,4,35,8]
res = tf.unstack(c, axis=2)
# 35个[2, 4, 8]的Tensor
res[0].shape, res[1].shape, res[34].shape
# 8个Tensor,全为1
res = tf.unstack(c, axis=3)
len(res)
# 2个Tensor,一个6、一个2
res = tf.split(c, axis=3, num_or_size_splits=2)
len(res)
res[0].shape
res = tf.split(c, axis=3, num_or_size_splits=[2, 2, 4])
res[0].shape, res[1].shape, res[2].shape

猜你喜欢

转载自www.cnblogs.com/tszr/p/12130167.html