This repository contains the PCPT Notebooks, which provide open-source learning materials for a gentle introduction to PyTorch, one of today's most widely used machine learning frameworks. Built on the interactive Jupyter platform, the notebooks combine code, explanations, formulas, and visualizations in a single source. They are designed for learners with basic Python skills and focus on exploring key ideas of machine learning in a clear and accessible way. The PCPT notebooks continue the material of the PCP notebooks, which provide foundational Python programming knowledge. Together, the PCP and PCPT notebooks provide a good foundation for doing a research internship in the fields of signal processing, machine learning, and deep learning, as required by FAU master's study programmes such as Communications and Multimedia Engineering (CME), Data Science, and Artificial Intelligence (AI). The notebooks cover fundamental concepts including gradient descent, linear regression, convolution, recursion, binary and multiclass classification, cross-entropy losses, and evaluation metrics. Machine learning topics are linked to digital signal processing, such as low- and high-pass filtering, denoising, and onset detection. Unlike resources focusing on 2D image data, the PCPT notebooks emphasize 1D sequence data to reduce technical overhead. The PCPT notebooks are designed with low entry barriers: they use toy examples and synthesized datasets, prioritize conceptual understanding over large-scale computation, and run on standard CPUs without specialized hardware. In summary, the PCPT notebooks aim to help students transition naturally from learning PyTorch fundamentals to developing the skills needed for independent research in machine learning. The notebooks are freely accessible under the MIT License.
If a static view of the PCPT notebooks is enough for you, the exported HTML versions can be used right away without any installation. All material including the explanations and the figures can be accessed by just following the HTML links. If you want to execute the Python code cells, you have to clone/download the notebooks (along with the libpcpt library), create an environment, and start a Jupyter server. You then need to follow the IPYNB links within the Jupyter session. The necessary steps are explained in detail in the PCPT notebook on how to get started.
If you use the PCPT Notebooks in your teaching or research, please consider mentioning the following reference.
@article{MuellerZS25_PCPT,
author = {Meinard M{\"u}ller and Johannes Zeitler and Sebastian Strahl},
title = {{PCPT} Notebooks: {A} Preparation Course for {P}y{T}orch},
journal = {},
volume = {},
number = {},
year = {2025},
pages = {},
doi = {},
url = {https://www.audiolabs-erlangen.de/PCPT},
}This is the preferred and tested variant for using the PCPT notebooks.
conda env create -f environment.yml
conda activate PCPT
jupyter notebook
The PCPT notebooks may be executed using Google colab. However, this needs some preparation. First, you need to be logged in with a Google account. The starting notebook can be accessed via:
https://colab.research.google.com/github/meinardmueller/PCPT/blob/master/PCPT.ipynb
For the other notebooks, clone the PCPT repository to get access to data and the functions in libpcpt. To this end, for each colab session, include and execute a code cell at the beginning of the notebook containing the following lines:
%%bash
git clone https://github.com/meinardmueller/PCPT.git PCPT_temp
mv PCPT_temp/* .
rm -rd PCPT_temp
One can also use Binder to execute the PCPT notebooks. This clones the repository and automatically creates a conda environment. This may take several (maybe even up to ten) minutes when starting binder.
https://mybinder.org/v2/gh/meinardmueller/PCPT/master
We are happy for suggestions and contributions. However, to facilitate the synchronization, we would be grateful for either directly contacting us via email (meinard.mueller@audiolabs-erlangen.de) or for creating an issue in our GitHub repository. Please do not submit a pull request without prior consultation with us.
We want to thank the various people who have contributed to the design, implementation, and code examples of the notebooks. We mention the main contributors in alphabetical order: Meinard Müller, Sebastian Strahl, Johannes Zeitler. The International Audio Laboratories Erlangen are a joint institution of the Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) and Fraunhofer Institute for Integrated Circuits IIS.