Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/namgyu-youn/wandb-sync

Auto synchronization for WandB
https://github.com/namgyu-youn/wandb-sync

api deep-learning machine-learning notion wandb

Last synced: about 1 month ago
JSON representation

Auto synchronization for WandB

Awesome Lists containing this project

README

        

## wandb-sync
Run Machine/Deep learning model using wandb, and automatically record your experimental data using API.

**Features**
- Load running data from WandB and automatically record it to Google Spreadsheet, Notion.
- Use ```FIXED_HEADERS``` for your customization. Or wnadb-sync would record all of the data.
- Handle NaN value and special character (ex. ◈, @ )

Following table is example.

| Run ID | Timestamp | User | Model Type | Batch Size | Epochs | Training Loss | Validation Loss |
|--------|-----------|------|------------|---------------|------------|---------|------------|
| 2xk8p9n0 | 2024-11-20 14:30:15 | Namgyu-Youn | ResNet50 | 32 | 100 | 0.245 | 0.312 |
| 7mq2r5v3 | 2024-11-20 15:45:22 | taeyoung1005 | ResNet101 | 64 | 150 | 0.198 | 0.287 |
| 9kt4h8w1 | 2024-11-20 17:20:03 | - | EfficientNet | 8 | 80 | 0.267 | 0.295 |
| 3np6j2x5 | 2024-11-20 19:10:45 | - | VGG16 | 16 | 120 | 0.312 | 0.358 |

## How to use?
### Step 1. Clone the repository.
```bash
git clone https://github.com/Namgyu-Youn/wandb-sync.git
```


### Step 2. Install required python libary.
```bash
pip install wandb gspread oauth2client notion_client
```
or
```bash
pip install -r requirements.txt
```
or
run container using docker
```bash
docker build -t wandb-sync
docker run -d --name wandb-sync wandb-sync
```


### Step 3. (Optional) Edit ```config.json``` and run the script file
- If you want to use your customized values, then it can be done by editing.
- Following is the example of the ```FIXED_HEADERS```
``` bash
{
"FIXED_HEADERS": [
"run_id",
"_timestamp",
"train_loss"
"model_name",
"batch_size",
"learning_rate"
],
}
```


### Step 4. Run the script file
```bash
python wandb-notion-sync.py --user_name --NOTION_CONFIG
```
or
```bash
python wandb-gcp-sync.py --user_name --GCP_CONFIG
```


## 📝 Note
- You need your own API(Google spreadsheet or Notion)
- Don't record duplicate run : If ```RUN ID``` exist, then it would be skipped.
- If you want to record your wandB data more often, paid token would be needed. (free for 30min)