很多时候我们想要复现别人的研究成果,编程实现或者改进一个算法,我们都会涌现出一个强烈的愿望:啊我想要直接看作者的程序! 哪怕自己掌握了算法梗概,也希望自己能够对一下答案~

于是,慢慢总结了一下如何科学地寻找别人的代码的经验(看完记得点个赞,很有用的干货哦!)

1.Google

这个适合于搜索单纯的某个已经比较成熟的算法而不是整个论文的全貌,比如直接搜索 KNN in Python, Logistic Regression in R之类的。一般都能搜到算法详解和详细code, 改吧改吧就能跑自己的了。

2.Github

github中搜索论文名称, 或对应的算法名称,最好是算法关键词。这样一般可以搜到一堆相关算法,个个都是从data到 code到结果对照一应俱全,听着就很爽。
搜不到算法的话,还可以在Github里面搜索第一作者的名字,如果找到作者账号,大概率作者会放在自己账户里面,顺便follow一下fork一些好东西也是很爽。
github找开源项目参见:github高效找开源项目

3.专门的网站

一些专门网站。推荐几个我知道的比较厉害的

3.1 Papers With Code: the latest in machine leaning

Papers With Code 网站:https://paperswithcode.com/
在这里插入图片描述
这是 Reddit 的一个用户 rstoj 做的一个网站,将 ArXiv 上的最新机器学习论文与 Github 上的代码(TensorFlow/PyTorch/MXNet/等)对应起来。这个网站网址也是很明明白白的。也是既可以输入论文全名,也可以输入算法名称去搜一个大类。

3.2 Browse state-of-the-art

网站地址:https://paperswithcode.com/sota

这个网站主要是解决另一个问题–寻找一个领域目前最好的(State of the art, Sota)算法的论文以及实现代码。这也是刚接触到一个新领域时候,必须要做的事情,先找到最新最好的算法论文,然后根据这篇论文的代码实现,先跑下代码,接着再去了解细节,或者是根据它的参考论文,来学习这个领域最近几年的论文(一般是 3 年到 5 年内的),逐渐熟悉这个领域的研究方向和难点所在。
在这里插入图片描述

3.3 Code Ocean: Professional tools for researches

网站地址:https://codeocean.com/
在这里插入图片描述
这是我提交IEEE论文时候发现的。论文官方提醒可以在这个网站提交提交代码。也看到很多别人的data+code。

4. 工具包(成熟的算法)

如果这论文很老,论文里的算法在该领域有举足轻重的地位。那么网上很可能有工具包。例如我做的机器学习方向,经典的聚类、分类算法,MATLAB, python等常用语言都有丰富的工具包可供使用,一般有名的算法都会包括在其中。

5. 比较新的文章

若是比较新的文章,就通过以下几种方法进行查找:
(1)在google搜索该论文的名称或者第一作者的姓名,找到该作者的个人学术主页。在他的主页上看看他是否公开了论文的代码。
(2) 在google搜索该论文中算法的名字+code或者是某种语言,如python等。这是因为阅读这篇论文的科研人员不少,有的人读完会写代码并公布出来。
(3)邮件联系论文第一作者。(有时候,作者会很快回复)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐