I’m planning to switch to Linux for few of my experiments, so I decided to try out setting up Anaconda Python and Keras from scratch on Ubuntu. I’ll be using the latest Ubuntu 16.10 (Yakkety Yak) 64-Bit for this.
Note: The screenshots I captured are from a virtual machine with Lubuntu 16.10 (the LXDE flavor of Ubuntu). But the steps and commands are exactly the same for the standard Ubuntu desktop as well.
First and foremost, get and install the latest updates in Ubuntu, (Reboot the machine if necessary after updating.)
sudo apt-get update
sudo apt-get upgrade
Then, we’ll install the following necessary packages,
sudo apt-get install build-essential cmake git unzip pkg-config
sudo apt-get install libopenblas-dev liblapack-dev
Now, on to installing Anaconda. Head over to the Anaconda Python Downloads page, and get the Linux installer for Anaconda. We’ll be getting the Python 3.5 64-Bit package.
Download the Anaconda Python 3.5 64-Bit package for Linux |
This will download a file named Anaconda3-4.2.0-Linux-x86_64.sh (the version numbers might be different based on the latest version available at the time of the download).
Open a terminal, and navigate to the location of the downloaded file, and run the following command to start the installation,
bash Anaconda3-4.2.0-Linux-x86_64.sh
You need to include the 'bash' command even if you’re not using the bash shell.
Start the Anaconda Installation |
Note: When installing Anaconda on the default location, you don’t need root access, so there’s no need to 'sudo'.
Accept the defaults…
Accept the defaults of the Installation |
… and let it install,
Installation ongoing |
At the end of the installation, it will ask whether to add the Anaconda install location to your PATH. Say 'yes' to that,
Select the option to add Anaconda to the PATH |
After the installation completed, close the terminal, and open a new one.
Now, we are ready to create an Anaconda environment and install Keras in it.
Create a new environment (I’ll name it ‘keras-test’) with the following packages.
conda create --name keras-test numpy scipy scikit-learn pillow h5py
Having these commonly used packages installed will make your life easier later on.
Creating the Anaconda environment and installing the packages |
Once the environment is created, and the package installations are finished, activate the environment,
source activate keras-test
I’ll be initially using Keras with the Theano backend, so I’ll install Theano first.
pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
(I’ll be doing a separate guide for installing TensorFlow on Ubuntu)
Finally, install Keras from pip,
pip install keras
Installing Keras on Anaconda |
Keas will by default try to use the TensorFlow backend. So, when using Theano, remember to switch the backend in Keras Config. See my post Switching between TensorFlow and Theano on Keras on how to switch backends.
Finally, let’s test the Keras installation by invoking the Python interpreter in our Anaconda environment and running the following command,
python
>>> import keras
Using Theano backend.
Keras on Anaconda on Linux, ready for action |
If you don’t get any errors, then we are ready to start developing Machine Learning models on Keras on Linux.
Related posts:
Getting Keras working with Anaconda Python
Switching between TensorFlow and Theano on Keras
Build Deeper: Deep Learning Beginners' Guide is the ultimate guide for anyone taking their first step into Deep Learning.
Get your copy now!
worked for the most part -- had this error "ImportError: No module named 'tensorflow'"
ReplyDelete//
(keras-test) ptahx@PtahXGamer:~$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import keras
Using TensorFlow backend.
Traceback (most recent call last):
File "", line 1, in
File "/home/ptahx/.conda/envs/keras-test/lib/python3.5/site-packages/keras/__init__.py", line 2, in
from . import backend
File "/home/ptahx/.conda/envs/keras-test/lib/python3.5/site-packages/keras/backend/__init__.py", line 67, in
from .tensorflow_backend import *
File "/home/ptahx/.conda/envs/keras-test/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", line 1, in
import tensorflow as tf
ImportError: No module named 'tensorflow'
Hi Ptahx,
DeleteThanks for the follow up.
When you install Keras, it's by default is set to use the TensorFlow backend, not Theano.
Since we only installed Theano is this guide, Keras gives the above error when it can't find Tensorflow.
We can tell Keras to use the Theano backend, and not to look for Tensorflow by editing the Keras config file. The config file is named 'keras.json' and is located in the '.keras' directory of your home directory ('~/.keras/keras.json' on linux, or '%USERPROFILE%\.keras\keras.json' on windows).
In that config file, change the "backend" parameter to "theano" (it would be "tensorflow" by default) and the "image_dim_ordering" parameter to "th" (would be "tf" by default). After changing these, Keras will start to use Theano instead of Tensorflow.
You can find more detailed instructions of changing the config in this post: http://www.codesofinterest.com/2016/11/switching-between-tensorflow-and-theano.html
also, details explanation about the "image_dim_ordering" parameter: http://www.codesofinterest.com/2016/11/keras-image-dim-ordering.html
Hi, Thimira.
ReplyDeleteThanks very much for this guide. I have successfully created a new environment following your instructions. Activated the environment, installed theano and keras, and both can be successfully imported via python interpreter in that environment. However, when I try to execute code in a Jupyter notebook, it cannot find theano; result is shown below. Can you help? Thanks very much.
Peggy
import utils; reload(utils)
from utils import plots
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
in ()
----> 1 import utils; reload(utils)
2 from utils import plots
/home/pdoerschuk/Workspace/FastAINotebooks/Notebooks/courses/deeplearning1/nbs/utils.py in ()
27 from IPython.lib.display import FileLink
28
---> 29 import theano
30 from theano import shared, tensor as T
31 from theano.tensor.nnet import conv2d, nnet
ImportError: No module named theano
Hi Peggy,
DeleteI'm not 100% sure (I haven't used Jupyter much), but the issue appears to be due to a path issue. Since Keras and Theano are working with the Python interpreter, then it could be just Jupyter doesn't have them on its search path.
Do you have the PYTHONPATH environmental variable set? if so, try adding the path to the '\Lib\site-packages' directory to it. You can find the path of your Anaconda environment by running 'conda info --envs'.
Also, few more things to look at:
Did you install Jupyter inside the Anaconda environment?
If not, then Jupyter might be using the system installed Python and it's packages, not the ones you installed with Anaconda. You can try uninstalling the system installed Jupyter, and installing it in the Anaconda environment you created by 'conda install jupyter'.
You can also try explicitly adding the site-packaged directory via code by adding,
import sys
sys.path.append('/Lib/site-packages')
Also, try the Jupyter Notebook Extensions from Anaconda, which give access to conda environments and packages to Pupyter,
https://docs.continuum.io/anaconda/jupyter-notebook-extensions
Let me know if this helps.
Thanks,