Keras中不等大小张量的添加



我正在Keras中使用形式为

的张量A =

现在,我想添加,对于每40行"维度

的张量的索引0行B =

简而言之,对于第二个张量,我只需要当前步骤B[:,0,:]。所以,排除第一个维度,这将是第一行

Add()层似乎只适用于大小相等的张量。有什么建议,我如何可以指定一个Lambda函数来完成这项工作?

感谢阅读!

可以试试这样做:

import tensorflow as tf
samples = 1
A = tf.random.normal((samples, 40, 2))
B = tf.random.normal((samples, 2, 2))
B = tf.expand_dims(B[:, 0, :], axis=1) # or just B = B[:, 0, :]
C = A + B
print(C.shape)
# (1, 40, 2)

或有Lambda层:

import tensorflow as tf
samples = 1
A = tf.random.normal((samples, 40, 2))
B = tf.random.normal((samples, 2, 2))
lambda_layer = tf.keras.layers.Lambda(lambda x: x[0] + x[1][:, 0, :])
print(lambda_layer([A, B]))

最新更新