ImportError: No module named 'keras_contrib' - python

I am trying to import Keras lib code to execute CRF using the import command below but an error raises as titled. Please share the solution for this.
The command used to execute is
from keras_contrib.layers import CRF
Traceback (most recent call last):
File "", line 1, in
from keras_contrib.layers import CRF
ImportError: No module named 'keras_contrib'

A simple
(sudo) pip install git+https://www.github.com/keras-team/keras-contrib.git
as mentioned in the installation instructions did the trick for me.

This error means that Python is unable to find the module in one of the directories defined by Python path. The module is either not installed or is installed in another directory.
If not installed, then see https://github.com/keras-team/keras-contrib for installation instructions.
If installed but not found, you will most likely need to add the directory where it is installed to your Python path. You can find out what your current Python path is by inspecting the variable sys.path (such as python -c 'import sys; print sys.path'). You may need to add another directory to your path by setting the environment variable PYTHONPATH before running your script, but there are other options. See for example PYTHONPATH vs. sys.path for some insight.

After struggling for a while, I was so willing to make myself clear of this issue, so I searched for a while, and just figured out and tested.
When you create a new conda env by specifying the python version, it will use the conda_root_python version. And if you didn't install the pip package, and try to use pip under your created conda env, it will only run the conda_root_pip and install the package in the root site_packages.
I know three ways to install python packages only in your created conda env.
For a better explanation, we create a conda env with same python version of conda root environment.
conda create -n myenv python
I. One of the officials advise, install package with conda command for specified conda environment,
conda install -n myenv tensorflow
II. Another one of official advise, get into your specified environment and run conda install
source activate myenv
conda install tensorflow
in above two ways you don't need to install extra packages like pip and other pip related packages.
III. For people who really want to pip, just because get used of that.
install pip package(just as above two ways did).
conda install -n myenv pip
or
source active myenv
conda install pip
then comes the pip install when you are in your environment
pip install tensorflow
--------new edit above 15.April.2018--------------
Just to make it more clear.
If you are working under anaconda environment, you should also install all the modules and IDE you need in that environment.
Here I just put one example of anaconda env flows:
conda create --name=my_conda_env python=2.7 #create an environment
activate my_conda_env #get into that env
pip install numpy #install packages you need
...
pip install keras_contrib
pip install spyder #install IDE
Getting Started with conda
---------
Try install in root
activate root
pip install keras_conrib
go back to your tensorflow
start your spyder and try again
Maybe this is your issue
Module installed on Conda, but gives error on importing in Spyder (Python IDE)
----------------- above new answer
It seems you are under conda environment, env-name is "tensorflow", so try to start python and try import again. To make it clear
make sure you have (tensorflow) in front of C:\Users>
type python to start python
import keras_contrib to see if you have keras_contrib in anaconda env (tensorflow) due your comment, it should be
from keras_conrib.layers import CRF (crf or CRF? just try)
If you installed keras_contrib in env "tensorflow", should also start python and do your jobs in the same env, for a new env, you have to install it again.
Here is something for newbie just like me after playing with python for a while and still not familiar with anaconda, I hope you didn't come up with that. As follows:
I used to think in my anaconda env is already in python(actually not yet), so I just type
from keras_contrib.layers import CRF when I saw (tensorflow)C:/Users> which is actually wrong
The right way as described up is get into python(step 2.) or ipython or jupyter just for test if you get the package.
--------------------- below is old answer
I think you confused keras with keras_contrib.
They are two different modules.
try pip install keras_contrib or use other ways to install keras_contrib.

If you are trying to install the tensorflow-keras version or even the keras version using git cloning and setup.py installing and getting the above error then you might want to add the path of the keras-contrib folder to system path using -
import sys
sys.path.append('<remaining_path>/keras_contrib')

Simply run:
conda install git+https://www.github.com/keras-team/keras-contrib.git

If you use Tensorflow, you may get over this error by replacing
from keras_contrib.layers import CRF
with
from tensorflow_addons.layers import CRF
If you're still interested in Keras itself, use the following line in Jupyter
!pip install git+https://www.github.com/keras-team/keras-contrib.git
Just note that you may face other errors while using seperate Keras, so I suggest that you use Keras that is supported in Tensorflow.

Related

Issue with installing python modules

I am pretty new to python. Just been working through some online tutorials on udemy. I seem to have an issue with pip installing modules.
I've tried reinstalling them.
Upgrading my python version.
In VS I always just get module not found.
If I do it in the cmd prompt this is what I get below.
You are currently working on the base environment of your computer. For safety, you can first create a new virtual environment with
python3 -m venv -n new_env
So that you won't corrupt any default installations. Then, activate it with
source new_env/bin/activate
And update the pip and setuptools with
pip3 install --upgrade pip
pip3 install --upgrade setuptools
Finally, install numpy via
pip3 install numpy
However, I would recommend using Anaconda to build your virtual environment. When you install Anaconda and make sure it is included in the path of your terminal, all you need to type is
conda create -n new_env python=3.7 numpy
and it will automatically build the wheel for numpy. Here, "new_env" is just an example for a virtual environment name, and Python version 3.7 is also an example.
You can then, activate this conda environment by
conda activate new_env
To use this virtual environment, which you built either with "venv" or "conda", you should locate and activate this environment from the project interpreter settings in VS .
Finally, I would also recommend considering Pycharm IDE which can also help you with creating a virtual environment and installing packages in it.
It seems that you already have the packages installed. Using VS, please, be sure that you selected the correct Python interpreter (https://code.visualstudio.com/docs/python/environments)

python can't find conda packages but can find pip packages

I'm sure this might be a common problem but I've scoured the StackOverflow and read through all the recommended posts that StackOverflow gave me before posting. However, I've installed tensorflow on conda but not on pip. When I run Python, I can't run import tensorflow since it gives me ModuleNotFoundError: No module named 'tensorflow'. This leads me to believe that conda installs the packages to a different place than pip, but I'm not sure how to make them install to the same place. I recall a long time ago, the problem being related to usr/bin and usr/local/bin or something, but I don't remember how that goes or the solution.
Any links / tips would be appreciated!
Please follow the below steps:
The below command will list all the environments in the system and their path
conda env list
Please activate the corresponding environment using the below command
conda activate <env_name>
You can list the pip/conda packages that you have installed in the activated environment using the below command
pip freeze
conda list
If tensorflow is not listing, please install tensorflow again using the below command
pip install tensorflow
If still you are facing issue check the PATH variable in control panel and set python path.

No module named "Torch"

I successfully installed pytorch via conda:
conda install pytorch-cpu torchvision-cpu -c pytorch
I also successfully installed pytorch via pip:
pip3 install https://download.pytorch.org/whl/cpu/torch-1.0.1-cp36-cp36m-win_amd64.whl
pip3 install torchvision
But, it only works in a jupyter notebook. Whenever I try to execute a script from the console, I get the error message:
No module named "torch"
Try to install PyTorch using pip:
First create a Conda environment using:
conda create -n env_pytorch python=3.6
Activate the environment using:
conda activate env_pytorch
Now install PyTorch using pip:
pip install torchvision
Note: This will install both torch and torchvision.
Now go to Python shell and import using the command:
import torch
import torchvision
I installed on my macos by the official command:
conda install pytorch torchvision -c pytorch
but when I follow the official verification I get the same problem like yours.
Then I create a conda virtual environment:
conda create --name learnpytorch python=3.5
and install pytorch inside the environment:
conda install pytorch torchvision -c pytorch
run the verification, it works.
Hope these could help you.
If you are using Anaconda Prompt, there is a simpler way to solve this.
conda install -c pytorch pytorch
You need to add this at the very top of your program
import torch
If this is not a problem execute this program on both Jupiter and command line and pretty much you will understand if you have a mismatch.
import sys
print(sys.executable)
I had the same problem right after installing pytorch from the console, without closing it and restarting it.
By restarting the console and re-entering my env, I solved the problem
Make sure that NumPy and Scipy libraries are installed before installing the torch library that worked for me at least on windows.
Install NumPy: pip install numpy
Install Scipy: pip install scipy
Go to pytorch.org and select your needs and copy the address
Paste the address and download
Usually if the torch/tensorflow has been successfully installed, you still cannot import those libraries, the reason is that the python environment you try to import is not the python environment you installed.
For example, if you have installed the torch/tensorflow using python='/usr/bin/python', then you cannot import them to python='/home/usrname/.../bin/python'.
The solution is simple thus, just change the python and import again.
Switch to python3 on the notebook
Welcome to SO,
please create a seperate conda environment
activate this environment conda activate myenv and than install pytorch in it.
Besides you can check which python you are currently using by which python
I had the same problem after following the official installation guide in here. I realized that it was my stupid Atom built-in terminal.
Inside the atom terminal, which python returned /usr/bin/python, although it showed the mark of (conda_env)$.
I fixed it by opening a new terminal and activating the (conda_env), and it worked. Verified and which python yields /Users/my_usr/anaconda3/envs/conda_env/bin/python
The procedure I used is specific to Windows 10 PyTorch installation on anaconda.
Create a conda virtual environment using: conda create -n torch_env
Activate virtual environment using: conda activate torch_env
When I installed, this was my current config: conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch.
Please find correct configuration according to your system settings from pytorch website directly: https://pytorch.org/get-started/locally/
Run python with import torch command. It should definitely work!
If you are using conda, it's possible that your console is using a different version of python, and the packages you installed using conda are not installed on this version. In my case, I installed a 3.9 version by downloading from the website, and conda installed a 3.8 version. And all the packages only installed for 3.8. Deleting the 3.9 version did the trick for me.
I'm using Jupyter Notebook launching from Anaconda Navigator 2.3.2 (Windows 10) to investigate pyTorch in a new Environment created in Navigator. Before launching I added pyTorch via a Command Prompt with the new Environment activated using the following which I got from pytorch.org:
conda install pytorch torchvision torchaudio cpuonly -c pytorch
I then ran into the No module named "torch" issue and spent many hours looking into this. I was eventually able to fix this issue looking at the results of this:
import sys
print(sys.path)
For me, this showed that the path to site-packages for my kernal (aka Environment) was missing. So I edited the kernal's kernal.json file found in:
<DRIVE_LETTER>:\Users\<USER_NAME>\AppData\Roaming\jupyter\kernels\<KERNAL_NAME>
To include an env section, which adds to PYTHONPATH like:
{
"argv": [
"<ANACONDA_INSTALL_DIR>\\envs\\<KERNAL_NAME>\\python.exe",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"env": {
"PYTHONPATH": "..\\..\\..\\Users\\<USER_NAME>\\<ANACONDA_INSTALL_DIR_NAME>\\envs\\<KERNAL_NAME>\\Lib\\site-packages"
},
"display_name": "<KERNAL_NAME>",
"language": "python",
"metadata": {
"debugger": true
}
}
Please note that in my case I had to go back up 3 directories to the root of the drive, hence, the ..\\..\\..\\ at the start of the PYTHONPATH entry. You might need to change that. Also if you try to use a full path, to your Environment's site-packages, then it will prepend the current contents of PYTHONPATH to it instead of adding it as a separate entity.
I am struggling the above answer and it does not work in my case.
That is because I install the porch under window COMMAND PROMPT.
Installed under the Anaconda environment command prompt. To do that, type "anaconda" and select the ANACONDA COMMAND PROMPT (this is very important for me to fix my mistake)
Do the same command from: https://pytorch.org/get-started/locally/
Check SDK install. you also install the sdk in your environment.
You can install the SDK using navigator.
first, change tab to Environments,
second, push play button of your environment name.
Third, then install SDK.
If you are using windows and you have no CUDA, then go with the following command.
pip install torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
You can visit its official site for more explanation.
Pytorch Official site
If you are in the console, and importing a function that uses torch, you may need to add import torch within the function to allow for the correct scope. Because if you are importing the function, and there is no import statement at the top of the file, it won't work. Alternatively, make sure import torch is at the top of the module with the function you are trying to use, and within console, call the function using: your_module.function_that_references_torch()
Using Conda on win 10 running script from vs code terminal as:
$ script.py
Generates error:
ModuleNotFoundError: No module named 'torch'
The system goes outside the environment to execute call python.
This works:
$ python script.py
I tried to fixed the problem both in my laptop and computer, and it was fixed in different ways. You can try.
Laptop(Nvidia GTX 950M)
I fixed the problem by typing this under the environment that you install pytorch.
$ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
Remember to change the version(10.0) of you cuda
Computer(No GPU)
$ conda update -n base -c defaults conda
Most of the answers to this question are unsatisfying in that they explain how to create and activate a conda environment. The reason for the error is however not explained.
In my case, I had a conda environment set up, but the torch module was still not found, even if I installed it.
The reason for the error is that python v2 was the main interpreter, not python3.
You can test that by running python --version
Then follow the instructions from above to install the conda environment with the correct python version, e.g.
conda create -n venv python=3.9
I had an issue related to the path. Basically if I ran python with the path from which python, import torch works, if I just run python, it doesn't work.
This solution from #shoemakerdr on GitHub worked for me:
In your .bashrc, before the Conda initialize code, put unset CONDA_SHLVL
Create the environment:
conda create -n env_pytorch python=3.6
Install your modules. For example:
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
Next time you want to use pytorch:
conda activate env_pytorch
and when finished:
conda deactivate

"No module named tensorflow" after pip install in Anaconda Environment

I just started to learn how to use Anaconda to manage packages. I am trying to install tensorflow in conda environment. So first of all, I create an environment by:
conda create -n tensorflow
Then, I source it by:
source activate tensorflow
I can see my prompt changed so I think it is going right.
I notice that it seems that the tensorflow environment is copying from ~/anaconda2/lib/ where I do have my root version python2.7 and tensorflow0.12.0
I installed a new version Python in tensorflow environment by:
conda install python=3.5
Then, I follow the steps to install tensorflow by:
pip install --ignore-installed --upgrade TF_PYTHON_URL
However, when I do conda list, I can only see Python3.5 but not tensorflow1.0. I also failed to import tensorflow when I am in Python.
So I have two questions that really confuse me.
Why does the pip installed tensorflow not show up when I do conda list?
Although I conda install python=3.5 and I can see it from conda list, I am not using python 3.5 when I enter Python directly. It seems still using Python2.7, which comes from my root environment.
I appreciate any tutorial on how anaconda works.
I think your pip install is installing into the global environment instead of
tensorflow. Why don't you try installing by specifying the path? For example pip install --target $HOME/anaconda3/tensorflow tensorflow(Where the first tensorflow is your environment and the second is the actual package).
I just saw the last two questions. So you actually see the tensorflow you installed with pip? I am confused now. Type which pip to see if it is running from the tensorflow environment or the global. You could also try source deactivate before source activate tensorflow just to make sure that you are not using a different environment, then run which python. It should show your new environment.
If you want to create an environment using a specific version of Python (rather than the system default), you can do for example:
conda create --name myCoolEnv python=3.5
and then activate with
source activate myCoolEnv
You can read more about Anaconda environments here.

Keras in `pip list` and anaconda package list but cannot import

I am using anaconda 4.4.0 with Python 3.6.2. First, I pip installed Keras, it shows on pip list and conda list and also in environment>root>packages in Anaconda. But when I use import keras ,in Anaconda or in Terminal, I get
Traceback (most recent call last):
...
ModuleNotFoundError: No module named 'keras'
I tried installing Keras with anaconda also, and I get the same ModuleNotFoundError.
I have also tried uninstalling it, then download the master branch from github and install using python setup.py install. Again the package is in the lists but I cannot import it.
UPDATE:
I have uninstalled packages several times and installed using Keras package in pypi, Now I am able to import the packages in the python in terminal. But still I cannot import in jupyter notebook.
It may worth mentioning that I am working with MacOS Sierra 10.
If you are able to import in shell but not in the notebook, according to gnestor's answer to this question, your python may use different executables. Run:
import sys
sys.executable
in shell and in notebook. If the directories are different then you must change the kernelspec of the notebook. This might have happened by installing Tensorflow or other packages that change the environment and kernelspec. You can find the kernelspec directory with this command:
from jupyter_core.paths import jupyter_data_dir
print(jupyter_data_dir())
In that directory you will find a JSON file. Open it and change the path to your working python directory. (working python directory in which python)
use python -m pip install keras
Then, use python shell to check for installation.
try this code:
conda install -c deeplearn keras
Basically, the full answer you can find here:
Install Python package: "Package missing in current win-64 channels"
However, it seems to me you are using different python in your terminal.
Check this command in the terminal:
which python
It should return something like this:
/Users/***/anaconda3/bin/python
Try running:
conda install jupyter
conda install tensorflow
pip install Keras
with your conda environment activated. Don't ask me why - Anaconda's behavior baffles me. (I've created a .yml script with these yet I still seem to need to do this step)

Categories