12

I am getting an import error when trying to import the Keras module Nadam:

>>> from keras.optimizers import Nadam
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name Nadam

I can import and use SGD, Adam, etc, just not this optimizer. Any help appreciated.

I installed Keras using:

git clone https://github.com/fchollet/keras.git
sudo python2.7 setup.py install

I have just found that, if I try to import it using the shell immediately after installation, the Nadam import works. But Nadam won't import in my script. So it's a path issue?

Chris Parry
  • 2,937
  • 7
  • 30
  • 71
  • How did you install Keras? from source? using pip? if so, which version? – Or Sharir Aug 31 '16 at 10:30
  • check out the paths then: `sys.path` and `sys.modules` (see where the modules are loaded from) - in the "shell" and in your script. – ivan_pozdeev Aug 31 '16 at 11:47
  • The question thus cannot be answered other than by directing you to the [Python import system docs](http://meta.stackexchange.com/users/174091/ivan-pozdeev?tab=profile) so you can troubleshoot the issue (i didn't find a decent guide specifically for troubleshooting, so the docs appear to be enough for the general folk). – ivan_pozdeev Aug 31 '16 at 12:52

3 Answers3

5

If you can import something in one place but not another, it's definitely an issue with the import system. So, carefully check the relevant variables (sys.path, environment variable PYTHONPATH) and where the modules in each case are being imported from (sys.modules).

For a more in-depth reading, I direct you to the Python import system docs and an overview of common traps in the system.

You may also have an old version of Keras installed somewhere: Nadam is a fairly recent addition (2016-05), so this may be the cause for the "can import other optimizers but not this one" behaviour.

fqxp
  • 7,680
  • 3
  • 24
  • 41
ivan_pozdeev
  • 33,874
  • 19
  • 107
  • 152
1

It could happen if you're using other version of python. Let's say, you have installed python globally with version 2.7.x, but when running your script, you're using python 3.x. In this case even you'll run python shell, you'll be able to import it, but when running concrete script which uses other version of python it wouldn't be possible.

turkus
  • 4,637
  • 2
  • 24
  • 28
0

Seems as if your keras package is not the latest version. Update your keras package by

sudo -H  pip3 install git+https://github.com/fchollet/keras.git --upgrade

or

sudo -H  pip3 install git+https://github.com/fchollet/keras.git --upgrade
deepgradient
  • 31
  • 1
  • 4