SwanLab
SwanLab copied to clipboard
[REQUEST] 增加未登录实验时swanlab.init的模式二选一
🤩 Features description [Please make everyone to understand it]
- 输入API Key,使用云端版记录
- Skip这一步,即使用local
follow着这个需求hhh
follow着这个需求hhh
好好好
这个功能现在可用了吗?0.3.27🤔 目前我的处理方法是这样的:
# 初始化swanlab,启动$swanlab watch ./logs
try:
swanlab.init(
project="monolite",
experiment_name=f"{os.path.basename(args.cfg)}_{datetime.datetime.now().strftime('%Y/%m/%d_%H:%M:%S')}",
)
except Exception as e:
logger.error(f"{e}\nInit swanlab in local mode")
swanlab.init(
project="monolite",
experiment_name=f"{os.path.basename(args.cfg)}_{datetime.datetime.now().strftime('%Y/%m/%d_%H:%M:%S')}",
logdir="./logs", # 本地模式
mode="local",
)
这个功能现在可用了吗?0.3.27🤔 目前我的处理方法是这样的:
# 初始化swanlab,启动$swanlab watch ./logs try: swanlab.init( project="monolite", experiment_name=f"{os.path.basename(args.cfg)}_{datetime.datetime.now().strftime('%Y/%m/%d_%H:%M:%S')}", ) except Exception as e: logger.error(f"{e}\nInit swanlab in local mode") swanlab.init( project="monolite", experiment_name=f"{os.path.basename(args.cfg)}_{datetime.datetime.now().strftime('%Y/%m/%d_%H:%M:%S')}", logdir="./logs", # 本地模式 mode="local", )
还不能用,不过如果要写的话差不多内部就是try-catch,这段时间我写一下
要实现这个需求目前有几个需要明确的地方:
- 对于非标准终端,比如pycharm这些,在现有的设计上是假设未登录将直接报错,因为无法控制其回显
- 实际上所有终端内登录都使用的terminal_login这个函数完成,这个函数导致了当前的逻辑是无法跳过的,如果要实现这个需求就需要改造这个函数或者重写或者上层捕捉。
对于2,从代码破坏性角度考虑是倾向于上层捕捉的,但是这样的逻辑就是:
- init
- 用户没有api-key,输入ctrl+c
- 上层捕获KeyboardInterrupt错误,提示“是否需要切换为本地版本y/n”
这样用户会多一层输入,我不知道是否合理
对于1,是直接报错退出还是什么其他的交互,目前不太明确。
下面是最终方案:
触发条件:
- 当前计算机没有login
- 运行带有 swanlab.init() 的python脚本时
触发时的交互:
- 给用户弹3选1的文案
- 用户选(1)创建1个SwanLab账户
- 用户选(2)使用一个已经存在的SwanLab账户
- 用户选(3)不可视化你的结果