当前位置: 首页 > 科技观察

有什么高效率的“炼金术”神器可以推荐吗?复旦大学fastNLP团队提供了一个内部调参工具fitlog

时间:2023-03-22 01:04:15 科技观察

,集成了实验结果表格展示、自定义备忘录、前端操作删除/隐藏记录、自动gitcommit等诸多功能。金丹”。“有没有什么DeepLearning效率神器,可以节省很多时间?”知乎上有人提出了这样的问题。在回答区,复旦大学计算机科学与技术学院副教授邱锡鹏,介绍了他们实验室使用的强大调参工具fitlog,fitlog是一个集自动版本管理和自动日志记录为一体的Python包,由计算机学院自然语言处理与深度学习组fastNLP团队开发复旦大学与技术学院,帮助你在做实验的同时方便的保存当前的代码、参数、结果,据邱锡鹏老师介绍,fitlog有很多非常实用的功能,比如用Tabular显示实验结果;支持删除和隐藏记录的前端操作,让网友大呼“优秀”。而且figlog的安装非常简单,使用pipinstallfitlog完成安装。GitHub地址:https://github.com/fastnlp/fitlog中文文档:https://fitlog.readthedocs.io/zh/latest/fitlog到底有多好用想必机器之心的读者不会陌生使用TensorBoard,它为我们提供了一种有效的参数调优方式。TensorBoard虽然功能强大,界面美观,但依然不能满足我们日常“炼金”的所有需求。使用fitlog或许可以解决深度学习调参的一些痛点。让我们来看看它有哪些功能。使用Tabular显示实验结果fitlog支持使用Tabular显示实验结果,方便不同超参数之间的对比。如下图所示,表中的每一行代表一个实验:具体来说,fitlog可以:支持分组操作,方便查看特定数据集或参数的表现;支持排序,最强超参数一目了然;支持栏目排序、显示自定义,拯救强迫症;4.支持自定义某个实验的备忘录;5.支持前端添加别人实验的性能数据,方便与SOTA结果对比;6.支持计算平均值和标准差;7、如果实验结果不理想,fitlog支持前端操作删除和隐藏记录;8、支持导出excel、csv、txt、json等格式,满足分析需求;9.记录metric机器学习不可避免地需要使用一些key,比如loss??metric,以便让我们了解训练过程进行得如何。这些指标可以帮助我们判断模型是否已经拟合或者是否还有改进的空间。此外,比较这些指标可以帮助我们调整超参数并提高模型性能。下图是使用fitlog记录的metric:下图是使用TensorBoard记录scalars的示意图:从上面两图可以看出,在记录metric方面,fitlog和TensorBoard的体验比较接近。支持后台自动gitcommit代码为了重现实验结果,只有超参数是不够的,所以fitlog支持后台自动gitcommit代码给用户(fitlog使用git进行代码管理,但与管理的git不冲突开发者本人,是平行的)。如果您需要回滚到某个实验的代码,只需点击前端的“返回”即可完成。fitlog甚至可以帮助用户管理随机数种子,但是pytorch等深度学习框架的随机性无法解决。超参数可视化深度学习涉及大量超参数调整。有时,一组好的超参数组合可以比某些算法改进更能提高性能。因此,记录这些超参数对模型性能的影响至关重要。选择一个metric,并直观地展示这个metric在不同超参数组合下的变化趋势,可以大大提高我们超参数搜索的效率。而fitlog恰好可以提供你所需要的可视化(下图中的每一行代表一个实验,最左边是dev上的表现)。这个功能类似于TensorBoard中的HParams,如下图所示:Architecture-independent,TensorFlow和PyTorch都可以使用fitlog。架构无关,tensorflow和pytorch都可以使用。除了自然语言处理,它还可以用于计算机视觉任务。如果是自然语言处理任务,可以配合fastNLP框架使用。只需要加三五行代码就可以实现metric和loss的自动记录。作为一个轻量级的工具,fitlog也有自己的不足,比如:不支持保存模型输出的图片,但是支持查看训练过程中输出的文本;它不支持显示loss和metric以外的曲线。例如,当我们需要查看输入数据、可视化网络层权重时,记录和显示图像会非常有帮助。下图是TensorBoard中显示的Fashion-MNIST数据集中的一些图片:另外,混淆矩阵(confusionmatrix)的可视化展示对于调优分类模型也很有帮助。混淆矩阵是机器学习中用来总结分类模型预测结果的分析方法之一。它用矩阵的形式总结了真实的类别和模型预测的类别,让我们可以直观的了解模型预测了哪些样本。不太好。从下图可以清楚地看出,分类模型混淆了Shirts、T-Shirts和Pullovers,模型的预测性能有待提高。以上功能在fitlog中是没有的。如果这对你来说是一个必不可少的功能,你现在可能还是要选择TensorBoard。