import os | |
import wandb | |
import random | |
from dotenv import load_dotenv | |
# Load environment variables from .env file | |
load_dotenv() | |
try: | |
# start a new wandb run to track this script | |
wandb.init( | |
# set the wandb project where this run will be logged | |
project="my-awesome-project", | |
# track hyperparameters and run metadata | |
config={ | |
"learning_rate": 0.02, | |
"architecture": "CNN", | |
"dataset": "CIFAR-100", | |
"epochs": 10, | |
} | |
) | |
# simulate training | |
epochs = 10 | |
offset = random.random() / 5 | |
for epoch in range(2, epochs): | |
acc = 1 - 2 ** -epoch - random.random() / epoch - offset | |
loss = 2 ** -epoch + random.random() / epoch + offset | |
# log metrics to wandb | |
wandb.log({"acc": acc, "loss": loss}) | |
print(f"Epoch {epoch}: accuracy = {acc:.4f}, loss = {loss:.4f}") | |
except Exception as e: | |
print(f"An error occurred: {str(e)}") | |
finally: | |
# [optional] finish the wandb run, necessary in notebooks | |
wandb.finish() | |