tf.concat 个不同长度的张量

tf.concat tensors with different length

我有 2 个张量,例如:

a = tf.constant([[1, 2, 3], [1, 2, 3]])
b = tf.constant([1, 2, 3, 4, 5])

我想要的输出是:

<tf.Tensor: shape=(4, 2), dtype=int64, numpy=
 array([[1, 2, 3, 0, 0],
        [1, 2, 3, 0, 0],
        [1, 2, 3, 4, 5]], dtype=int64)>

但是当我尝试 tf.concat([a, b], axis=0) 时,我得到了这个错误:

InvalidArgumentError: ConcatOp : Dimensions of inputs should match: shape[0] = [2,3] vs. shape[1] = [1,5] [Op:ConcatV2] name: concat

试试这个:

a = tf.constant([[1, 2, 3], [1, 2, 3]])
b = tf.constant([1, 2, 3, 4, 5])

c = tf.concat([tf.pad(a, tf.constant([[0,0], [0,2]])), tf.expand_dims(b, axis=0)], axis=0)
tf.print(c)

[[1 2 3 0 0]
 [1 2 3 0 0]
 [1 2 3 4 5]]