1. 背景
SwanLab是一款轻量、开源的机器学习训练可视化工具,类似于Weights & Biases 或 Tensorboard。SwanLab有着轻量的体积与友好的API,除了能记录指标和可视化训练以外,还能自动记录训练的logging、硬件环境、Python环境、训练时间等信息。
远程访问SwanLab实验看板的方式有两种:
- 用在线版SwanLab(https://swanlab.cn),无需操作,只需注册个账号就可以远程监看实验
- 用离线版SwanLab,则需要掌握swanlab watch的一些用法
2. 在线版
使用在线版SwanLab,你只需要注册账号,即可实现远程监看实验。
- 前往SwanLab官网(https://swanlab.cn),点击右上角的注册按钮,完成注册流程。
- 在用户设置界面,复制你的API Key:
- 如果你是第一次使用SwanLab,在命令行输入:
swanlab login
然后把API Key粘贴进去,按回车,即可完成在编程环境下的登录; 完成登录后,下次无需再次登录。
- 大功告成,跑个试试样例代码试试:
import swanlab
import random
offset = random.random() / 5
# 初始化一个SwanLab实验
swanlab.init(
project="my-awesome-project",
config={
"learning_rate": 0.02,
"architecture": "CNN",
"dataset": "CIFAR-100",
"epochs": 10
}
)
# 模拟训练
for epoch in range(2, swanlab.config.epochs):
acc = 1 - 2 ** -epoch - random.random() / epoch - offset
loss = 2 ** -epoch + random.random() / epoch + offset
# 向swanlab上传训练指标
swanlab.log({"acc": acc, "loss": loss})
3. 远程访问实验看板攻略
在使用swanlab跟踪训练时,会在目录下创建1个swanlog文件夹,存放着你的训练数据。在同一个目录下打开终端,运行swanlab watch命令即可打开实验看板:
swanlab watch
上面的方法适用于在训练机上打开实验看板。但在机器学习训练中,使用远程服务器的情况是非常常见的,比如使用云函数、局域网集群等等;与此同时,这些服务器一般是用ssh访问,没有GUI(图形化界面)。
下面教您如何在本机查看远程服务器上SwanLab的离线实验看板。
3.1 准备工作
-
记下远程端IP:比如你使用的是云服务器,那么它自带的公网IP(形如8.141.192.68)就是你之后本机访问实验看板的IP;如果你使用的是局域网服务器,那么则记下它的局域网IP。
-
开放端口:首先需要检查一下远程端的安全组/防火墙,比如你希望实验看板所用的端口为5092,那么需要检查服务器是否开放了该端口。可使用
telnet <服务器IP> <端口号>
命令查看linux服务器端口是否开放
3.2 在远程端设定实验看板的IP与端口
完成准备工作后,我们需要在远程端(跑训练所在的机器)运行实验看板服务。
在远程端的终端运行swanlab watch
命令前,我们需要设置两个参数-p
和-h
:
-p
:设置实验看板Web服务运行的端口,默认为5092。比如swanlab watch -p 8080
就是将实验看板的Web服务设置为8080端口。-h
:设置实验看板Web服务运行的IP地址,默认为127.0.0.1。比如swanlab watch -h 0.0.0.0
就是将实验看板Web服务的ip地址设置为0.0.0.0。
一般如果要远程访问实验看板的话,需要将-h
设置为0.0.0.0;-p
的设置则根据实际需求来。这里我们将端口设置为8080:
swanlab watch -h 0.0.0.0 -p 8080
运行上面的命令,得到:
3.3 本机访问实验看板
这时我们在本机端(你自己的电脑)打开浏览器,访问<远程端IP地址:端口号>
。
比如我的远程服务器的公网IP是8.146.xxx.71
,端口号设置为8080
,那么在浏览器就访问8.146.xxx.71:8080
:
远程访问成功!
4. 相关链接
- SwanLab:https://swanlab.cn
- SwanLab猫狗分类实战:https://zhuanlan.zhihu.com/p/676430630
- SwanLab-Github:https://github.com/SwanHubX/SwanLab
- SwanLab官方文档:https://docs.swanlab.cn