Python 我可以写一个不可训练/固定重量的Keras Lambda层吗?

Python 我可以写一个不可训练/固定重量的Keras Lambda层吗?,python,keras,deep-learning,keras-layer,tf.keras,Python,Keras,Deep Learning,Keras Layer,Tf.keras,根据本文,无状态客户操作可以包装到Lambda层。但是如果有可训练的变量,我们需要实现我们自己的层。 我想问,是否可以将Lambda层用于固定重量(即预训练重量) 如果是,如何确保正确加载权重,而不是随机初始化权重?因为get_weights()不会在Lambda层中为您提供权重 提前非常感谢。不,Lambda层没有来自Keras侧的任何权重,您可以在Lambda函数中放置一些权重,但这些权重无法使用Keras加载,Keras完全看不见 因此,如果你想使用预先训练好的权重,你必须实现你自己的层,

根据本文,无状态客户操作可以包装到Lambda层。但是如果有可训练的变量,我们需要实现我们自己的层。 我想问,是否可以将Lambda层用于固定重量(即预训练重量)

如果是,如何确保正确加载权重,而不是随机初始化权重?因为get_weights()不会在Lambda层中为您提供权重


提前非常感谢。

不,Lambda层没有来自Keras侧的任何权重,您可以在Lambda函数中放置一些权重,但这些权重无法使用Keras加载,Keras完全看不见


因此,如果你想使用预先训练好的权重,你必须实现你自己的层,这样这些权重对于Keras来说是已知的,并且可以使用
load\u-weights

来加载。假设你对卷积层感兴趣。我认为使用
model.add(Lambda(Lambda x:K.conv2d(x,kernels))是可行的
where
kernels
是一个带有权重的
numpy
矩阵,
K
是后端。

Hi,感谢您的快速回复。想知道在包装到Lambda层之前是否可以先将tensorflow检查点加载到tensorflow图?我尝试了这种方法,但输出似乎与TF不同,这意味着未加载或仍随机初始化。