Categories
程式開發

如何信任你的深度学习代码?


在传统的软件开发中,自动化单元测试是确定代码是否完成预期任务的主要方法。它帮助开发人员信任他们的代码,并可以自信地进行更改。破坏性的更改会被单元测试检测出来。从GitHub上许多科研库的情况来看,深度学习的从业者们还不喜欢这种方法。我希望,这篇文章至少能够说服某些人在他们的深度学习项目中使用单元测试。

本文最初发布于Tilman Krokotsch的个人博客,由InfoQ中文站翻译并分享。

深度学习是一门很难评估代码正确性的学科。随机初始化、大型数据集和权重有限的可解释性,所有这些都意味着,要找到模型无法训练的确切原因,大多数时候都需要反复试验。在传统的软件开发中,自动化单元测试是确定代码是否完成预期任务的主要方法。它帮助开发人员信任他们的代码,并可以自信地进行更改。破坏性的更改会被单元测试检测出来。

从GitHub上许多科研库的情况来看,深度学习的从业者们还不喜欢这种方法。从业者不知道他们的代码是否正常工作,他们觉得这样很好吗?通常,由于上述三个原因,定义学习系统中每个组件的预期行为并不容易。然而,我认为,从业者和研究人员应该重新审视他们对单元测试的抵触,因为它可以让研究过程更加顺利。你需要学习下如何信任你的代码。

原文链接:【https://www.infoq.cn/article/6AqvtEddjZdGDHelioFD】。未经作者许可,禁止转载。