内容介绍
用于机器学习的开发环境可能与用于解决预测建模问题的机器学习方法一样重要。
收到很多小伙伴的私信问我:我的机器学习开发环境是什么?
在这篇文章中,您将了解我为开发人员使用和推荐的用于应用机器学习的开发环境。
看完这篇文章,你会知道:
- 工作站和服务器硬件在机器学习中的作用之间的重要区别。
- 如何确保以可重复的方式安装和更新您的机器学习依赖项。
- 如何开发机器学习代码并以不会引入新问题的安全方式运行它。
机器学习硬件设备
无论您是学习机器学习还是开发大型操作模型,您的工作站硬件都没有那么重要。
原因是我不建议您在工作站上安装大型模型。
机器学习开发涉及许多小测试,以找出问题的初步答案,例如:
- 使用什么数据。
- 如何准备数据。
- 使用什么型号。
- 使用什么配置。
最终,您在工作站上的目标是找出要运行的实验。我称之为初步实验。对于您的初步实验,使用较少的数据:适合您的硬件能力的小样本。
更大的实验需要几分钟、几小时甚至几天才能完成。它们应该在您的工作站以外的大型硬件上运行。
这可能是服务器环境,如果您使用的是深度学习方法,则可能是 GPU 硬件。该硬件可能由您的雇主提供,或者您可以在云中以低廉的价格租用它,例如 AWS、阿里云、腾讯云、华为云等等。
确实,您的工作站 (CPU) 越快,工作站的容量 (RAM) 越多,您可以运行的初步小实验就越多或越大,您从大型实验中获得的收益就越多。因此,请尽可能使用最好的硬件,但总的来说,请使用现有的硬件。
我自己喜欢带有大量 RAM 和大量内核的大型 Linux 机器,用于认真的研发。对于日常工作,我喜欢 iMac,同样拥有尽可能多的内核和 RAM。
总之:
- 工作站:使用您的数据的小样本并找出要运行的大型实验。
- 服务器:运行需要数小时或数天的大型实验,并帮助您确定在操作中使用的模型。
安装机器学习依赖项
您必须安装用于机器学习开发的库依赖项。
这主要是您正在使用的库。
在 Python 中,这可能是 Pandas、scikit-learn、Keras 等。在 R 中,这是所有的包,也许是插入符号。
不仅仅是安装依赖项,您还应该有一个可重复的过程,以便您可以在几秒钟内再次设置开发环境,例如在新工作站和新服务器上。
我建议使用包管理器和脚本(例如 shell 脚本)来安装所有内容。
如果是在 iMac 上,我使用 macports 来管理已安装的软件包。我认为有两个脚本:一个用于在新 mac 上安装我需要的所有软件包(例如升级工作站或笔记本电脑后),另一个脚本专门用于更新已安装的软件包。
库总是通过错误修复进行更新,因此更新专门安装的库(及其依赖项)的第二个脚本是关键。
这些是我可以随时运行的 shell 脚本,并且我会在需要安装新库时不断更新。
总之:
- 安装脚本:维护一个脚本,您可以使用该脚本重新安装开发环境所需的一切。
- 更新脚本:维护一个脚本来更新机器学习开发的所有关键依赖项并定期运行它。
机器学习编辑器
我推荐一个非常简单的编辑环境。
机器学习开发的艰苦工作不是编写代码;相反,它正在处理已经提到的未知数。未知数,例如:
- 使用什么数据。
- 如何准备数据。
- 使用什么算法。
- 使用什么配置。
编写代码是容易的部分,尤其是因为您很可能使用现代机器学习库中的现有算法实现。
因此,您不需要花哨的 IDE;它不会帮助您获得这些问题的答案。
相反,我建议使用一个非常简单的文本编辑器,它提供基本的代码突出显示。
就个人而言,我使用并推荐 Sublime Text 和 Pycharm,其实其他任何类似的文本编辑器也能正常工作。
一些开发人员喜欢使用笔记本,例如 Jupyter Notebook。我不使用或推荐它们,因为我发现这些环境对开发具有挑战性;它们可以隐藏错误并为开发引入依赖性。
为了学习机器学习和机器学习开发,我建议编写可以直接从命令行或 shell 脚本运行的脚本或代码。
例如,R 脚本和 Python 脚本可以使用各自的解释器直接运行。 在 Linux 服务器上运行深度学习实验也类似,直接使用命令行的模式执行即可,例如:
python -u myscript1.py >myscript1.py.log 2>&1
python -u myscript2.py >myscript2.py.log 2>&1
python -u myscript3.py >myscript3.py.log 2>&1
python -u myscript4.py >myscript4.py.log 2>&1
python -u myscript5.py >myscript5.py.log 2>&1
一旦您有了最终的模型(或一组预测),您就可以使用项目的标准开发工具将其集成到您的应用程序中。
|