跳转到内容

CSV表格记录器

如果你希望在训练过程中,将一些配置信息、指标信息记录在本地的CSV文件中(格式和SwanLab网页中的“表格视图“一致),那么非常推荐你使用CSV记录器插件。

改进插件

SwanLab插件均为开源代码,你可以在Github源代码中查看,欢迎提交你的建议和PR!

插件用法

1. 初始化CSV记录器:

python
from swanlab.plugin.writer import CSVWriter

csv_writer = CSVWriter(dir="logs")

dir参数指定了CSV文件的保存路径,默认保存到当前工作目录。

2. 传入插件:

python
swanlab.init(
    ...
    callbacks=[csv_writer]
)

执行代码后,就会在logs目录下生成一个swanlab_run.csv文件,并开始记录数据。后续的每一次训练,都会在该csv文件中添加新的行。

如果想要指定其他文件名,可以传入filename参数:

python
csv_writer = CSVWriter(dir="logs", filename="my_csv_file.csv")

示例代码

python
import swanlab
from swanlab.plugin.writer import CSVWriter
import random

csv_writer = CSVWriter(dir="logs")

# 创建一个SwanLab项目
swanlab.init(
    # 设置项目名
    project="my-awesome-project",
    
    # 设置超参数
    config={
        "learning_rate": 0.02,
        "architecture": "CNN",
        "dataset": "CIFAR-100",
        "epochs": 10,
        "batch_size": 128
    },
    callbacks=[csv_writer]
)

# 模拟一次训练
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

  # 记录训练指标
  swanlab.log({"acc": acc, "loss2": loss})

# [可选] 完成训练,这在notebook环境中是必要的
swanlab.finish()