Cannot import 'swish' in 'tensorflow.python.keras.activations'

Viewed 4199

I am running a jupyter notebook from an Anaconda Prompt (Anaconda 3), and I am trying to use tensorflow keras.

I am trying to run the import statement:

from tensorflow.keras.models import Sequential

I get the following error:

ImportError                               Traceback (most recent call last)
<ipython-input-1-d23f18c08372> in <module>
      4 from keras.models import Model
      5 
----> 6 from tensorflow.keras.models import Sequential
      7 
      8 from tensorflow.keras.layers import Dense, Activation, Dropout

~\Anaconda3\lib\site-packages\tensorflow\keras\__init__.py in <module>
     12 import sys as _sys
     13 
---> 14 from . import activations
     15 from . import applications
     16 from . import backend

~\Anaconda3\lib\site-packages\tensorflow\keras\activations\__init__.py in <module>
     21 from tensorflow.python.keras.activations import softplus
     22 from tensorflow.python.keras.activations import softsign
---> 23 from tensorflow.python.keras.activations import swish
     24 from tensorflow.python.keras.activations import tanh
     25 

ImportError: cannot import name 'swish' from 'tensorflow.python.keras.activations' (C:\Users\FlamePrinz\Anaconda3\lib\site-packages\tensorflow\python\keras\activations.py)
3 Answers

Try this way

from keras.utils.generic_utils import get_custom_objects
from keras.layers import Activation
get_custom_objects().update({'swish': Activation(swish)})

swish function needs to be passed into activation class to actually build it.

And then you can do

model.add(Dense(64, activation = "swish"))

You can download swish activation from pypi. Try the following:

  1. pip install swish-activation
  2. import swish_package
  3. from swish_package import swish

This is an older question, but I ended up taking Dr. Snoopy's suggestion uninstalling and reinstalling TensorFlow which solved my issue.

Related