一分钟学Trick: runx 为记录深度炼丹而生[1]


今天介绍的是 NVIDIA 推出的一款专门用于记录深度学习调 (lian) 参 (dan) 的工具,runx

https://github.com/NVIDIA/runx

runx非常的新,大概是五天前正式开源的。正好在 Github 上面看到,感觉挺有意思的,就拿来仔细的看了一下。这篇文章也应该是中文全网第一个介绍这个工具。

简单来说,runx 生来就是用来方便深度炼丹师记录各种实验数据的。

因为深度学习里面,一个大模型一跑少则几个小时,多则几天或者几个星期,如果没有很好的把已经跑过实验很好的记录下来,会是一件非常低效而且恼火的事情。

我在我之前的文章也介绍过一些方便记录实验数据的小方法,比如:

如何记录实验的各种超参数设置。

而 runx 则更像是把各种常用的工具做了一个集合,可以把他理解为深度学习炼丹中的”瑞士军刀“。工具很小,本身也很简单简洁,但是很多时候可以给你很大方便。

目前 runx 的文档还很不全,我先来介绍他的一个用法—- 记录实验输出及方便的Tensorboard记录

主要用的是 runx 下面的子模块, runx.logx

  1. logx.initialize
    在实验开始前进行一些必要的设置。
logx.initialize(logdir=args.logdir, coolname=True, tensorboard=True,                    hparams=vars(args))

上面就是定义了:

logdir 把所有保存的结果存在哪。如果指定的文件夹不存在,会自动的新建,不用再手动的 os.makedirs(logroot, exist_ok=True) 了哦。方便~

tensorboard 是否开启 tensorboard 记录。这个也很方便,不用再手动的 writer = SummaryWriter() 了哦。方便~

global_rank 分布式训练的时候,防止多个输出,自动只log rank=0,不用自己写判断了哦。方便~

coolname 是否在 logdir 下面再新建一个随机命名的文件夹来用 logging(这样你可以在 logdir 下面存一些除了logging之外的东西,方便分类)。随机命名的文件夹的画风是这样的 industrious-chicken , arrogant-buffalo ,哈哈哈哈哈。

hparams 把所有的超参数都存起来,功能和我上面推荐的文章基本一样,虽然砸了我上面文章的”饭碗“,但是不得不说,方便~

eager_flush 如果每次 tensorboard 写的东西比较多,那就把这个打开,以防因为IO太快没写上。(有些服务器开启了IO限制,经常会遇到实际没写上的情况,建议常开)

  1. logx.msg()

把你程序之前 pirnt 都换成这个就对了,他会帮你自动保存所有 print 输出,方便日后查看。方便~

  1. logx.metrics

用来记录各种变量的,比如

# capture metricsmetrics = {'loss': loss.item()}iteration = epoch * len(train_loader) + batch_idxlogx.metric('train', metrics, iteration)

phase 指定是 train 还是 test

metrics 一个字典,里面装着所有你打算在这一步你要记录的值。

global_step 这个是第几步的结果。

这其实就是一个 保存训练变量+TensorBoard自动写入 器。

  1. save_model

用法

logx.save_model(        save_dict,        metric=accuracy,        epoch=epoch,        higher_better=True)

epoch 会用这个来命名存的模型

metric 以什么为标准来决定当前模型是否是最好的模型,并由此决定要不要存。如果你的 metric 是准确率,那么 higher_better 就要置为 True

delete_old 是否每个 epoch 都保存一个一个新的,还是永远只存一个最好的。不用自己写判断的代码了哦。方便~

这是介绍 runx 系列文章的第一篇文章,如果你想了解更多,别忘了点赞和关注我哦~

                                     

https://juejin.im/post/5e8606e7f265da47c8011eec

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论