机器学习令人无比神往,但从事这个工作的人可能并不这么想。
机器学习的工作内容往往复杂枯燥又困难——通过大量重复工作进行提升必不可少:
汇总工作流及传输渠道、设置数据源以及在内部部署和云部署的资源之间来回分流。
所以使用工具提升你的工作效率实在很关键,而且像这样的工具越多越好。
好在你学的是Python,作为一门威力巨大的工具语言,Python可以给你提供足够的辅助工具,让你在大数据和机器学习项目中游刃有余。
唯一的问题在于Python海量的资源库让患有选择困难症的你难以取舍,因此糖豆贴心的给你找来了目前评价最高的五个Python库。
1. PyWren
项目地址:https://github.com/ericmjonas/pywren
PyWren项目
PyWren,简单而强大,用于进行基于Python的科学计算工作。
项目 At The New Stack 的简介这样描述 PyWren:
把 AWS Lambda 作为一个巨大的平行处理系统,以处理那些可被切割成诸多小任务的项目,同时还可以节约很多内存和硬盘空间。
Lambda 函数的一个缺点是运行时间最长不能超过 300 秒。
但是,如果你有一个只花费几分钟就能完成却需要在数据集中运行数千次的工作,那么 PyWren 也许是一个好选择,它可以在云端完成一种用户硬件上不可用的规模平行化的工作。
2. Tfdeploy
项目地址:https://github.com/riga/tfdeploy
Tfdeploy项目
如果你需要使用基于谷歌的 TensorFlow 框架的训练模型却不想使用框架本身的话,Tfdeploy可以帮你。
借由 Tfdeploy,可以在 Python 中使用模型,而且仅仅需要Numpy 的数学和统计库作为支撑。
几乎所有能在 TensorFlow 上跑的运行也能在 Tfdeploy 上跑,而且你可以通过标准 Python 隐喻方式来延伸库的行为(比如,超载一个类别)。
但是,Tf 部署并不支持 GPU 加速。
3.Luigi
项目地址:https://github.com/spotify/luigi
Luigi项目
编写成批作业通常只是处理海量数据的其中一步:你也不得不将所有这些工作串联起来,做成类似工作流程的东西。
Luigi 是 Spotify 打造的,用于解决所有通常与长期运行成批处理作业有关的管道问题。
有了 Luigi,研发人员就可以从事几个很难、与数据无关的任务处理——「 Hive 询问,在 Jave 上完成的 Hadoop 任务, Scala 上的 Spark 任务,从数据库中导出表格」——创造一个端到端运行它们的工作流。
对任务的整个描述以及依存性被打造为 Python 模块,和 XML 配置文档或其他数据形式不同,因此,可以被组合到其他以 Python 为中心的项目中去。
4.Kubelib
项目地址:https://github.com/safarijv/kubelib
Kubelib项目
如果你采用 Kubernetes 作为完成机器学习工作的编排系统(orchestration system),那你可能要小心的维护以免其自身运行的BUG比它能解决的问题都多。
Kubelib 为 Kubernetes 提供了一系列的 Python 接口,虽说需要 Jekins ing 作为支持,但没有 Jenkins 的情况下也能够使用。
它能够完成 暴露在 kubectl CLI 或者 Kubernetes API 中的所有事。
5.PyTorch
项目地址:https://github.com/pytorch/pytorch
PyTorch项目
最后一个成员还比较新,但却已经制造了足够大的声势:Python 库新成员 Pytorch,这一个Torch 机器学习框架工具。
PyTorch 不仅为 Torch 添加了 Python 端口,也增加了许多其他的便利,比如 GPU 加速,共享内存完成多重处理(multiprocessing,特别是多核上隔离开的工作。)
最大的亮点在于它们能为 Numpy 中的无加速功能提供 GPU 驱动的替代选择。