https://keras.io/layers/writing-your-own-keras-layers/
据此,无状态客户操作可以包装到Lambda层。但是,如果有可训练的变量,我们需要实现自己的层。 我想问问能否将Lambda层用于固定权重(即预先训练的权重)?
如果是,如何确保权重正确加载而不是随机初始化?由于get_weights()不会为您提供Lambda图层中的权重。
非常感谢。
答案 0 :(得分:1)
不,Lambda层在Keras一侧没有任何权重,您可以在lambda函数中放置一些权重,但是这些权重无法使用Keras加载,并且对于Keras完全不可见。
因此,如果要使用预先训练的权重,则必须实现自己的图层,因此Keras知道这些权重,可以使用load_weights
进行加载。
答案 1 :(得分:0)
让我们假设您对卷积层感兴趣。我认为这对于model.add(Lambda(lambda x: K.conv2d(x, kernels))
是可行的,其中kernels
是具有权重的numpy
矩阵,而K
是后端。