| 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() | |