Keras Lambda层:如何将输入与组常量矩阵相乘?

时间:2018-02-11 02:50:25

标签: deep-learning keras keras-layer

我的输入大小为(k, n, n),代表k n - by - n矩阵。我有另一组常数矩阵(k, n, n)。我打算将这两组k矩阵的相应矩阵相乘,这将导致(k, n, n)输出。在keras中使用Lambda来实现这一点时,我遇到了批量大小的问题 - 我需要在批量大小维度上重复常量矩阵batch_size次,然后我可以使用{{1 }}。但是,batch_dot是张量,batch_size无法接受。我该怎么做才能实现这一层?

1 个答案:

答案 0 :(得分:0)

解决方案是使用tile。设y为常数矩阵张量。然后,

from keras import backend as K

def my_lambda_function(x):
    K.batch(x, K.tile(K.expand_dims(y, axis=0), (K.shape(x)[0], 1, 1, 1)), axes=(3, 2))