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