| import os, random |
| import wandb |
| import streamlit as st |
| import streamlit.components.v1 as components |
|
|
| from utils import train, WORDS |
|
|
| project = "st" |
| entity = "capecape" |
|
|
| HEIGHT = 720 |
|
|
| def get_project(api, name, entity=None): |
| return api.project(name, entity=entity).to_html(height=HEIGHT) |
|
|
| st.title("The wandb Dashboard π") |
|
|
| run_name = "-".join(random.choices(WORDS, k=2)) + f"-{random.randint(0,100)}" |
|
|
| |
| sb = st.sidebar |
| sb.title("Train your model") |
| |
|
|
| |
| wandb.login(anonymous="must") |
| api = wandb.Api() |
|
|
| st.success(f"You should see a new run named **{run_name}**, it\'ll have a green circle while it\'s still active") |
|
|
| |
| components.html(get_project(api, project, entity), height=HEIGHT) |
|
|
| |
| runs = 1 |
| epochs = sb.slider('Number of epochs:', min_value=100, max_value=500, value=100) |
|
|
|
|
| pseudo_code = """ |
| We will execute a simple training loop |
| ```python |
| wandb.init(project="st", ...) |
| for i in range(epochs): |
| acc = 1 - 2 ** -i - random() |
| loss = 2 ** -i + random() |
| wandb.log({"acc": acc, |
| "loss": loss}) |
| ``` |
| """ |
|
|
| sb.write(pseudo_code) |
|
|
| sb.write("Click π to start logging") |
| |
| if sb.button("Run Example"): |
| |
| print("Running training") |
| for i in range(runs): |
| my_bar = sb.progress(0) |
| train(name=run_name, project=project, entity=entity, epochs=epochs, bar=my_bar) |
|
|
| st.subheader("Check our π₯ [Pytorch Intro colab](https://wandb.me/intro) π₯") |