tensorflow: Unable to import tf.keras.optimizers

Please make sure that this is a bug. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:bug_template

System information

  • Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 16.04
  • Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: None
  • TensorFlow installed from (source or binary): binary
  • TensorFlow version (use command below): 1.12.0
  • Python version: 3.6
  • Bazel version (if compiling from source): None
  • GCC/Compiler version (if compiling from source): None
  • CUDA/cuDNN version: 9.0, 7.0
  • GPU model and memory: GTX 1080ti 11gb

Describe the current behavior Cannot import keras.optimizers when done like this

from tensorflow.keras.optimizers import *

ImportError                               Traceback (most recent call last)
<ipython-input-17-ea1fa27bfa23> in <module>()
----> 1 from tensorflow.keras.optimizers import *

~/tf/lib/python3.6/site-packages/tensorflow/keras/__init__.py in <module>()
     18 from tensorflow.keras import estimator
     19 from tensorflow.keras import initializers
---> 20 from tensorflow.keras import layers
     21 from tensorflow.keras import losses
     22 from tensorflow.keras import metrics

~/tf/lib/python3.6/site-packages/tensorflow/keras/layers/__init__.py in <module>()
      7 
      8 from tensorflow.python.keras import Input
----> 9 from tensorflow.python.keras.applications.densenet import Activation
     10 from tensorflow.python.keras.applications.densenet import AveragePooling2D
     11 from tensorflow.python.keras.applications.densenet import AveragePooling2D as AvgPool2D

ImportError: cannot import name 'Activation'

but this seems to work fine

import tensorflow as tf
optim = tf.keras.optimizers.Adam()

what weird is that even this works

from tensorflow.python.keras.optimizers import *

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 18

Most upvoted comments

I had the same problem, and i solved it by :

from tensorflow.keras.optimizers import RMSprop

instead of :

from keras.optimizers import RMSprop

@Piyushagg19 I had importes like: import tensorflow as tf from tensorflow import keras from keras…optimizers import Adam

then I done: from tensorflow.keras.optimizers import Adam

and it works for me

I think, it’s nessesary to add tensorflow before keras

As @LazyDareDevil mentioned: from tensorflow.keras.optimizers import works.

Then I was able to add: adam=Adam(learning_rate = 0.01) and model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])