跳转到内容

FAQ

登录时,API Key为什么输入不进去?

见此回答:链接

如何从一个脚本启动多个实验?

在多次创建实验之间增加swanlab.finish()即可。

执行了swanlab.finish()之后,再次执行swanlab.init()就会创建新的实验;
如果不执行swanlab.finish()的情况下,再次执行swanlab.init(),将无视此次执行。

如何在训练时关闭swanlab记录(Debug调试)?

swanlab.initmode参数设置为disabled,就可以不创建实验以及不写入数据。

python
swanlab.init(mode='disabled')

在同一台机器上,有多个人都在使用SwanLab,应该如何配置?

swanlab.login登录完成之后,会在该机器上生成一个配置文件记录登录信息,以便下次不用重复登录。但如果有多人使用这一台机器的话,则需要小心日志传递到对方账号上。

推荐的配置方式有两种:

方式一(推荐):在代码开头加上swanlab.login(api_key='你的API Key'),这样不会将登录配置文件写入到本地,文档

方式二:在运行代码前,设置环境变量SWANLAB_API_KEY="你的API Key"

本地的训练已经结束,但SwanLab UI上仍然在运行中,要怎么改变状态?

点击实验名旁边的终止按钮,会将实验状态从“进行中”转为“中断”,并停止接收数据的上传。

stop

如何查看折线图的局部细节?

放大折线图,长按鼠标划过目标的区域,即可放大查看该区域。

details

双击区域后复原。

内部指标名

指标名称是指swanlab.log()传入字典的key部分。有一部分key在内部被SwanLab用于传递系统硬件指标,所以不太建议使用。

内部指标包括:

  • __swanlab__.xxx

实验状态规则

实验一共分为三种状态:完成、运行中与中断。

  • 完成:训练进程自然结束,或手动执行了swanlab.finish()
  • 运行中:训练进程正在运行,且没有执行swanlab.finish()
  • 中断:训练进程因为Bug、机器关闭、Ctrl+C等异常中断。

有些用户会遇到这样的情况:为什么我的训练进程好像还在进行中,但是SwanLab图表上显示中断?

这是因为SwanLab判定中断有一条隐藏规则,如果训练进程在15分钟以内没有任何日志上传(包含自动收集的系统指标),则判定为中断,这是为了避免训练进程被意外Kill后,无法触达SwanLab SDK中的状态上传逻辑,导致实验永远处于“运行中”状态。

所以如果你的机器出现了网络问题,且时间大于15分钟,就会导致实验状态显示为“中断”。

命令行记录与截断

SwanLab会记录swanlab.init()之后进程中的标准输出流,可以在实验的「日志」选项卡查看。

如果一行的命令行输出过长,会被截断,目前的限制是500个字符。

如果你想解除限制,可以前往swanlab的包源码,对swanlab/log/console.py中的MAX_UPLOAD_LEN进行修改。这样在swanlog日志文件中会存储相应的命令行输出,且离线看板也会按此显示,但不会让云端版的规则产生改变。