{"cells": [{"cell_type": "markdown", "id": "32cc9c24", "metadata": {"papermill": {"duration": 0.008019, "end_time": "2025-04-03T19:27:05.257930", "exception": false, "start_time": "2025-04-03T19:27:05.249911", "status": "completed"}, "tags": []}, "source": ["\n", "# Tutorial 10: Autoregressive Image Modeling\n", "\n", "* **Author:** Phillip Lippe\n", "* **License:** CC BY-SA\n", "* **Generated:** 2025-04-03T19:26:58.602358\n", "\n", "In this tutorial, we implement an autoregressive likelihood model for the task of image modeling.\n", "Autoregressive models are naturally strong generative models that constitute one of the current\n", "state-of-the-art architectures on likelihood-based image modeling,\n", "and are also the basis for large language generation models such as GPT3.\n", "We will focus on the PixelCNN architecture in this tutorial, and apply it to MNIST modeling.\n", "This notebook is part of a lecture series on Deep Learning at the University of Amsterdam.\n", "The full list of tutorials can be found at https://uvadlc-notebooks.rtfd.io.\n", "\n", "\n", "---\n", "Open in [{height=\"20px\" width=\"117px\"}](https://colab.research.google.com/github/PytorchLightning/lightning-tutorials/blob/publication/.notebooks/course_UvA-DL/10-autoregressive-image-modeling.ipynb)\n", "\n", "Give us a \u2b50 [on Github](https://www.github.com/Lightning-AI/lightning/)\n", "| Check out [the documentation](https://lightning.ai/docs/)\n", "| Join us [on Discord](https://discord.com/invite/tfXFetEZxv)"]}, {"cell_type": "markdown", "id": "9dd2d5ea", "metadata": {"papermill": {"duration": 0.007183, "end_time": "2025-04-03T19:27:05.271868", "exception": false, "start_time": "2025-04-03T19:27:05.264685", "status": "completed"}, "tags": []}, "source": ["## Setup\n", "This notebook requires some packages besides pytorch-lightning."]}, {"cell_type": "code", "execution_count": 1, "id": "cead9f66", "metadata": {"colab": {}, "colab_type": "code", "execution": {"iopub.execute_input": "2025-04-03T19:27:05.286464Z", "iopub.status.busy": "2025-04-03T19:27:05.286109Z", "iopub.status.idle": "2025-04-03T19:27:06.470559Z", "shell.execute_reply": "2025-04-03T19:27:06.469307Z"}, "id": "LfrJLKPFyhsK", "lines_to_next_cell": 0, "papermill": {"duration": 1.194088, "end_time": "2025-04-03T19:27:06.472558", "exception": false, "start_time": "2025-04-03T19:27:05.278470", "status": "completed"}, "tags": []}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.\u001b[0m\u001b[33m\r\n", "\u001b[0m"]}, {"name": "stdout", "output_type": "stream", "text": ["\r\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.0.1\u001b[0m\r\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpython -m pip install --upgrade pip\u001b[0m\r\n"]}], "source": ["! pip install --quiet \"matplotlib\" \"numpy <3.0\" \"torchvision\" \"torch >=1.8.1,<2.7\" \"seaborn\" \"pytorch-lightning >=2.0,<2.6\" \"torchmetrics >=1.0,<1.8\""]}, {"cell_type": "markdown", "id": "5cbad2c8", "metadata": {"papermill": {"duration": 0.006773, "end_time": "2025-04-03T19:27:06.486621", "exception": false, "start_time": "2025-04-03T19:27:06.479848", "status": "completed"}, "tags": []}, "source": ["