A few months ago I demonstrated how to install the Keras deep learning library with a Theano backend.
In today’s blog post I provide detailed, step-by-step instructions to install Keras using a TensorFlow backend, originally developed by the researchers and engineers on the Google Brain Team.
I’ll also (optionally) demonstrate how you can integrate OpenCV into this setup for a full-fledged computer vision + deep learning development environment.
To learn more, just keep reading.
Installing Keras with TensorFlow backend
The first part of this blog post provides a short discussion of Keras backends and why we should (or should not) care which one we are using.
From there I provide detailed instructions that you can use to install Keras with a TensorFlow backend for machine learning on your own system.
TensorFlow? Theano? Who cares?
It’s important to start this discussion by saying that Keras is simply a wrapper around more complex numerical computation engines such as TensorFlow and Theano.
Keras abstracts away much of the complexity of building a deep neural network, leaving us with a very simple, nice, and easy to use interface to rapidly build, test, and deploy deep learning architectures.
When it comes to Keras you have two choices for a backend engine — either TensorFlow or Theano. Theano is older than TensorFlow and was originally the only choice when selecting a backend for Keras.
So why might you want to use TensorFlow over a different backend (such as the no-longer-being-developed Theano)?
The short version is that TensorFlow is extremely flexible, allowing you to deploy network computation to multiple CPUs, GPUs, servers, or even mobile systems without having to change a single line of code.
This makes TensorFlow an excellent choice for training distributed deep learning networks in an architecture agnostic way, something that Theano does not (currently) provide.
To be totally honest with you, I started using Keras well before TensorFlow was released (or even rumored to exist) — this was back when Theano was the only possible choice of backend.
I haven’t given much thought to whether Theano or TensorFlow should be my “go to” backend. Theano was working well for what I needed it for, so why bother switching?
My eyes started to open when I ran this recent poll on Twitter asking my followers which backend they preferred when using Keras:
67% of respondents said they were using TensorFlow as their backend. I was honestly quite surprised. How, as a long-time Keras user, could I possibly be in the minority?
This 67% of respondents might be swayed since TensorFlow is now the default backend when installing Keras…or it could be because many of my followers are finding TensorFlow a better, more efficient backend (and using more TensorFlow specific features).
Regardless of the exact reasoning, there is one thing you cannot dispute: TensorFlow is here to stay.
If you need further proof all you need to do is take a look at this deep learning GitHub activity analysis from François Chollet (creator and maintainer of Keras):
As we can see, TensorFlow is topping the charts by a mile (#1) with Theano at #9.
While Keras makes it simple for us to switch backends (all we need to do is install our respective backends and edit a simple JSON configuration file), we still need to be mindful of what the trends are telling us: that TensorFlow will continue to be the preferred Keras backend in the (near) future.
Update 2018-06-04: Theano is no-longer being actively developed (announcement 2017-09-29) and as you guessed it, TensorFlow is now the default.
Step #1: Setup Python virtual environment
If you’ve ever read any of my previous tutorials (whether for OpenCV, CUDA, Keras, etc.) you’ve likely picked up on the fact that I’m a huge fan of using Python virtual environments.
I especially recommend Python virtual environments when working in the deep learning ecosystem. Many Python-based deep learning libraries require different versions of various dependencies.
For example, if you wanted to use Keras + Theano together you would need the latest version of Theano (i.e., their latest GitHub commit, which isn’t always the version published on PyPI).
However, if you wanted to try a library such as scikit-theano you would need a previous version of Theano that is not compatible with Keras.
The dependency version issue only compounds as you start to add in other Python libraries, especially deep learning ones (such as TensorFlow), which are volatile in their very nature (since deep learning is a fast-moving field with updates and new features being pushed online every day).
The solution?
Use Python virtual environments.
I won’t go into a huge rant on the benefits of Python virtual environments (as I’ve already done that in the first half of this blog post), but the gist is that by using Python virtual environments you can create a separate, sequestered Python environment for each of your projects, ensuring that each Python environment is independent of each other. Doing this allows you to totally and completely avoid the version dependency issue.
I’m going to assume that you have both virtualenv and virtualenvwrapper installed on your system (if not, both are pip-installable and require only a small update to your shell configuration; just follow the links above for more information).
Once you have virtualenv and virtualenvwrapper installed, let’s create a Python 3 virtual environment exclusively for our Keras + TensorFlow-based projects:
$ mkvirtualenv keras_tf -p python3
I’ll name this virtual environment keras_tf
for Keras + TensorFlow (I also have a virtual environment named keras_th
for Keras + Theano).
Anytime you need to access a given Python virtual environment just use the workon
command:
$ workon <virtual_env_name>
In this particular case we can access the keras_tf
virtual environment using:
$ workon keras_tf
Again, while this is an optional step, I really encourage you to take the time to properly setup your development environment if you are even remotely serious about doing deep learning research, experiments, or development using the Python programming language — while it’s more work upfront, you’ll thank me in the long run.
Step #2: Install TensorFlow
Installing TensorFlow is trivially easy as pip
will do all the heavy lifting for us:
$ pip install --upgrade tensorflow
Below you can see a screenshot of TensorFlow being downloaded and installed:
Assuming your TensorFlow install exited without error you can now test the installation by opening a Python shell and trying to import the tensorflow
package:
$ python >>> import tensorflow >>>
Step #3: Install Keras
Installing Keras is even easier than installing TensorFlow.
First, let’s install a few Python dependencies:
$ pip install numpy scipy $ pip install scikit-learn $ pip install pillow $ pip install h5py
Followed by installing keras
itself:
$ pip install keras
That’s it! Keras is now installed on your system!
Step #4: Verify that your keras.json file is configured correctly
Before we get too far we should check the contents of our keras.json
configuration file. You can find this file in ~/.keras/keras.json
.
Open it using your favorite text editor and take a peak at the contents. The default values should look something like this:
{ "floatx": "float32", "epsilon": 1e-07, "backend": "tensorflow", "image_data_format": "channels_last" }
Specifically, you’ll want to ensure that image_data_format
is set to "channels_last"
(indicating that the TensorFlow image dimension ordering is used rather than "channels_first"
for Theano).
You’ll also want to ensure that the backend
is properly set to tensorflow
(rather than theano
). Again, both of these requirements should be satisfied by the default Keras configuration but it doesn’t hurt to double check.
Make any required updates (if any) to your configuration file and then exit your editor.
A quick note on image_data_format
You might be wondering what exactly image_data_format
controls.
Using TensorFlow, images are represented as NumPy arrays with the shape (height, width, depth), where the depth is the number of channels in the image.
However, if you are using Theano, images are instead assumed to be represented as (depth, height, width).
This little nuance is the source of a lot of headaches when using Keras (and a lot of if
statments looking for these particular configurations).
If you are getting strange results when using Keras (or an error message related to the shape of a given tensor) you should:
- Check your backend.
- Ensure your image dimension ordering matches your backend.
Can’t find your keras.json file?
On most systems the keras.json
file (and associated subdirectories) will not be created until you open up a Python shell and directly import the keras
package itself.
If you find that the ~/.keras/keras.json
file does not exist on your system, simply open up a shell, (optionally) access your Python virtual environment (if you are using virtual environments), and then import Keras:
$ workon keras_tf $ python >>> import keras >>> quit()
From there, you should see that your keras.json
file now exists on your local disk.
If you see any errors when importing keras
go back to the top of this section and ensure your keras.json
configuration file has been properly updated.
Step #5: Sym-link in OpenCV (optional)
This step is entirely optional, but if you have OpenCV installed on your system and would like to access your OpenCV bindings from a Python virtual environment, you first need to sym-link in the cv2.so
file to the site-packages
directory of your environment.
To do this, first find where your cv2.so
bindings are located on your system:
$ cd / $ sudo find . -name '*cv2.so*' ./Users/adrianrosebrock/.virtualenvs/cv/lib/python3.6/site-packages/cv2.so ./Users/adrianrosebrock/.virtualenvs/gurus/lib/python3.6/site-packages/cv2.so ./Users/adrianrosebrock/.virtualenvs/keras_th/lib/python3.6/site-packages/cv2.so ./usr/local/lib/python3.6/site-packages/cv2.so
You’ll want to look for the global install of OpenCV which is normally in the /usr/local/lib
directory if you built OpenCV from source (unless you specified a custom OpenCV install directory).
Note: The other cv2.so
files returned by my find
command are simply sym-links back to the original cv2.so
file in /usr/local/lib
.
From there, change directory into the site-packages
directory of your Python virtual environment (in this case the keras_tf
environment) and create the sym-link:
$ cd ~/.virtualenvs/keras_tf/lib/python3.6/site-packages/ $ ln -s /usr/local/lib/python3.6/site-packages/cv2.so cv2.so $ cd ~
Again, this step is totally optional and only needs to be done if you want to have access to OpenCV from inside the keras_tf
virtual environment.
Step #6: Test out the Keras + TensorFlow installation
To verify that Keras + TensorFlow have been installed, simply access the keras_tf
environment using the workon
command, open up a Python shell, and import keras
:
(keras_tf) ~ $ python Python 3.6.4 (default, Mar 27 2018, 15:31:37) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import keras Using TensorFlow backend. >>>
Specifically, you can see the text Using TensorFlow backend
display when importing Keras — this successfully demonstrates that Keras has been installed with the TensorFlow backend.
Provided you performed the optional Step #5 and want to to test out your OpenCV sym-link, try importing your OpenCV bindings as well:
(keras_tf) ~ $ python Python 3.6.4 (default, Mar 27 2018, 15:31:37) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import keras Using TensorFlow backend. >>> import cv2 >>>
If you get an error message related to OpenCV not being found then you’ll want to double check your sym-link and ensure it is pointing to a valid file.
What's next? We recommend PyImageSearch University.
86 total classes • 115+ hours of on-demand code walkthrough videos • Last updated: October 2024
★★★★★ 4.84 (128 Ratings) • 16,000+ Students Enrolled
I strongly believe that if you had the right teacher you could master computer vision and deep learning.
Do you think learning computer vision and deep learning has to be time-consuming, overwhelming, and complicated? Or has to involve complex mathematics and equations? Or requires a degree in computer science?
That’s not the case.
All you need to master computer vision and deep learning is for someone to explain things to you in simple, intuitive terms. And that’s exactly what I do. My mission is to change education and how complex Artificial Intelligence topics are taught.
If you're serious about learning computer vision, your next stop should be PyImageSearch University, the most comprehensive computer vision, deep learning, and OpenCV course online today. Here you’ll learn how to successfully and confidently apply computer vision to your work, research, and projects. Join me in computer vision mastery.
Inside PyImageSearch University you'll find:
- ✓ 86 courses on essential computer vision, deep learning, and OpenCV topics
- ✓ 86 Certificates of Completion
- ✓ 115+ hours of on-demand video
- ✓ Brand new courses released regularly, ensuring you can keep up with state-of-the-art techniques
- ✓ Pre-configured Jupyter Notebooks in Google Colab
- ✓ Run all code examples in your web browser — works on Windows, macOS, and Linux (no dev environment configuration required!)
- ✓ Access to centralized code repos for all 540+ tutorials on PyImageSearch
- ✓ Easy one-click downloads for code, datasets, pre-trained models, etc.
- ✓ Access on mobile, laptop, desktop, etc.
Summary
In today’s blog post I demonstrated how to install the Keras deep learning library using the TensorFlow backend.
When it comes to choosing a backend for Keras you need to consider a few aspects.
The first is the popularity and therefore the probability that a given library will continue to be updated and supported in the future. In this case, TensorFlow wins hands down — it is currently the most popular numerical computation engine in the world used for machine learning and deep learning.
Secondly, you need to consider the functionality of a given library. While Theano is just as easy to use as TensorFlow out-of-the-box (in terms of Keras backends), TensorFlow allows for a more architecture agnostic deployment. By using TensorFlow it becomes possible to train distributed deep learning networks across CPUs, GPUs, and other devices all without having to change a single line of code.
Since Theano development has officially ceased in September 2017, I have fully switched to TensorFlow and I’m not looking back.
If you enjoyed this install tutorial and found it helpful be sure to leave a note in the comments!
And if you would like to receive email updates when new blog posts are published on the PyImageSearch blog, please enter your email address in the form below.
Join the PyImageSearch Newsletter and Grab My FREE 17-page Resource Guide PDF
Enter your email address below to join the PyImageSearch Newsletter and download my FREE 17-page Resource Guide PDF on Computer Vision, OpenCV, and Deep Learning.
Keith Pridbrey
Thank you, thank you. This post is both eye-opening and helpful.
Adrian Rosebrock
Thanks Keith!
manuel
Thank you Adrian!! Now I’m much more prone to try and play around with deep learning!!
Chris Hanning
I’m running OSX 10.11.6 with xcode-8.1 and using pyenv to create virtual environments.
Creating a python-2.7.12 virtual environment with
pyenv virtualenv 2.7.12 keras_tf
mkdir keras_tf; cd keras_tf; pyenv local keras_tf
pip install –upgrade $TF_BINARY_URL
(and confirming that $TF_BINARY_URL is for mac 2.7 CPU only)
installs tensorflow without errors but
keras_tf $ python
>>> import tensorflow
fails to import. There is an odd import error to do with a swig-created _pywrap_tensorflow module that it can’t find.
…some time later… it may have been due to my current default xcode being 8.1
In the meantime I managed to follow along but using python-3.5.2 instead.
Here is a link to my opencv3 install workflow for anyone interested:
https://gist.github.com/keevee09/e3ae7a72673ad036d480675c9c8aa2db
Adrian Rosebrock
Thanks for sharing Chris. I’m not sure about this error message. If you haven’t already, I would suggest opening an Issue on the official TensorFlow/Keras GitHub.
Shravan Kumar Parunandula
You always a rock star… Thanks
Adrian Rosebrock
Thank you Shravan 🙂
Kapil
It’s always handy to hear from you.
Thanks Adrian..!!
It is my absolute pleasure to learn from your tutorials. Please make tutorials for deep machine learning as you did for OpenCV python…!
Adrian Rosebrock
I’ll absolutely continue to do deep learning/machine learning tutorials on the PyImageSearch blog. There are a number of them already that were published within the past 2-3 months. I’ll also be announcing an actual deep learning book in December.
samjakar
Adrian,
I am getting started on this right away. Thanks for clear instructions as always.
Would the following scenario classify for a Machine learning/Neural Net + Computer Vision Combo?
Programmatically, I need to be able to identify a specific region in a video. Say, for example, the led displays on the perimeter of a Soccer game , or say the Giant overhead LED in a NBA game. Would I be able to achieve this with NN/ML/DL+CV combo? Or would this be just a pure CV effort where NN/ML/DL has probably no role to play? Would you care to share your thoughts?
Thanks
Samjakar
Adrian Rosebrock
I could traditional computer vision + machine learning along with deep learning being used to solve this problem. I think either would work, it mainly just depends if your camera is static or if you’ll be capturing images from a large variety of viewing angles.
Keep in mind that DL methods require a lot of training data so regardless of which way you go, make sure you collect a lot of data to work with.
Haydar
It’s a very helpful topic. Thank you Adrian.
Mike
The only problem with TF is its installation on windows that its quite nontrivial unlike the Theanos one.
Adrian Rosebrock
I haven’t used Windows in a very long time — that’s good to know. My biggest complaint with TensorFlow is that it allocates the entire GPU memory to the process that spawned it rather than only allocating the necessary GPU memory like Theano does.
Anastasios Tsiolakidis
Thanks for the guide again, you could rearrange something to indicate that ~/.keras/keras.json is not there until your first “import keras”
CK
Guys, there is a pecularity regarding installing TF version > 0.10 with keras.
You have to set image_dim_ordering in keras.json to “th” even though you are using TF!
Caused me immense headache while setting up TF on AWS.
Adrian Rosebrock
Hey CK — I just spun up an AWS instance three days ago and didn’t run into this particular issue. I’ll be sure to make note of it though.
Samantha Adams
Great tutorial! Love the stuff you have been doing with Deep Learning!
Just to add that I had a problem using virtualenv for some reason – scipy did not install properly. but using anaconda and an conda environment worked perfectly so that is a viable alternative.
Vasilis
You are the best !!!
I want to ask your advice if tensorflow and keras are optimal solutions for a face recogntion ?
I also have a small dataset for retraining
thanks !!!
Adrian Rosebrock
In reality, it depends. For some datasets you can get away with Eigenfaces, Fisherfaces, or LBPs for face recognition. More advanced solutions should use OpenFace directly instead of trying to code a custom face recognition network.
Khairul Izwan
If I am already had the virtual environment for OpenCV, can I just install/use the keras in it?
Adrian Rosebrock
Yes, you can certainly use a pre-existing virtual environment provided there aren’t any package conflicts. If your previous one was just for OpenCV I don’t expect there to be any.
zauron
Thanks for the guide Adrian!
I managed to configure keras (keras.json) depending on virtualenv, this manner I can use keras with Theano or Tensorflow via virtualenv.
If somebody is interested, just change in “~/.virtualenvs//lib/python2.7/site-packages/keras/backend” this line:
_keras_base_dir = os.path.expanduser(‘~’)
for:
if hasattr(sys, ‘real_prefix’):
_keras_base_dir = sys.prefix
else:
_keras_base_dir = os.path.expanduser(‘~’)
This use “.keras/keras.json” inside the virtualenv dir
Adrian Rosebrock
Awesome, thanks for sharing Zauron!
Wonchul Kim
Hi!
First of all, this post was really helpful to install keras with tensorflow!!
I have a question!
Now, I installed keras with tensorflow and theano.
And starting “workon keras_th”, when I import keras in python, this worked as theano backend, eventhough I implemented it on ‘keras_tf’.
Do I need to change the kears.json file setting?
If I have to, why do we use virtualenv?
I thought by using virtualenv, when i execute ‘keras_tf’ and import keras, it works as tensorflow backend, and when i execute ‘keras_th’ and import keras, it works as theano backend .
Adrian Rosebrock
You use virtual environments so you don’t have conflicting library versions. However, since Keras relies on configurations outside the virtual environment you will need to update your
keras.json
file if you want to switch between Theano and TensorFlow.An alternative would be to create a hook that automatically swaps your
keras.json
file when you run theworkon
command.Wonchul Kim
I’ve followed your post and completed to install keras with tensorflow.
But, after I closed the terminal and start a new one.
then, I tried to use ‘workon keras_tf’, but it said ‘workon: command not found’….
Is there something I have to do before using it?
Adrian Rosebrock
It sounds like your
~/.bash_profile
(or similar profile file) was not updated correctly when you installed virtualenv and virtualenvwrapper. Which operating system are you using?bernd
Thanks Adrian,
very helpfull
Raghunandan Palakodety
Awesome Adrian!. You give the best tutorials.
Adrian Rosebrock
Thanks Raghunandan — I’m happy you enjoyed the tutorial!
soumen
hello Adrian,
I have already installed GPU support TensorFlow in my system in docker. I can use tf in jupyter notebook. Do I need to install tf in my virtual environment again?
Adrian Rosebrock
Yes, each virtual environment is 100% independent from your system install — that is the way virtual environments are designed to avoid library versioning issues. Simply install TensorFlow into your virtual environment.
soumen
Hello Adrian, in my case, after installation of keras I can see the file ~/.keras/keras.json is empty instead of above mentioned default content. Is there anything wrong? I used just onething different from you like I used different TF_BINARY URL for my system ubuntu 16.04 gpu .. Awaiting for your response.
Adrian Rosebrock
Fire up a Python shell and import the Keras library. This should populate the .json configuration file.
Jason
Hi Adrian,
Very nice post!
I have a question. Why use tf as the backend and not use it directly? What is the advantage of using keras?
Adrian Rosebrock
Keras acts as a wrapper around Theano/TensorFlow and makes it much easier to write code to build CNNs while still retaining the optimizations and speed that Theano and TensorFlow give you.
DJ
Hi Adrian,
Thanks again for your post, very insightful. I am using AWS EC2 (p2.xlarge) to run Keras via Anaconda. I have installed all the correct drivers for the K80 GPU, somehow when I run my model, it’s still defaulting to use the CPU and was wondering if you happen to know if there’s a setting I can use to switch to always use GPU when running the Tensorflow backend?
Thanks!
Parnia
thank you Adrian for this great tutorial
Adrian Rosebrock
Thanks for the comment Parnia, I’m happy you enjoyed it! 🙂
Ajay
File “/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py”, line 2856, in conv2d
x = tf.nn.convolution(
AttributeError: ‘module’ object has no attribute ‘convolution’
I am getting this error could someone please help me to remove it.
Adrian Rosebrock
Which version of Keras are you using? Is it >= 2.0? If so, make sure you install TensorFlow >= 1.0.
Balaji
I have the same issue as well.
File “/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py”, line 2856, in conv2d
x = tf.nn.convolution(
AttributeError: ‘module’ object has no attribute ‘convolution’
I m using tensorflow 1.0 and keras 2.02
Adrian Rosebrock
Uninstall both tensorflow and protobuf, then re-install TensorFlow ensuring that it’s >= 1.0.
Shashank
Hey Adrian!
I was installing a CPU only version of Tensorflow on Ubuntu 16.04, Python 3.5 running on Virtual Box using the tutorial and I got the following error.
tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl is not a supported wheel on this platform.
Kindly help.
Thanks in advance
Adrian Rosebrock
It’s hard to say what the exact issue is. Make sure you are copying and pasting the full TensorFlow URL correctly.
auraham
Great post, Adrian! For those interested, replace the value of TF_BINARY_URL by
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.1-cp35-cp35m-linux_x86_64.whl
in order to use Tensorflow 1.0.1 (python 3.5, GPU-enabled). In other case, you will install a previous version (0.11 in this post). This is recommended to use the latest API and avoid conflicts.
For more options, check this page:
https://www.tensorflow.org/install/install_linux#TF_PYTHON_URL
Adrian Rosebrock
Thanks for sharing Auraham!
PranavAgarwal
How do I install Tensor Flow on my Ubuntu 15.04 32 bit system ,using pip always show error?
Adrian Rosebrock
What is the error message you are receiving? Without knowing the error, it’s impossible to diagnose the problem.
Surya
Thanks Adrian Rosebrock. I just followed the steps and its working fine. I think “image_data_format”: “channels_last” is also correct in addition to the “image_data_format”: “tf”.
Adrian Rosebrock
You can use
image_data_format
as eitherchannels_last
orchannels_first
with Keras 2.0. The difference is thatchannels_last
is faster with TensorFlow andchannels_first
is faster with Theano.Alessandro
Hi,
Great blog and thanks for sharing these info.
I have a question:
I have create my virtualenv keras with tensorflow backend with python; when i am trying to use matplotlib I have a problem because it does not work with virtual environment. Do you have any suggestion how to solve this issue?
Thanks,
Alessandro
Adrian Rosebrock
Hi Alessandro — are you getting an error when trying to use matplotlib from the virtual environment?
If so, try installing an older version of matplotlib:
pip install matplotlib==1.4.3
Igor Gallon
Hi Adrian. Is it possible to install Keras+TensorFlow in my Raspberry Pi 3 (raspbian)?
Adrian Rosebrock
Yes. I would actually suggest following my Deep learning + Ubuntu tutorial. Since both Ubuntu and Raspbian are Debian-based you can use the same instructions.
jeremy rutman
in the keras.json file
image_data_format
can no longer be set to tf, rather one should leave it (or change it) as channels_last like the below, which is actually default it seems.
{
“epsilon”: 1e-07,
“floatx”: “float32”,
“image_data_format”: “channels_last”,
“backend”: “tensorflow”
}
Adrian Rosebrock
You’re absolutely right, for the TensorFlow backend in new versions of Keras the
image_data_format
should now bechannels_last
.Cesar
Hi Adrian,
Do I need to repeat the whole process of pip install for every virtual environment that i will create?
thanks
Adrian Rosebrock
Correct, you would need to repeat the pip install process for each new Python virtual environment that you create.
Nihel
Hi Adrian
File “test_network.py”, line 22, in
orig = image.copy()
AttributeError: ‘NoneType’ object has no attribute ‘copy’
I am getting this error could someone please help me to remove it.
nabila
I think I’ve successfully got Keras installed by installing from the official keras repo on github. However, I’ve run into another problem where my openCV2 bindings are not being recognized within my keras_tf virtual environment.
However, it has been added to the site-packages folder:
pi@raspberrypi:~ $ sudo find . -name ‘*cv2.so*’
./.virtualenvs/keras_tf/lib/python3.5/site-packages/cv2.so
./.virtualenvs/cv/lib/python3.5/site-packages/cv2.so
./opencv-3.3.0/build/lib/cv2.so
Any suggestions? SO
Adrian Rosebrock
There are two possibilities here:
1. You are not in the “keras_tf” Python virtual environment when trying to import OpenCV and Keras
2. Your “cv2.so” sym-link from the “keras_tf” virtual environment points to a file that does not exist. Double-check that file path.
Charlie
Just wanted to let you know that I followed your instructions for Tensorflow installation, which failed with cryptic errors. I found that the latest version of Tensorflow will not run on my (older) desktop CPU, a Core 2 Quad Q9650. When I forced the installation of (the older) v1.5 of Tensorflow, everything worked.
I also bought your starter bundle last night. In the introduction summary, you have the sentence “Never in the history of machine learning and neural networks have the available tools at our disposable been so exceptional.” You likely meant to use the word “disposal.”
In any case, my reading list is full, and thanks for your efforts.
Adrian Rosebrock
Hey Charlie — which version of Python + TensorFlow did you originally try to install? Thanks for sharing that downgrading to v1.5 fixed the issue. I’ll also get that typo updated. Thank you for picking up a copy of the Starter Bundle, I hope you are enjoying it so far!
hashir
what are the changes should i take to install tensorflow and keras for gpu support
Adrian Rosebrock
To install TensorFlow with GPU support you would want to install
tensorflow-gpu
instead oftensorflow
:$ pip install --upgrade tensorflow-gpu
Son Vo
Hi Adrian,
I know this tutorial has been created for more than 2 years. I just wanted to know do you have any tutorial instructing how to deal with problem of Python 3.7.0?
I did a search and realised that Tensorflow has not supported this version yet. When I followed your tutorial (https://pyimagesearch.com/2016/12/05/macos-install-opencv-3-and-python-3-5/), the version of 3.7.0 was already installed on my computer. So, is that right if we only have one option to run with Tensorflow: install python 3.6 or lower? If it is, do you have any tutorial demonstrating how to install two versions of Python on the same computer?
Thanks Adrian very much.
Son.
Adrian Rosebrock
TensorFlow does not (yet) officially support Python 3.7. You either need to:
1. Downgrade to Python 3.6
2. Compile TensorFlow from source for Python 3.7 (not recommended)
I’m publishing a brand new post on installing Keras + TensorFlow on macOS Mojave tomorrow. This post will also show you how to use Python 3.6 instead. Keep an eye out for it!
Son Vo
Great news! Thanks a lots.
aniruth
thank you very much this helped a lot
Adrian Rosebrock
Thanks Aniruth, I’m glad it helped you!
Gowri
Very clear and great work!
I want to install Keras on my Raspberry pi 3 b+, where the python version is 3.5.4 but keras installation is with 3.6. Whether I have to upgrade python to 3.6?
Adrian Rosebrock
Keras can work with Python 3.5. Are you saying you want to use Python 3.6 instead?
Gowri
I have installed everything as you mentioned above, when I tried to run the program in this blog
Keras Tutorial: How to get started with Keras, Deep Learning, and Python
in raspberry pi 3 b+ I got errors like version of python not matching and ration is not matching. What to do? Please help me.
Adrian Rosebrock
Can you be a bit more specific? What versions of Keras and TensorFlow did you install on your Pi? What are your specific error messages?
mustafa
1- you are a very great man . thank you for your excellent tutorial .
2- i need your help :-
I followed your tutorial until i finished from installing opencv , keras . although these two libraries are correctly imported in the terminal of raspian , i faced an error with keras when i run mycode.py that imported keras and opencv .
i need you help alot
Dear Adrian
Adrian Rosebrock
Without knowing the error it’s impossible to say what the issue is but you may be forgetting to use the “workon” command to access your Python virtual environment before executing the code.