【深度学习技术】AI-research-tools

AI-research-tools

Posted by ZhangPY on April 3, 2020

AI-research-tools

  • 推荐一些我喜欢的科研工具(有些限定于 AI 领域)
  • 标记【待尝试】的是我还未使用过但感觉比较有用的工具,会尽快尝试并根据体验决定是否保留
  • 请通过 issues 等方式向我推荐您觉得好用的但不在此清单上的 AI 领域科研工具,感谢

目录

趋势关注

RSS 阅读器

  • irreader 阅读器 - FATECORE:这是我现在在使用的 RSS 阅读器。一个非常大的优点是,对于一些没有提供 RSS 订阅源的网站,irreader 可以自定义 RSS 订阅源。另外,订阅的 RSS 更新时,有弹窗提醒。还有一个我暂时用不到的功能是,irreader 同时支持订阅播客和播放有声媒体。

论文查找

搜索引擎

  • Google scholar:搜索论文的首选,可以在这里查看论文统计和引用参考文献,还能通过关注作者或者论文获得新论文更新提醒,以及利用自动化推荐来提供一个基本库。

  • Semantic scholar:可以结合外部材料整合进行论文的语义分析。功能包括:展示引用和参考文献、度量论文影响力、展示论文图表、自动生成关键词(根据标题)、分析作者、在互联网寻找额外资源(例如,相关 youtube 视频),以及推荐论文。

  • dblp: computer science bibliography:专为 CS 设计的论文查询网站,收录比较顶级并可以被检索到的论文。可以根据会议、期刊等分类查询作者的论文,想搜一个计算机会议的所有文章时好用。

arXiv 相关

  • arXiv-sanity:相比于 arXiv 有很大的改进,包括在浏览中显示摘要、评论和非常基本的社交、推荐、库功能。
  • Semantic Sanity: A Personalized Adaptive Feed:创建自己的个性化 arXiv 选读 Feed。创建每个 Feed 时,会让您先选择几篇论文,然后根据这几篇论文开始推荐,对于推荐结果可以点赞或者不喜欢来帮助调整推荐结果。

代码实现查找

  • Papers With Code:自动把论文连接到实现代码的 GitHub 资源库和数据集,并根据 GitHub 的收藏量排序。展示各任务上的 SOTA 以供比较。
  • rasbt/deeplearning-models:使用 TensorFlow 和 PyTorch 实现各种深度学习模型的合集。

论文阅读

查阅下载

文献管理

  • Mendeley:支持 web、PC、Mac 和移动手机等多个平台,可以直接注释和高亮显示 PDF,有限额的免费云存储。另外有每周邮件推荐论文。

文献翻译

  • CopyTranslator:最大的优点在于有置顶、点按复制、监听剪贴板等功能,阅读文献配合使用时可以无缝切换,非常方便。

笔记工具

我个人习惯使用印象笔记

编码实验

Pytorch 相关

功能配置封装

  • williamFalcon/pytorch-lightning:将 PyTorch 开发中的各种通用配置(训练验证逻辑、超参搜索、分布式训练等)全部包装起来,以更高级的形式快速搭建模型。功能强大,有些复杂,正在摸索。机器之心写的简介

  • skorch-dev/skorch:【待尝试】一个 scikit-learn 兼容的神经网络库,封装了 PyTorch。

  • donnyyou/torchcv:基于 PyTorch 的 CV 模型框架,包含图像分类、语义分割、目标检测、姿态检测、实例分割、生成对抗网络等任务中的多个常见模型。

项目管理

  • torchtracer:一个管理 PyTorch AI 实验项目的工具,主要用于保存各类训练数据(模型 checkpoints、超参数组合、日志、loss 变化曲线图像等)。

风格指南

项目模板

神经网络分析器

  • sksq96/pytorch-summary:打印 PyTorch 模型信息,包含模型每层的参数量、输出张量大小等。

  • sovrasov/flops-counter.pytorch:计算模型总共的 FLOPs(浮点运算数,理解为计算量,可以用来衡量算法/模型的复杂度)以及每层的占比。缺点是似乎不支持 RNN 相关层,另外打印下来的信息不是很方便看。

  • Swall0w/torchstat:PyTorch 专用的轻量级神经网络分析器,可以展示网络的参数,空间大小,MAdd,FLOPs 等指标。【支持的层种类过少,只包含卷积网络中常用的那些层】【有一个 bug 需要修改

  • Tramac/torchscope:同样是 PyTorch 专用的神经网络分析器,看起来展示时比上面的 torchstat 更加清晰。【对 Linear 层报错,貌似是 torchstat 带来的 bug】【同样不支持 RNN 相关层】【感觉有时间自己可以 fork 然后修改一下】

可视化

  • lanpa/tensorboardX:强大的可视化工具。有一个问题是,当每个 epoch 的实验结果都记录时,epoch 多了感觉有些卡。

  • facebookresearch/visdom:【待尝试】用于创建、组织和共享实时丰富数据可视化的灵活工具。

  • Convolution Visualizer:如果卷积层配置比较复杂,不方便计算输出大小时,可以利用这个可视化工具辅助。

数据集查找

特征工程

超参搜索

  • microsoft/nni:【待尝试】用于神经模型搜索和超参数调优的开源自动机器学习(AutoML)的工具包,支持绝大多数主流框架和运行环境。

  • Hyperopt:【待尝试】分布式异步超参数优化。看到知乎上有人推荐,不过根据文档来看,目前支持的优化算法只有两种,且不包括贝叶斯优化。

  • Optuna:【待尝试】自动超参数优化框架。

  • BoTorch:【待尝试】基于 PyTorch 的贝叶斯优化库。

  • automl/Auto-PyTorch:【待尝试】基于 PyTorch 的自动结构搜素和超参数搜索。

Debug 工具

论文写作

LaTeX 编辑器

  • 我个人习惯使用 VSCode 进行离线的 LaTeX 写作。
  • Overleaf:支持多人协作的在线 LaTeX 编辑器。但是对网络要求较高。

语言表达

搭配查找

  • Linggle:搜索最常出现的英文词语搭配。不确定自己的表达方式是否正确时使用。

句式推荐

写作检查

请注意在线检测工具的泄露风险,谨慎处理关键文字。

公式编辑

  • Mathpix:通过截取复杂数学方程式的截图将其转换为 LaTeX 代码。可以处理 PDF 的印刷体和照片中的手写公式等。

  • MyScript Webdemo:Math 模块可以将手写公式转为 LaTeX 代码;同时,Diagram 模块可以将手绘的框图转化为工整的框图。

截屏悬浮

写论文时经常会遇到需要参考多个文献或代码的情况,同时查看多个文件并频繁切换会非常麻烦。这里是别人推荐的两个能够将截图悬浮置顶的工具,并随时调整位置和大小,方便写作时参考。

  • Snipaste:【待尝试】有 Windows 和 Mac 版,暂时没有 Linux 版。

  • Snappy:【待尝试】有 Mac 和 iPhone & iPad 版,暂时没有 Windows 版。

表格转 LaTeX

  • Excel2LaTeX:用在 Excel 上的宏工具,能够将 Excel 表格转换为 LaTeX 代码,节省很多时间。能够满足大多数效果的转换,有些效果可能需要微调。

模型绘图

图片转换

会议投递

会议查找筛选

匿名链接

出于论文盲审考虑,有时候文件(如源码)链接需要是匿名的。有些人会选择在 Github 上创建一个匿名用户,但为每一个会议的每一篇论文都创建一个之后再用不到的用户过于繁琐。我查到有一些工具支持匿名分享文件如下。

代码开源

为已发表的论文提供清晰、可复现的代码能够有效推动领域发展。这里推荐一些对开源代码有帮助的工具。

  • Damnever/pigar:Python 项目 requirements 文件自动生成工具。

其他

专注工作

  • 番茄·人生:Windows PC 端待办事项软件,番茄工作法时钟。