Skip to content

swanlab.init

python
init(
    project: str = None,
    workspace: str = None,
    experiment_name: str = None,
    description: str = None,
    config: Union[dict, str] = None,
    logdir: str = None,
    suffix: str = "default",
    mode: str = "cloud",
    load: str = None,
    public: bool = None,
    **kwargs,
)
参数描述
project(str)项目名,如果不指定则取运行目录的名称。
workspace(str)工作空间,默认将实验同步到你的个人空间下,如果要上传到组织,则填写组织的username。
experiment_name(str) 实验名称, 如果不指定则取"exp"。完整的实验名称由 experiment_name+"_"+suffix 构成。
description(str) 实验描述, 如果不指定默认为None。
config(dict, str) 实验配置,在此处可以记录一些实验的超参数等信息。支持传入配置文件路径,支持yaml和json文件。
logdir(str) 日志文件存储路径,默认为swanlog
suffix(str, None, bool) experiment_name的后缀。完整的实验名称由experiment_namesuffix共同构成。
默认值为"default",代表默认的后缀规则为'%b%d-%h-%m-%s',例如:Feb03_14-45-37
设置为NoneFalse将不加后缀。
mode(str) 设置swanlab实验创建的模式,可选"cloud"、"local"、"disabled",默认设置为"cloud"。
cloud:将实验上传到云端。
local:不上传到云端,但会记录实验到本地。
disabled:不上传也不记录。
load(str) 加载的配置文件路径,支持yaml和json文件。
public(bool) 设置使用代码直接创建SwanLab项目的可见性,默认为False即私有。

介绍

  • 在机器学习训练流程中,我们可以将swandb.init()添加到训练脚本和测试脚本的开头,SwanLab将跟踪机器学习流程的每个环节。

  • swanlab.init()会生成一个新的后台进程来将数据记录到实验中,默认情况下,它还会将数据同步到swanlab.pro,以便你可以在线实时看到可视化结果。

  • 在使用swanlab.log()记录数据之前,需要先调用swanlab.init()

python
import swanlab

swanlab.init()
swanlab.log({"loss": 0.1846})
  • 调用swanlab.init()会返回一个SwanLabRun类型的对象,同样可以执行log操作:
python
import swanlab

run = swanlab.init()
run.log({"loss": 0.1846})
  • 在脚本运行结束时,我们将自动调用swanlab.finish来结束SwanLab实验。但是,如果从子进程调用swanlab.init(),如在jupyter notebook中,则必须在子进程结束时显式调用swanlab.finish
python
import swanlab

swanlab.init()
swanlab.finish()

更多用法

设置项目、实验名、描述

python
swanlab.init(
    project="cats-detection",
    experiment_name="YoloX-baseline",
    description="YoloX检测模型的基线实验,主要用于后续对比。",
)

设置日志文件保存位置

下面的代码展示了如何将日志文件保存到自定义的目录下:

python
swanlab.init(
    logdir="path/to/my_custom_dir"
)

将实验相关的元数据添加到实验配置中

python
swanlab.init(
    config={
        "learning-rate": 1e-4,
        "model": "CNN",
    }
)

上传到组织

python
swanlab.init(
    workspace="[组织的username]"
)

过期参数

  • cloud:在v0.3.4被mode参数取代。参数仍然可用,且会覆盖掉mode的设置。