我想开发一种卷积网络体系结构,其中在第一层(在本例中为Conv1D)中,我要指定不可训练的固定滤波器的某些部分,同时还要有几个模型可以学习的可训练的滤波器。这可能吗,怎么办?

我的直觉是,我可以创建两个单独的Conv1D层-一个可训练层和一个不可训练层,然后以某种方式将它们连接起来,但是我不确定代码中的样子。另外,对于不可训练的过滤器,我如何预先指定权重?

最佳答案

使用功能性API相当容易:

in = Input(....)
convA = Conv1D(filters1, kernel_size1, ...)
convB = Conv1D(filters2, kernel_size2, ...)

convB.trainable = False
convB.set_weights(some_weight_array)

conv1 = convA(in)
conv2 = convB(in)

convFinal = Concatenate(axis = -1)([conv1, conv2])


我没有尝试过代码,但是在填写了小细节之后它应该可以工作了。

关于python - 为Keras卷积网络指定一些不可训练的滤波器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50178499/

10-16 22:15