【问题标题】:ImportError: cannot import name 'ReLU'. in Keras 2.1.3 [closed]ImportError:无法导入名称“ReLU”。在 Keras 2.1.3 [关闭]
【发布时间】:2018-10-18 14:37:12
【问题描述】:

使用 Keras 2.1.3 我在 from keras.layers import ReLU 上得到 ImportError: cannot import name 'ReLU',在 Keras 2.1.3 中导入 ReLU 的正确方法是什么?

我可以在 Keras 2.2.2 中导入ReLU

   import keras as k
   print(k.__version__)
   from keras.layers import ReLU

是的,我知道Activation('relu'),但我正在寻找MobileNet implementation 中使用的ReLU 函数

更新:

查看 Keras 2.1.3 的 mobilenet.py,似乎他们使用:

def relu6(x):
    return K.relu(x, max_value=6)

根据这个线程https://github.com/keras-team/keras/issues/7431 in Keras 2.1.3 mobilenet 的自定义层可以像这样导入:

from keras.applications.mobilenet import relu6
from keras.applications.mobilenet import DepthwiseConv2D

【问题讨论】:

  • 导入Activation 并将"relu" 传递给它的构造函数不是正常的方式吗?
  • @erip 不一样,我需要ReLU 和这里的参数github.com/keras-team/keras-applications/blob/master/…
  • ReLU 是在更高版本的 keras 版本(2.2.x)中定义的,所以你可以只更新 keras 来获取它。
  • @MatiasValdenegro 我无法更新它,因为我需要将其转换为仅适用于 Keras 2.1.3 的 coreml。
  • @mrgloom 然后使用那个 keras 版本的 mobilenet,而不是 keras-applications 的 master 分支

标签: python keras deep-learning


【解决方案1】:

没有keras.layers.ReLU,因此您的输入错误。 Relu是一个激活keras.activations.relu(x, alpha=0.0, max_value=None, threshold=0.0)

您引用的代码将层定义为:

global backend, layers, models, keras_utils
backend, layers, models, keras_utils = get_submodules_from_kwargs(kwargs)

我不太确定这是做什么的(定义为 here)。

我觉得这段代码很混乱,因为我经常使用from keras import layers 导入图层。

【讨论】:

猜你喜欢
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 2018-08-13
  • 2017-02-23
  • 2020-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多