When it comes to working with deep learning + Python I highly recommend that you use a Linux environment.
Deep learning tools can be more easily configured and installed on Linux, allowing you to develop and run neural networks quickly.
Of course, configuring your own deep learning + Python + Linux development environment can be quite the tedious task, especially if you are new to Linux, a beginner at working the command line/terminal, or a novice when compiling and installing packages by hand.
In order to help you jump start your deep learning + Python education, I have created an Ubuntu virtual machine with all necessary deep learning libraries you need to successful (including Keras, TensorFlow, scikit-learn, scikit-image, OpenCV, and others) pre-configured and pre-installed.
This virtual machine is part of all three bundles of my book, Deep Learning for Computer Vision with Python. After you purchase your copy you’ll be able to download the virtual machine and get started with deep learning immediately.
In the remainder of this tutorial I’ll show you:
- How to download and install VirtualBox for managing, creating, and importing virtual machines.
- How to import the pre-configured Ubuntu virtual machine for deep learning.
- How to access the pre-installed deep learning libraries on the virtual machine.
Let’s go ahead and get started.
Your deep learning + Python virtual machine
Your purchase of Deep Learning for Computer Vision with Python includes a pre-configured Ubuntu virtual machine for deep learning. In the following sections I’ll show you how easy it is to import your Ubuntu deep learning virtual machine.
This tutorial is broken down into three parts to make it easy to digest and understand:
- Download and install VirtualBox.
- Download and import your pre-configured Ubuntu deep learning virtual machine.
- Access the Python development environment inside the deep learning virtual machine.
Step #1: Download and install VirtualBox
The first step is to download VirtualBox, a free open source platform for managing virtual machines.
VirtualBox will run on macOS, Linux, and Windows.
We call the physical hardware VirtualBox is running on your host machine. The virtual machine that will be imported into VirtualBox is the guest machine.
To install VirtualBox, first visit the downloads page and then select the appropriate binaries for your operating system:
From there install the software on your system following the provided instructions — I’ll be using macOS in this example, but again, these instructions will also work on Linux and Windows as well:
Step #2: Download your deep learning virtual machine
Now that VirtualBox is installed you need to download the pre-configured Ubuntu virtual machine associated with your purchase of Deep Learning for Computer Vision with Python:
The file is approximately 4GB so depending on your internet connection this download make take some time to complete.
Once you have downloaded the
VirtualMachine.zip file, unarchive it and you’ll find a file named
DL4CV Ubuntu VM.ova . I have placed this file on my Desktop:
This is the actual file that you will be importing into the VirtualBox manager.
Step #3: Import the deep learning virtual machine into VirtualBox
Go ahead and open up the VirtualBox manager.
From there select
File => Import Appliance... :
Once the dialog opens you’ll want to navigate to where the
DL4CV Ubuntu VM.ova file resides on disk:
Finally, you can click “Import” and allow the virtual machine to import:
The entire import process should take only a few minutes.
Step #4: Boot the deep learning virtual machine
Now that the deep learning virtual machine has been imported we need to boot it.
From the VirtualBox manager select the “DL4CV Ubuntu VM” on the left pane of the window and then click “Start”:
Once the virtual machine has booted you can login using the following credentials:
Step #5: Access the deep learning Python virtual environment
The next step after logging into the VM is to launch a terminal:
From there, execute
workon dl4cv to access the Python + deep learning development environment:
Notice that my prompt now has the text
(dl4cv) preceding it, implying that I am inside the
dl4cv Python virtual environment.
You can run
pip freeze to see all the Python libraries installed.
I have included a screenshot below demonstrating how to import Keras, TensorFlow, and OpenCV from a Python shell:
Step #6: (Optional) Install Guest Additions on virtual machine
An optional step you may wish to perform is installing the VirtualBox Guest Additions on your machine.
The Guest Additions package allow you to:
- Copy and paste from the virtual machine to your host (and vice versa)
- Share folders between the virtual machine and host
- Adjust screen resolution
You can install the Guest Additions by selecting
Devices => Install Guest Additions... from the VirtualBox menu at the top of your screen.
Executing code from Deep Learning for Computer Vision with Python on your virtual machine
There are multiple methods to access the Deep Learning for Computer Vision with Python source code + datasets from your virtual machine.
By far the easiest method is to simply open Firefox and download the .zip archives from the “Your Purchase” page after buying your copy of Deep Learning for Computer Vision with Python. I would recommend forwarding the receipt email to yourself so you can login to your inbox via Firefox and then download the code + datasets.
You may also use your favorite SFTP/FTP client to transfer the code from your host machine to the virtual machine.
Of course, you can always manually write the code inside Ubuntu virtual machine using the built-in text editor as you follow along with the book.
Tips for using the deep learning virtual machine
When using the Ubuntu VirtualBox virtual machine for deep learning I recommend the following:
- Use Sublime Text as a lightweight code editor. Sublime Text is my favorite code editor for Linux. It’s simple, easy to use, and very lightweight, making it ideal for a virtual machine.
- Use PyCharm as a full blown IDE. When it comes to Python IDEs, it’s hard to beat PyCharm. I personally don’t like using PyCharm inside a virtual machine as it’s quite resource hungry. You’ll also need to configure PyCharm to use the
dl4cvPython environment once installed.
Troubleshooting and FAQ
In this section I detail answers to frequently asked questions and problems regarding the pre-configured Ubuntu deep learning virtual machine.
How do I boot my deep learning virtual machine?
Once your VM has been imported, select the “DL4CV Ubuntu VM” on the left-hand side of the VirtualBox software, then click the “Start” button. Your VM will then boot.
What is the username and password for the Ubuntu deep learning virtual machine?
The username is
pyimagesearch and the password is
The username and password is not working for me.
The keyboard layout chosen for the Ubuntu virtual machine is the standard English layout. If you are using a keyboard in a different language than English please add the keyboard layout for your specific language.
To accomplish this, first open the system settings application and select “Keyboard”. From there, click the “Text Entry” button at the bottom of the panel:
Lastly, click the “+” icon, select your keyboard layout, and click “Add”:
You may need to reboot your system for these changes to take effect.
How do I run Python scripts that access deep learning libraries?
The Deep Learning for Computer Vision with Python virtual machine uses Python virtual environments to help organize Python modules and keep them separate from the system install of Python.
To access the virtual environment simply execute
workon dl4cv from the shell. Form there you’ll have access to deep learning/computer vision libraries such as TensorFlow, Keras, OpenCV, scikit-learn, scikit-image, etc.
How can I access my GPU from the Ubuntu virtual machine?
The short answer is that you cannot access your GPU from the virtual machine.
A virtual machine abstracts your hardware and creates an artificial barrier between your host machine and your guest machine. Peripherals such as your GPU, USB ports, etc. on your physical computer cannot be accessed by the virtual machine.
If you would like to use your GPU for deep learning I would suggest configuring your native development environment.
I am receiving an error message related to “VT-x/AMD-V hardware acceleration is not available for your system”. What do I do?
If you are getting an error message similar to the following:
Then you likely need to check your BIOS and ensure virtualization is enabled. If you’re on Windows you might also need to disable Hyper-V mode.
To resolve the problem:
- Disable Hyper-V mode from the Windows control panel (if using the Windows operating system). Take a look at the answers to this question, which is the same problem you are having. Disabling Hyper-V is different on different Windows versions, but following the answer to the question above you should be able to find your solution. That said, also make sure you do step 2 below as well.
- Check your BIOS. The next time you boot your system, go into the BIOS and ensure that Virtualization is enabled (normally it’s under some sort of “advanced setting”). If virtualization is not enabled, then the VM will not be able to boot.
In today’s tutorial I demonstrated:
- How to download and install VirtualBox, the software used to manage virtual machines.
- How to import and launch your Ubuntu deep learning virtual machine.
- How to access the deep learning development environment once Ubuntu has booted.
All purchases of my book, Deep Learning for Computer Vision with Python, include a copy of my pre-configured virtual machine.
This virtual machine is by far the fastest way to get up and running with deep learning and computer vision using the Python programming language.
If you would like to learn more about my new book (and pick up a copy yourself), just click here.
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.