目录

* Merge and split
<https://www.cnblogs.com/nickchen121/p/10849538.html#merge-and-split>
* concat <https://www.cnblogs.com/nickchen121/p/10849538.html#concat>
* Along distinct dim/axis
<https://www.cnblogs.com/nickchen121/p/10849538.html#along-distinct-dimaxis>
* stack: create new dim
<https://www.cnblogs.com/nickchen121/p/10849538.html#stack-create-new-dim>
* Dim mismatch
<https://www.cnblogs.com/nickchen121/p/10849538.html#dim-mismatch>
* Unstack <https://www.cnblogs.com/nickchen121/p/10849538.html#unstack>
* Split <https://www.cnblogs.com/nickchen121/p/10849538.html#split>
Merge and split

* tf.concat
* tf.split
* tf.stack
* tf.unstack
concat

* Statistics ablout scores
* [class1-4,students,scores]
* [class5-6,students,scores] 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 TensorShape([6, 35, 8]) # 3个学生学生补考 a = tf.ones([4, 32, 8]) b =
tf.ones([4, 3, 8]) tf.concat([a, b], axis=1).shape TensorShape([4, 35, 8])
Along distinct dim/axis



stack: create new dim

* Statistics about scores
* School1:[classes,students,scores]
* School2:[classes,students,scores]
* [schools,calsses,students,scores] a = tf.ones([4, 35, 8]) b = tf.ones([4,
35, 8]) a.shape TensorShape([4, 35, 8]) b.shape TensorShape([4, 35, 8])
tf.concat([a, b], axis=-1).shape TensorShape([4, 35, 16]) tf.stack([a, b],
axis=0).shape TensorShape([2, 4, 35, 8]) tf.stack([a, b], axis=3).shape
TensorShape([4, 35, 8, 2])
Dim mismatch
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) ConcatOp : Dimensions of inputs
should match: shape[0] = [4,35,8] vs. shape[1] = [3,33,8] [Op:ConcatV2] name:
concat # concat保证只有一个维度不相等 b = tf.ones([2, 35, 8]) c = tf.concat([a, b],
axis=0) c.shape TensorShape([6, 35, 8]) # stack保证所有维度相等 try: tf.stack([a, b],
axis=0) except Exception as e: print(e) Shapes of all inputs must match:
values[0].shape = [4,35,8] != values[1].shape = [2,35,8] [Op:Pack] name: stack
Unstack
a.shape TensorShape([4, 35, 8]) b = tf.ones([4, 35, 8]) c = tf.stack([a, b])
c.shape TensorShape([2, 4, 35, 8]) aa, bb = tf.unstack(c, axis=0) aa.shape,
bb.shape (TensorShape([4, 35, 8]), TensorShape([4, 35, 8])) # [2,4,35,8] res =
tf.unstack(c, axis=3) # 8个[2, 4, 35]的Tensor res[0].shape, res[1].shape,
res[7].shape (TensorShape([2, 4, 35]), TensorShape([2, 4, 35]), TensorShape([2,
4, 35])) # [2,4,35,8] res = tf.unstack(c, axis=2) # 35个[2, 4, 8]的Tensor
res[0].shape, res[1].shape, res[34].shape (TensorShape([2, 4, 8]),
TensorShape([2, 4, 8]), TensorShape([2, 4, 8]))
Split

* 相比较unstack灵活性更强 # 8个Tensor,全为1 res = tf.unstack(c, axis=3) len(res) 8 #
2个Tensor,一个6、一个2 res = tf.split(c, axis=3, num_or_size_splits=2) len(res) 2
res[0].shape TensorShape([2, 4, 35, 4]) res = tf.split(c, axis=3,
num_or_size_splits=[2, 2, 4]) res[0].shape, res[1].shape, res[2].shape
(TensorShape([2, 4, 35, 2]), TensorShape([2, 4, 35, 2]), TensorShape([2, 4, 35,
4]))

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信