Keras - ImportError: cannot import name 'CuDNNLSTM' - keras

I am trying to use the CuDNNLSTM Keras cell to improve training speed for a recurrent neural network (doc here).
When I run:
from keras.layers import Bidirectional, CuDNNLSTM
I get this error:
ImportError: cannot import name 'CuDNNLSTM'
My configuration is Keras 2.0.8, python 3.5, tensorflow-gpu 1.4.0 (all managed by Anaconda) and I have both CUDA 8.0 and cudnn 6.0 installed that should be OK with the nvidia dependencies of tensorflow (here). My code setup makes Keras effectively use tensorflow backend, and every layer except the ones starting with CuDNN* work fine.
Anyone has an idea about the source of this import error ?

And for Tensorflow-2: You can just use LSTM with no activation function and it will automatically use the CuDNN version

It turns out keras 2.0.8 doesn't have the code for these kind of layers that came in more recent versions.
I used pip to upgrade to the lastest version:
pip install --upgrade keras
and it all works now.

These layers have been deprecated in the latest versions.
For a detailed tutorial you can see this Keras guide

in conda it will be (as of nov 2019)
conda config --add channels conda-forge
conda install keras==2.3.0

Related

Has anyone been able to download keras 2.4.0?

I’ve been trying to install keras 2.4.0 for a while but I can’t, I tried to do “pip install keras 2.4.0” but it installs me keras 2.5.0 instead on colab like it can’t find the keras 2.4.0 version anymore.
Would you please have a solution to install the keras 2.4.0 version?
Thanks

TensorFlow and Keras GPU usage issues

I am using an existing model to train a CRNN model which is based on Tensorflow and Keras. I am using anaconda-navigator to train the model.
When the model is being trained, it does not seem to use GPU as my GPU usage is at 5-6%.
I am attaching images of top -i command, Nvidia Xserver, and also my gpu is not being picked up by Tensorflow as tf.test.gpu_device_name() only shows CPU as shown in the below screenshot tf.test.gpu_device_name()
Tensorflow and Keras Versions in anaconda
top -i output
After looking at your TensorFlow and Keras versions in anaconda, i found there is a tensorflow-gpu package missing. It looks like you have only installed TensorFlow CPU version and not the GPU version. If you had installed the GPU version of TensorFlow, then the anaconda navigator would also show a metapackage of TensorFlow GPU library.
That is the reason why you don't see the details of your GPU with the command tf.test.gpu_device_name()
TensorFlow GPU will automatically load the CUDA libraries corresponding to your GPU.
Since you are using anaconda environment install the GPU version as follows
Activate your conda environment
conda install -c anaconda tensorflow-gpu
This command would install TensorFlow v2.2.0 to your conda environment.
If you want the latest tf v2.4 then try using pip to install the specific version inside your conda environment
pip install tensorflow-gpu==2.4
Keras will automatically be installed with TensorFlow 2.0 verison. You can use Keras library with TensorFlow backend. If you want a specific version of Keras, you can always install it using pip

Module 'tensorflow' has no attribute 'placeholder' but tfv1 is imported

I'm trying to run following code:
input_img = Input((height, width, 1), name='img')
model = get_unet(input_img, n_filters=16, dropout=0.05, batchnorm=True)
model.compile(optimizer=Adam(), loss="binary_crossentropy", metrics=["accuracy"])
But I'm getting "AttributeError: module 'tensorflow' has no attribute 'placeholder'".
Everywhere it is recommended to use
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
But I still keep getting such error.
If you are using Anaconda distribution the try to reinstall TensorFlow by using following commands
Remove tenserflow
conda remove tensorflow-gpu tensorflow tensorflow-base
re-installed tensorflow
conda install -c anaconda tensorflow
Reference:- https://anaconda.org/anaconda/tensorflow
If your code needs to run on GPU it is better to install tensorflow-gpu by using
conda install -c anaconda tensorflow-gpu
Reference:- https://anaconda.org/anaconda/tensorflow-gpu
Also if your project uses keras(Or distribution has keras(ex:-Colab)) then you can use tensorflow insides on keras by using "tensorflow.keras"
Ex:-
from keras.models import Sequential
Change to
from tensorflow.keras.models import Sequential
Python version of Colab has updated .
Add this
!pip uninstall keras-nightly
!pip install h5py==2.10.0
!pip install q keras==2.1.6
%tensorflow_version 1.x

ImportError: No module named 'keras'

So basically, I am fairly new to programming and using python. I am trying to build an ANN model for which I have to use Tensor flow, Theano and Keras library. I have Anaconda 4.4.1 with Python 3.5.2 on Windows 10 x64 and I have installed these libraries by following method.
Create a new environment with Anaconda and Python 3.5:
conda create -n tensorflow python=3.5 anaconda
Activate the environment:
activate tensorflow
After this you can install Theano, TensorFlow and Keras:
conda install theano,
conda install mingw libpython,
pip install tensorflow,
pip install keras,
Update the packages:
conda update --all
All these packages are installed correctly and I have check them with conda list.
However, when I am trying to import any of these 3 libraries (i.e. Tensor flow, Theano and Keras), it is giving me the following error:
Traceback (most recent call last):
File "<ipython-input-3-c74e2bd4ca71>", line 1, in <module>
import keras
ImportError: No module named 'keras'
Hi I have an solution try this if you are using Anaconda-Navigator
go to Anaconda Environment and search keras package and then install.
after install just type import keras in shell its working.
Have you tried using keras documentation
Install Keras from PyPI (recommended):
Note: These installation steps assume that you are on a Linux or Mac environment. If you are on Windows, you will need to remove sudo to run the commands below.
sudo pip install keras
If you are using a virtualenv, you may want to avoid using sudo:
pip install keras
from: https://keras.io/
Now you need to have Tensorflow installed and then write, for example:
import tensorflow as tf
...
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(12, input_dim=8, activation='relu'))
model.add(tf.keras.layers.Dense(8, activation='relu'))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))
...
Works for Tensorflow version: 2.4.1.
Or just type:
import tensorflow as tf
from tensorflow import keras
...
Try
import sys
print(sys.path)
and see if your anaconda site-packages folder is in the list.
It should be something like WHERE_YOU_INSTALLED_ANACONDA\anaconda3\envs\ENVIRONMENT_NAME\lib\python3.5\site-packages
If the path setting is correct, then try listing the folder content, and see if Keras, TensorFlow and Theano are in this folder.
I ran into a very similar issue after switching computers and downloading the latest Anaconda, which comes with python 3.6. It was no problem to install python 3.5 in its own environment, and install keras to this environment, but import keraskept failing.
My inelegant solution (assuming you've already got tensorflow/theano/cntk working fine in your global environment)?
Move the keras folder installed to Anaconda3/envs//Lib/site-packages/keras to Anaconda3/Lib/site-packages/keras. Now import keras gives a depreciation warning when run from a jupyter notebook launched via start menu, but it does work, and correctly returns the backend keras is running on.
I spent the whole day to install Keras, tried all the available methods online, almost dying. But I still cannot import keras.
(1). After using conda install or pip install, and delete the "1 > null > 2&1" ... I activated in conda prompt by activating tensorflow_cpu, it doesn't work anyway.
(2). Then checked the keras, and print os.path(), no virtual environment inside. I got so braindead, just copied all the keras data file from virtual environment env, and put into the "C:\Users\Administrator\Anaconda3\Lib\site-packages".
(3). Now, tensorflow and keras work well.
Click Update Index and then try searching for Keras again.
I have the same problem with:
conda 4.13.0
tensorflow 2.6.0
Note: We should not have to install Keras separately, as it ships with Tensorflow, starting with Tensorflow 2.0.
Symptoms:
Keras import (from tensorflow import keras) does not return an error, BUT any further reference to Keras does throw "ModuleNotFoundError", e.g. the following statements fail:
print(keras.__version__)
from keras import Sequential
I still don't have a direct solution for this, this is more of a workaround, but here it is:
Import ANY class from Keras JUST ONCE using full top-down import syntax AND instantiate it
Import Keras (now "for real")
E.g.:
from tensorflow.keras.layers import Dense
layer = Dense(10)
from tensorflow import keras
Now the following statements should work:
print(keras.__version__)
model = keras.models.Sequential()
This looks like some sort of lazy module loading gone wrong.
A direct and simple way to fix it is as below,
#uninstall keras and tensorflow
pip uninstall keras
pip uninstall tensorflow
#Now install keras and tensorflow for required version with dependencies.
pip install keras==2.2.4
pip install tensorflow==1.13.1
Always make sure that you install right version of tensorflow which supports that keras version as well, else you may end up in trouble again. By the way , the above fix worked for me.
I solved this problem by running one of the following in the terminal according to anaconda website.
To install this package (keras) with conda run one of the following:
conda install -c conda-forge keras conda install -c
conda-forge/label/broken keras conda install -c
conda-forge/label/cf201901 keras conda install -c
conda-forge/label/cf202003 keras
If you never use conda before you can check anaconda.
A direct and simple way to fix it is as below, #uninstall keras and tensorflow
py -3 -m pip uninstall keras
py -3 -m pip uninstall tensorflow
#Now install keras and tensorflow for required version with dependencies.
py -3 -m pip install keras
py -3 -m pip install tensorflow
the above fix worked for me.
If you are sure that you ran pip install keras at the command line, ensure that you use the small letter 'k' instead of the Capital Alphabet. I had a similar error message.
These are some simple steps to install 'keras' simply using the Anaconda Navigator:
Launch Anaconda Navigator. Go to the Environments tab.
Select ‘Not installed’, and type in ‘tensorflow’.
Then, tick ‘tensorflow’ and do the same for ‘keras’.
Click on ‘Apply’. The pop-up window will appear, go ahead and apply.
This may take several minutes.
Done.
This tutorial will guide you more graphically: https://www.freecodecamp.org/news/install-tensorflow-and-keras-using-anaconda-navigator-without-command-line/
Remember to launch spyder in the environment or activate it in line command (conda activate [my_env]. afater that, execute your script python.
Try to import keras library from its reference parent which means import tensorflow.keras

Error importing Tensorflow from Anaconda environment

I am quite a newbie with Anaconda and Tensorflow.
I am using Ubuntu 16.04 x64, I have installed Anaconda and works ok. After, I have installed Tensorflow following precise instructions from Tensorflow website:
$ conda create -n tensorflow
$ source activate tensorflow
(tensorflow)$ pip install --ignore-installed --upgrade tfBinaryURL
And I has also installed ok. I have activated the new environment, launched Spyder and tested the tensorflow test installation program:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
And I get the error importing Tensorflow:
ImportError: No module named tensorflow
Is there any environment variable to change? How can I solve this? I know it can ba a simple question, but I would appreciate a lot any advise for this...
PD: My intention is to later install Keras. Should it be as simple as activating the environment and install Keras using pip?

Resources