我想以交替的方式连接shape=(None, 16)
的两个张量(因此结果张量必须是shape=(None, 32)
,其中第一张量的第一个数组以交替的方式与第一个张量混合第二张量等等。
我该怎么做?
由于未知shape[0]
,我无法在张量上循环,张量不支持zip
函数(张量对象不可迭代)。
我正在使用Tensorflow和Python3。
答案 0 :(得分:3)
假设两个张量在外部(None
)维度中具有相同的形状,并且您希望在两个张量的行之间交替,则可以通过添加tf.expand_dims()
的维度来实现此目的,连接使用tf.concat()
,然后使用tf.reshape()
重新整形:
# Use these tensors as example inputs, but the shape need not be statically known.
x = tf.ones([37, 16])
y = tf.zeros([37, 16])
x_expanded = tf.expand_dims(x, 2) # shape: (37, 16, 1)
y_expanded = tf.expand_dims(y, 2) # shape: (37, 16, 1)
concatted = tf.concat([x_expanded, y_expanded], 2) # shape: (37, 16, 2)
result = tf.reshape(concatted, [-1, 32]) # shape: (37, 32)