Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

Python and PyTorch Development

This page is based on the one of RPZ course.

  • The BRUTE uses python version 3.8
  • Use the forum to discuss any Python issues.
  • If you want to use an IDE, there is a professional PyCharm licence available at https://download.cvut.cz (but feel free to use butterflies instead).
  • If you have experience with MATLAB programming, you can start by Numpy for MATLAB users.

Common Issues and Solutions

  • Not working with correct shapes of input/output data: Shapes of all input/output data are defined in the docstring of individual methods. Note, that all templates in assignment already output result of a proper shape. Please strictly stick to the prescribed shapes.
    • If you want to use i.e. np array <1xn> as (n,), you can use np.squeeze() in the beginning of the method.
    • For returning data in certain shape, you can use np.expand_dims() or np.at_leastXd() (where X is the number of dimmensions).
  • The template does not specify something correctly or differs from the assignment text
    • You are probably using an old version of the template. As noted in the git repository readme: Keep in mind that the assignments and the assignment templates will be updated during the semester. Always pull the current template version before starting to work on an assignment!

Assignment Templates

  • All assignment templates are stored in a git repository
  • Follow the instruction in the repository README
  • Make sure to get the current template version before starting to work on an assignment
  • Make sure not to push the repository with your solutions to any public remote (=plagiarism), you can use FEE GitLab for private remote repo.
  • Each assignment template contains a Jupyter notebook (.ipynb) that you can use to testrun the assignment functions you implement. This notebook will not be checked by the BRUTE.

This setup is recommended by Dmytro Mishkin
1. Install Miniconda, Python version 3.X.
2. Run conda CLI.
3. Run

git clone https://gitlab.fel.cvut.cz/mishkdmy/mpv-python-assignment-templates
conda create --name mpv-assignments-cpu-only python=3.8
conda activate mpv-assignments-cpu-only
pip3 install torch==1.8.2+cpu torchvision==0.9.2+cpu -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
pip3 install kornia==0.6.3 tqdm notebook matplotlib opencv-contrib-python==4.5.3.56 seaborn tensorboard tensorboardX
pip3 install kornia_moons --no-deps
conda install -c conda-forge widgetsnbextension
conda install -c conda-forge ipywidgets

For the GPU setup, if you have CUDA-capable GPU, run the following:

git clone https://gitlab.fel.cvut.cz/mishkdmy/mpv-python-assignment-templates
conda create --name mpv-assignments-gpu python=3.8
conda activate mpv-assignments-gpu
pip3 install torch==1.8.2+cu102 torchvision==0.9.2+cu102  -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html
pip3 install kornia==0.6.3 tqdm notebook matplotlib opencv-contrib-python==4.5.3.56 seaborn tensorboard tensorboardX
pip3 install kornia_moons --no-deps
conda install -c conda-forge widgetsnbextension
conda install -c conda-forge ipywidgets

4. a) Activate the environment with

conda activate mpv-assignments-cpu-only
and work in the python interactive interpreter.

PyCharm jupyter environment is buggy and not recommended. You still can use IDE to edit .py files though. It's best to use jupyter-notebook, google colab or jupyter-lab to work with jupyter notebooks, especially interactive ones (as in Correspondences and Tracking blocks.

Running the assignments in Google Colab

It is possible to do all the work in cloud Google Colab without installing anything. You would need to have Google account though.

  1. Git clone or download the assignment templates from the repository
  2. Click File → Upload notebook and upload the notebook for the the relevant assignment
  3. Click of the files icon (in gray ellipse on the screenshot) and then on “Upload”
  4. Upload relevant assignment .py together with all relevant input data such as images.
  5. In the beginning of the first cell add
     !pip install kornia==0.6.3
  6. Work in Google Colab as if you were in Jupyter notebook. In the end of the session download the functions you developed with File → Download
  7. If you need to use GPU, go to Runtime →Change runtime type. Select Hardware accelerator to be GPU. Note, that you are limited to 6 hours of GPU use per day (this info might be obsolete, as Google policy on free GPUs may change)
courses/mpv/labs/general_info.txt · Last modified: 2022/05/11 11:06 by mishkdmy