Skip to content

Commit 36ac636

Browse files
authored
Merge pull request #125 from SFI-Visual-Intelligence/update_readme
Update readme
2 parents 4077d61 + ff79862 commit 36ac636

File tree

1 file changed

+49
-5
lines changed

1 file changed

+49
-5
lines changed

README.md

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,22 @@
33
# Collaborative-Coding-Exam
44
Repository for final evaluation in the FYS-8805 Reproducible Research and Collaborative coding course
55

6+
## **Table of Contents**
7+
1. [Project Description](#project-description)
8+
2. [Installation](#installation)
9+
3. [Usage](#usage)
10+
4. [Results](#results)
11+
5. [Citing](#citing)
12+
13+
## Project Description
14+
This project involves collaborative work on a digit classification task, where each participant works on distinct but interconnected components within a shared codebase. <br>
15+
The main goal is to develop and train digit classification models collaboratively, with a focus on leveraging shared resources and learning efficient experimentation practices.
16+
### Key Aspects of the Project:
17+
- **Individual and Joint Tasks:** Each participant has separate tasks, such as implementing a digit classification dataset, a neural network model, and an evaluation metric. However, all models and datasets must be compatible, as we can only train and evaluate using partners' models and datasets.
18+
- **Shared Environment:** Alongside working on our individual tasks, we collaborate on joint tasks like the main file, and training and evaluation loops. Additionally, we utilize a shared Weights and Biases environment for experiment management.
19+
- **Documentation and Package Management:** To ensure proper documentation and ease of use, we set up Sphinx documentation and made the repository pip-installable
20+
- **High-Performance Computing:** A key learning objective of this project is to gain experience with running experiments on high-performance computing (HPC) resources. To this end, we trained all models on a cluster
21+
622
## Installation
723

824
Install from:
@@ -25,9 +41,37 @@ python -c "import CollaborativeCoding"
2541

2642
## Usage
2743

28-
TODO: Fill in
44+
To train a classification model using this code, follow these steps:
45+
46+
### 1) Create a Directory for the reuslts
47+
Before running the training script, ensure the results directory exists:
48+
49+
`mkdir -p "<RESULTS_DIRECTORY>"`
50+
51+
### 2) Run the following command for training, evaluation and testing
52+
53+
`python3 main.py --modelname "<MODEL_NAME>" --dataset "<DATASET_NAME>" --metric "<METRIC_1>" "<METRIC_2>" ... "<METRIC_N>" --resultfolder "<RESULTS_DIRECTORY>" --run_name "<RUN_NAME>" --device "<DEVICE>"`
54+
<br> Replace placeholders with your desired values:
55+
56+
- `<MODEL_NAME>`: You can choose from different models ( `"MagnusModel", "ChristianModel", "SolveigModel", "JanModel", "JohanModel"`).
57+
58+
59+
- `<DATASET_NAME>`: The following datasets are supported (`"svhn", "usps_0-6", "usps_7-9", "mnist_0-3", "mnist_4-9"`)
60+
61+
62+
- `<METRIC_1> ... <METRIC_N>`: Specify one or more evaluation metrics (`"entropy", "f1", "recall", "precision", "accuracy"`)
63+
64+
65+
- `<RESULTS_DIRECTORY>`: Folder where all model outputs, logs, and checkpoints are saved
66+
67+
68+
- `<RUN_NAME>`: Name for WANDB project
69+
70+
71+
- `<DEVICE>`: `"cuda", "cpu", "mps"`
72+
2973

30-
### Running on a k8s cluster
74+
## Running on a k8s cluster
3175

3276
In your job manifest, include:
3377

@@ -48,8 +92,8 @@ to pull the latest build, or check the [packages](https://github.com/SFI-Visual-
4892
> The container is build for a `linux/amd64` architecture to properly build Cuda 12. For other architectures please build the docker image locally.
4993
5094

51-
# Results
52-
## JanModel & MNIST_0-3
95+
## Results
96+
### JanModel & MNIST_0-3
5397
This section reports the results from using the model "JanModel" and the dataset MNIST_0-3 which contains MNIST digits from 0 to 3 (Four classes total).
5498
For this experiment we use all five available metrics, and train for a total of 20 epochs.
5599

@@ -62,7 +106,7 @@ We achieve a great fit on the data. Below are the results for the described run:
62106
| Test | 0.024 | 0.004 | 0.994 | 0.994 | 0.994 | 0.994 |
63107

64108

65-
## MagnusModel & SVHN
109+
### MagnusModel & SVHN
66110
The MagnusModel was trained on the SVHN dataset, utilizing all five metrics.
67111
Employing micro-averaging for the calculation of F1 score, accuracy, recall, and precision, the model was fine-tuned over 20 epochs.
68112
A learning rate of 0.001 and a batch size of 64 were selected to optimize the training process.

0 commit comments

Comments
 (0)