ImportError:无法导入名称normalize_data_format

时间:2018-08-02 11:38:22

标签: python tensorflow github keras importerror

我对使用github很陌生。我已经在ubuntu 16.04中安装了github,我安装了python 2.7.12,tensorflow 1.9和keras。我想在keras RNN中使用自己的自定义激活和优化器。我在网上搜索后才知道我需要安装keras-contrib软件包才能使用高级激活和自定义激活功能。

因此,我从github安装了keras-contrib。但是我不知道如何使用它以及如何使用keras-contrib运行程序。

但是我尝试使用以下命令

 git clone https://www.github.com/keras-team/keras-contrib.git
 cd keras-contrib
 python setup.py install

然后我尝试使用以下代码

 from keras.models import Sequential
 from keras.layers import Dense
 import numpy as np
 from keras_contrib.layers.advanced_activations import PELU

它显示以下错误

 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "keras_contrib/__init__.py", line 4, in <module>
    from . import layers
   File "keras_contrib/layers/__init__.py", line 3, in <module>
    from .convolutional import *
   File "keras_contrib/layers/convolutional.py", line 15, in <module>
    from keras.utils.conv_utils import normalize_data_format
  ImportError: cannot import name normalize_data_format

任何人请检查此错误,并帮助我解决此错误。

8 个答案:

答案 0 :(得分:5)

我更新了Linux中安装的keras贡献源代码。遵循更改:

https://github.com/ekholabs/keras-contrib/commit/0dac2da8a19f34946448121c6b9c8535bfb22ce2

现在,它运行良好。

答案 1 :(得分:3)

我有同样的问题。我使用以下命令安装了keras 2.2.2版本,并解决了问题。

pip install -q keras==2.2.2

请参阅此PR。

https://github.com/keras-team/keras-contrib/pull/292

答案 2 :(得分:0)

这一定是因为您下载的keras_contrib与keras的更新版本不兼容。检查此链接https://github.com/keras-team/keras/blob/master/keras/utils/conv_utils.py

这里没有像normalise_data_format这样的函数,它会引发错误。

答案 3 :(得分:0)

这一定是因为您下载的keras_contrib与keras的更新版本不兼容。检查此链接https://github.com/keras-team/keras/blob/master/keras/utils/conv_utils.py

它不起作用...

答案 4 :(得分:0)

已报告此错误,并已在此处修复:https://github.com/keras-team/keras-contrib/issues/291

答案 5 :(得分:0)

在Windows 10系统和Colaboratory中,使用Python 3.7解决了更新Keras和安装git版本的keras-contrib的问题。

  data   ->   binary representation    -> strip MSB and swap endianness -> decimal representation

ac d7 05 -> 10101100 11010111 00000101 ->   0001 01101011 10101100      ->   93100
e4 a6 04 -> 11100100 10100110 00000100 ->   0001 00010011 01100100      ->   70500
90 e1 02 -> 10010000 11100001 00000010 ->        10110000 10010000      ->   45200
dc 24    ->          11011100 00100100 ->        00010010 01011100      ->   4700
f0 60    ->          11110000 01100000 ->        00110000 01110000      ->   12400

使用以下方法检查您的Keras版本:

pip install -q keras==2.2.2
pip install git+https://www.github.com/keras-team/keras-contrib.git

答案 6 :(得分:0)

有同样的问题。问题在于,在更高版本的keras中,normalize_data_format函数已从keras.utils.conv_utils移至keras.backend.common。您可以使用

import keras

然后在您的代码中使用

keras.utils.conv_utils.normalize_data_format

答案 7 :(得分:0)

我遇到了同样的问题。我用这个解决了它:

from tensorflow.keras.utils import normalize

而不是:

from keras.utils import normalize