Installation Tips#
How to use the latest updates directly from GitHub#
We often update the master deeplabcut code base on github, and then ~1 a month we push out a stable release on pypi. This is what most users turn to on a daily basis (i.e. pypi is where you get your pip install deeplabcut
code from! But, sometimes we add things to the repo that are not yet integrated, or you might want to edit the code yourself. Here, we show you how to do this.
Method 1:#
If you want to use the latest, you can use pip and add the specific tags, such as tf
or gui
, etc. by modifying and running:
pip install --upgrade 'git+https://github.com/deeplabcut/deeplabcut.git#egg=deeplabcut[tf]'
which will download and update deeplabcut, and any dependencies that donāt match the new version. If you want to force upgrade all of the dependencies to the latest available versions, too, then use the additional --upgrade-strategy eager
, i.e.:
pip install --upgrade --upgrade-strategy eager 'git+https://github.com/deeplabcut/deeplabcut.git#egg=deeplabcut[tf,gui]'
Method 2:#
If you want to be able to edi the source code of DeepLabCut, i.e., maybe add a feature or fix a š, then you need to ācloneā the source code:
Step 1:
git clone the repo into a folder on your computer:
click on this green button and copy the link:
then in the terminal type:
git clone https://github.com/DeepLabCut/DeepLabCut.git
Step 2:
Now you will work from the terminal inside this cloned folder:
Now, when you start
ipython
andimport deeplabcut
you are importing the folder ādeeplabcutā - so any changes you make, or any changes we made before adding it to the pip package, are here.You can also check which deeplabcut you are importing by running:
deeplabcut.__file__
If you make changes to the code/first use the code, be sure you run ./resinstall.sh
, which you find in the main DeepLabCut folder:
Then, you can see what version you have with deeplabcut.__version__
If you make changes, you can also then utilize our test scripts. Run the desired test script found here (you will need to git clone first): DeepLabCut/DeepLabCut.
i.e., for example:
python testscript_multianimal.py
Installation on Ubuntu 18.04 LTS#
Here are our tips for an easy installation. This is done on a fresh computer installation (Ubuntu 18.04 LTS)#
install gcc:
sudo apt install gcc
then, download CUDA 10 from here: https://developer.nvidia.com/cuda-downloads and follow the instructionsā¦ ie:
wget http://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run
sudo sh cuda_10.1.243_418.87.00_linux.run
with the exception that I also (afterwards):
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo ubuntu-drivers autoinstall
then reboot
Check gcc -version:
gcc --version
output:
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
Then:
sudo apt install nvidia-cuda-toolkit gcc-7
nvcc --version
then you can check:
nvidia-smi
and youāll see driver version, CUDA version, status of graphics card(s).
Installation on Ubuntu 20.04 LTS#
Hello! Another cookbook entry on how to install your freshly installed 20.04 LTS system for DLC use. Namely, CUDA, drivers, Docker, and anaconda!
Letās start with CUDA support for your GPU:#
sudo apt install gcc
then:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-ubuntu2004-11-3-local_11.3.1-465.19.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-3-local_11.3.1-465.19.01-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-3-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
Then:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo ubuntu-drivers autoinstall
then:
reboot
re-open terminal and check gcc version:
gcc --version
output:
gcc --version
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Then finish installation:
sudo apt install nvidia-cuda-toolkit gcc-9
Then check:
nvcc --version
All set! If error messages, read them carefully as they often tell you how to fix it, or what to google :D
Now you can see CUDA, DRIVER, GPU(s):
nvidia-smi
output:
nvidia-smi
Tue Jun 22 18:46:26 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 CUDA Version: 11.3 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... On | 00000000:0B:00.0 On | N/A |
| 0% 46C P8 11W / 200W | 252MiB / 8116MiB | 5% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
Next, Docker!#
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
add key: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Then:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
some clean up:
sudo apt autoremove
now you can run sudo docker run hello-world
and get:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Next, Anaconda!#
Click here to get the ubuntu/linux package: https://www.anaconda.com/products/individual#linux
this downloads a file, save it (I save into downloads)
then cd Downloads
:
and run:
bash Anaconda3-2021.05-Linux-x86_64.sh
and you get:
Welcome to Anaconda3 2021.05
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
Follow prompts!
Next, DeepLabCut!#
Given this is a totally fresh install, here are a few things that I also needed: sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
We strongly recommend for Ubuntu users to use Docker (https://hub.docker.com/r/deeplabcut/deeplabcut) - itās a much more reproducible environment.
If you want to use our conda file, then I proceeded below:
I grab the conda file from the website at www.deeplabcut.org. Simply click to download. For me, this goes into Downloads.
So, I open a terminal, cd Downloads
, and then run: conda env create -f DEEPLABCUT.yaml
Follow prompts!
Troubleshooting: Note, if you get a failed build due to wxPython (note, this does not happen on Ubuntu 18, 16, etc), i.e.:#
ERROR: Command errored out with exit status 1: /home/mackenzie/anaconda3/envs/DLC-GPU/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-0jsmkrr1/wxpython_aeff462b2060421a9cf65df55f63a126/setup.py'"'"'; __file__='"'"'/tmp/pip-install-0jsmkrr1/wxpython_aeff462b2060421a9cf65df55f63a126/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-pzy9q5u2/install-record.txt --single-version-externally-managed --compile --install-headers /home/mackenzie/anaconda3/envs/DLC-GPU/include/python3.7m/wxpython Check the logs for full command output.
failed
CondaEnvException: Pip failed
You can either: remove conda env: conda remove --name DEEPLABCUT --all
, open the DLC-GPU.yaml file (any text editor!) and change deeplabcut[gui]
to deeplabcut
. Then run: conda env create -f DEEPLABCUT.yaml
againā¦
then you will get:
Successfully uninstalled decorator-5.0.9
Successfully installed PyWavelets-1.1.1 absl-py-0.13.0 astor-0.8.1 bayesian-optimization-1.2.0 chardet-4.0.0 click-8.0.1 cycler-0.10.0 cython-0.29.23 decorator-4.4.2 deeplabcut-2.1.10.4 filterpy-1.4.5 gast-0.2.2 google-pasta-0.2.0 grpcio-1.38.1 h5py-2.10.0 idna-2.10 imageio-2.9.0 imageio-ffmpeg-0.4.4 imgaug-0.4.0 intel-openmp-2021.2.0 joblib-1.0.1 keras-applications-1.0.8 keras-preprocessing-1.1.2 kiwisolver-1.3.1 llvmlite-0.34.0 markdown-3.3.4 matplotlib-3.1.3 moviepy-1.0.1 msgpack-1.0.2 msgpack-numpy-0.4.7.1 networkx-2.5.1 numba-0.51.1 numexpr-2.7.3 numpy-1.17.5 opencv-python-4.5.2.54 opencv-python-headless-3.4.9.33 opt-einsum-3.3.0 pandas-1.2.5 patsy-0.5.1 pillow-8.2.0 proglog-0.1.9 protobuf-3.17.3 psutil-5.8.0 pytz-2021.1 pyyaml-5.4.1 requests-2.25.1 ruamel.yaml-0.17.9 ruamel.yaml.clib-0.2.2 scikit-image-0.18.1 scikit-learn-0.24.2 scipy-1.7.0 statsmodels-0.12.2 tables-3.6.1 tabulate-0.8.9 tensorboard-1.15.0 tensorflow-estimator-1.15.1 tensorflow-gpu-1.15.5 tensorpack-0.9.8 termcolor-1.1.0 threadpoolctl-2.1.0 tifffile-2021.6.14 tqdm-4.61.1 urllib3-1.26.5 werkzeug-2.0.1 wrapt-1.12.1
done
#
# To activate this environment, use
#
# $ conda activate DEEPLABCUT
#
# To deactivate an active environment, use
#
# $ conda deactivate
Activate! conda activate DEEPLABCUT
and then run: conda install -c conda-forge wxpython
.
Then run python -m deeplabcut
which launches the DLC GUI.
DeepLabCut MacOS M1 and M2 chip installation environment instructions:#
This only assumes you have anaconda installed.
Use the DEEPLABCUT_M1.yaml
conda file if you have an Macbok with an M1 or M2 chip, and follow these steps:
(1) git clone the deeplabcut cut repo:
git clone https://github.com/DeepLabCut/DeepLabCut.git
(2) in the program terminal run: cd DeepLabCut/conda-environments
(3) Then, run:
conda env create -f DEEPLABCUT_M1.yaml
(4) Finally, activate your environment and to launch DLC with the GUI
conda activate DEEPLABCUT_M1
python -m deeplabcut
The GUI will open. Of course, you can also run DeepLabCut in headless mode.
How to confirm that your GPU is being used by DeepLabCut#
During training and analysis steps, DeepLabCut does not use the GPU processor heavily. To confirm that DeepLabCut is properly using your GPU:
On Windows:
(1) Open the task manager. If it looks like the image below, click on āMore Detailsā
(2) That will bring up the following, which still isnāt helpful and has caused confusion for users. The %GPU does not reflect DeepLabCut usage.
(3) Click on the Performance tab. On that page, click on the small arrow under GPU (it might start as 3D, and change it to CUDA.
(4) During training, you should see the Dedicated GPU memory usage increase to near maximum, and you should see some activity in the CUDA graph. The graph below is the activity while running testscript.py
.
(5) If you donāt see activity there during training, then your GPU is likely not installed correctly for DeepLabCut. Return to the installation instructions, and be sure you installed CUDA 11+, and ran conda install cudnn -c conda-forge
after installing DeepLabCut.
How to install DeepLabCut for Intel and AMD GPUs on Windows#
If you are on Windows 10/11 and have a DirectX 12 compatible GPU from any vendor (AMD, Intel, or Nvidia), you utilise GPU acceleration for inference, with an installation that is consistent between devices. This method uses Tensorflow-directml which uses DirectML instead of Cuda for ML training and inference.
To check the DirectX version of your installed GPU, type in dxdiag into windows search and select the run command. In system information, the bottom item of the list shows your DirectX version. In addition to this ensure your standard GPU drivers are up-to-date. Updating drivers by any official means (Nvidia Geforce experience, AMD radeon software, direct from the vendor website) is fine.
The following instructions are using conda and pip for environment management, executing within the Anaconda prompt program that was installed along with Anaconda python. The # lines are not to be typed, they are for guidance.
conda create --name dlc_dml python=3.7
conda activate dlc_dml
#specific versions noted that are validated as of DLC 2.2.0.6, but other versions may work:
pip install 'deeplabcut[gui]'==2.2.0.6
pip install tensorflow-directml==1.15.5
pip install pip install imageio==2.9.0
conda install ffmpeg==4.2.2
Attention: Please note the order of execution of these commands are important, as pipās dependency manager may change package versions to incorrect ones if done in the wrong version.