【发布时间】:2011-01-15 09:44:24
【问题描述】:
我正在为我的计算机视觉论文编写一个相当复杂的机器学习程序。它运行良好,但我需要不断尝试新事物并添加新功能。这是有问题的,因为我在扩展代码或尝试简化算法时有时会引入错误。
显然正确的做法是添加单元测试,但不清楚如何执行此操作。我的程序的许多组件产生了一些主观的答案,我无法自动进行健全性检查。
例如,我有一些代码用较低分辨率的曲线近似曲线,这样我就可以在较低分辨率的曲线上进行计算密集型工作。我不小心在这段代码中引入了一个错误,直到我的整个程序的结果稍微变差时才通过艰苦的搜索找到它。
但是,当我尝试为其编写单元测试时,我不清楚我应该做什么。如果我制作了一条具有明显正确的低分辨率版本的简单曲线,那么我并没有真正测试所有可能出错的东西。如果我制作一条简单的曲线,然后稍微扰动点,我的代码就会开始产生不同的答案,即使这段特定的代码现在看起来确实可以正常工作。
【问题讨论】:
标签: unit-testing machine-learning