Keras中是否有DropConnect图层?

时间:2017-05-26 10:58:18

标签: python keras

我在TensorLayer中遇到了DropConnect层的实现:http://tensorlayer.readthedocs.io/en/latest/modules/layers.html但我需要Keras等价物。在Keras上有DropConnect的实现吗?如果没有,是否可以将任何现有的Keras层转换为DropConnect?

4 个答案:

答案 0 :(得分:1)

从keras 2.0.6开始,没有DropConnect层。虽然最好有一个。这是文档https://keras.io/layers/core/的链接 只要有一个,它就会在那里更新。此外,现有图层也无法转换为DropConnect。希望他们能在不久的将来添加。

答案 1 :(得分:1)

当前没有DropConnect层的官方Keras实现,但是您可以使用以下github上的实现:https://github.com/andry9454/KerasDropconnect
在那里,他们解释了如何使用其代码。
DropConnect类位于ddrop/layers.py中。
因此,基本上,他们创建了自定义Keras密集层(扩展Dense层的类)并实现了权重的“放下”,还实现了可使用的自定义Keras层包装器。
我只用了包装器,尝试了扩展的Dense层,但看起来有一些可修复的问题...
我不确定包装程序是否适用于非密集图层的图层,您可以尝试...

答案 2 :(得分:0)

here是一种将TensorLayer和Keras结合使用的简单方法,因此您无需在Keras中重新实现dropconnect图层。

答案 3 :(得分:0)

您可以使用Lambda层来转换tf实现。

Using Tensorflow Layers in Keras

https://nickcdryan.com/2017/06/13/dropconnect-implementation-in-python-and-tensorflow/

def dropConnect(x):
    return tf.nn.dropout(x, rate = 1 - p) * p
model.add(Lambda(dropConnect))