SwanLab icon indicating copy to clipboard operation
SwanLab copied to clipboard

[REQUEST] 增加未登录实验时swanlab.init的模式二选一

Open Zeyi-Lin opened this issue 1 year ago • 2 comments

🤩 Features description [Please make everyone to understand it]

  1. 输入API Key,使用云端版记录
  2. Skip这一步,即使用local

Zeyi-Lin avatar Jun 19 '24 11:06 Zeyi-Lin

follow着这个需求hhh

ShaohonChen avatar Jul 19 '24 16:07 ShaohonChen

follow着这个需求hhh

好好好

SAKURA-CAT avatar Jul 20 '24 04:07 SAKURA-CAT

这个功能现在可用了吗?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",
    )

Puiching-Memory avatar Nov 27 '24 01:11 Puiching-Memory

这个功能现在可用了吗?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,这段时间我写一下

SAKURA-CAT avatar Nov 27 '24 07:11 SAKURA-CAT

要实现这个需求目前有几个需要明确的地方:

  1. 对于非标准终端,比如pycharm这些,在现有的设计上是假设未登录将直接报错,因为无法控制其回显
  2. 实际上所有终端内登录都使用的terminal_login这个函数完成,这个函数导致了当前的逻辑是无法跳过的,如果要实现这个需求就需要改造这个函数或者重写或者上层捕捉。

对于2,从代码破坏性角度考虑是倾向于上层捕捉的,但是这样的逻辑就是:

  1. init
  2. 用户没有api-key,输入ctrl+c
  3. 上层捕获KeyboardInterrupt错误,提示“是否需要切换为本地版本y/n”

这样用户会多一层输入,我不知道是否合理

对于1,是直接报错退出还是什么其他的交互,目前不太明确。


下面是最终方案:

触发条件

  1. 当前计算机没有login
  2. 运行带有 swanlab.init() 的python脚本时

触发时的交互

  1. 给用户弹3选1的文案
  2. 用户选(1)创建1个SwanLab账户
  3. 用户选(2)使用一个已经存在的SwanLab账户
  4. 用户选(3)不可视化你的结果

SAKURA-CAT avatar Dec 06 '24 08:12 SAKURA-CAT