/inf265_project3

Primary LanguageJupyter Notebook

INF265 Project 3: Sequence Models

This repository contains the code, documentation and report for a deep learning project completed as part of the course INF265: Deep Learning at the University of Bergen. The project assignment was completed as a collaboration between Simon Vedaa and Sebastian Røkholt. It was handed in on the 3rd of May 2024.

Setup

The project was created with Python >3.10. To run and replicate our results, make sure to install the project dependencies. For Windows, run pip install -r requirements.txt. For Linux, run pip install -r requirements-linux.txt.

To view and run the notebook, launch Jupyter Notebook with the jupyter notebook command in the terminal and simply select the .ipynb file from the directory to open it.

To reproduce our work with identical results, you should set the seed for the randoom state to 265 and train on an Nvidia GPU (CUDA).

File Structure

inf265_project3
├── docs    # General information about the assignment
│   ├── inf265_v24_project3.pdf    # The assignment text written by the professor
│   └── project_checklist.pdf    # Some evaluation requirements to look through before handing in the project
├── src    # Contains the Python code for modules used in the notebooks
│   ├── utils.py    # Collection of functions used in notebooks, (training, beam_search, etc.) 
│   └── models.py    # Model architectures
├── data    # Contains text files of books used to generate data
│   ├── data_train
│   ├── data_val
│   └── data_test
│
├── generated_data    # Contains all generated data, such as models, and embedding
│
├── notebooks    # Jupyter Notebooks for running the project code and viewing results
│   ├── conjugation.ipynb # Solves the conjugation task
│   ├── embedding.ipynb # Solves the embedding task
│   └── generation.ipynb # Solves the text generation task
├── imgs    # Plots generated by the notebooks
├── README.md 
├── requirements.txt    # Windows-specific list of the Python dependencies for this project. 
├── requirements-linux.txt    # Linux-specific list of the Python dependencies for this project. 
├── report.pdf    # Details the design choices and general approach for solving the assignment.
└── report.md    # Markdown for generating the project report.