Repository for the Advanced Topics in Neural Networks laboratory, "Alexandru Ioan Cuza" University, Faculty of Computer Science, Master degree.
- Fork the repository.
- Upload the assignments in their corresponding "Lab
X
/Solution" directory of your fork. - If you are doing your homework in a Jupyter Notebook, add the "Open in Colab" option.
- Check the course website and Github Repository at least once a week. Read the updates to the README files as they contain important information regarding helpful resources and assignments.
- Sync your personal fork whenever changes appear in the upstream repository.
PyTorch, Pandas, Numpy, Tensorboard, Matplotlib, and Opencv are already available in Google Colab.
Local installation:
- Create a Python virtual environment (the current stable version for
PyTorch 2.0.1 is Python 3.10PyTorch 2.1.1 is Python 3.11).- If you are using
conda
, useconda config --add channels conda-forge
first to addconda-forge
as your highest priority channel.
- If you are using
- Activate the virtual environment and install PyTorch from pytorch.org using
conda
orpip
, depending on your environment.- Choose the Stable Release, choose your OS, select Conda or Pip and your compute platform. For Linux and Windows, CUDA 1X.X or CPU builds are available, while for Mac, only builds with CPU and MPS acceleration.
- Example CPU:
conda install pytorch torchvision torchaudio cpuonly -c pytorch
.
- Install Tensorboard.
conda install -c conda-forge tensorboard
/pip install tensorboard
.
- Install Matplotlib.
conda install -c conda-forge matplotlib
/pip install matplotlib
.
- Install Opencv.
conda install -c conda-forge opencv
/pip install opencv-python
.
- Linear algebra:
- Essence of linear algebra (linear transformations; matrix multiplication)
- Essence of calculus (derivatives; chain rule)
- Backpropagation:
- Neural Networks (animated introduction to neural networks and backpropagation)
- Convolutions:
- But what is a convolution? (convolution example; convolutions in image processing; convolutions and polynomial multiplication; FFT)
- Lab01: Logistic Regression (Homework: Implementing Multiclass Logistic Regression)
- Lab02: Tensor Operations (Homework: Implementing the Perceptron algorithm)
- Lab03: Advanced Tensor Operations (Homework: Implementing a Multi Layer Perceptron)
- Lab04: PyTorch Datasets, DataLoaders, Torchvision transforms (Homework: Implementing a training pipeline)
- Lab05: Advanced Data Augmentation techniques (RandAug, CutMix, MixUp) (Homework: Finetuning a training pipeline)
- Lab06: ReLU, Leaky ReLU, ELU, Internal Covariate Shift, Dropout
- Lab07: Convolutions, AlexNet, ResNet, R-CNN, Yolo (Homework: Training a CNN on CIFAR-10/100)
- Lab09: Reinforcement Learning (Q-Learning, AlphaZero, MuZero, ReBeL)
- Lab10: RNN, LSTM, GRU, torch.compile, torch.jit.script, torch.jit.trace, float16, bfloat16, autocst
- Lab11: Optimizing PyTorch pipelines
- Lab12: Self-Supervised Learning, Autoencoders, GAN and Diffusion
- Lab13: Multi-Headed Attention, Transformers, BERT, GPT
- Projects