Python库是最受欢迎的机器学习

Python库是最受欢迎的机器学习_第1张图片

过去两年来,我们一直通过发表博文的方式做这件事,指出当年 Python 社区中出现的一些最佳工作。现在,2017 年即将结束,又到了总结的时刻。


但是这次开源库的评选限定在了机器学习的范围内。也许非机器学习库的大牛认为我们有偏见,恳请你们原谅。很希望读者在评论中对本文做出反馈,帮助我们查缺补遗未收录的顶级软件。


因此,放轻松,让我们开始吧!


1. Pipenv


Python库是最受欢迎的机器学习_第2张图片

2017 年排名第一的 python 库非 Pipenv 莫属。它在今年初发行,但却影响了每个 Python 开发者的工作流程,尤其是现在它成了用于管理依赖项的官方推荐工具。


Pipenv 源自大牛 Kenneth Reitz 的一个周末项目,旨在把其他软件包管理器的想法整合进 Python。安装 virtualenv 和 virtualenvwrapper,管理 requirements.txt 文件,确保依赖项的依赖项版本的可复现性,以上这些统统不需要。借助 Pipenv,你可以在 Pipfile(通常使用添加、删除或更新依赖项的命令构建它)中指定所有你的依赖项。Pipenv 可以生成一个 Pipfile.lock 文件,使得你的构建成为决定性的,避免了寻找 bug 的困难,因为甚至你也不认为需要一些模糊的依赖项。


当然,Pipenv 还有很多其他特性,以及很好的文档,因此确保检查完毕,再开始在所有你的 Python 项目上使用它。


2. PyTorch


如果有一个库在今年特别是在深度学习社区中大为流行,那么它很可能是 PyTorch。PyTorch 是 Facebook 今年推出的深度学习框架。


PyTorch 构建在 Torch 框架之上,并对这个(曾经?)流行框架做了改善,尤其是 PyTorch 是基于 Python 的,这与 Lua 形成鲜明对比。鉴于过去几年人们一直在使用 Python 进行数据科学研究,这为深度学习的普及迈出了重要一步。

Python库是最受欢迎的机器学习_第3张图片

最值得注意的是,由于其实现了全新的动态计算图(Dynamic Computational Graph)范式,PyTorch 成为了众多研究者的首选框架之一。当使用其他框架比如 TensorFlow、CNTK、MXNet 编写代码时,必须首先定义一个称之为计算图的东西。该图指定了由我们的代码构建的所有操作与数据流,且它在构建完后会进行编译和利用框架潜在地优化,因此静态计算图能很自然地在 GPU 上实现并行处理。这一范式被称为静态计算图,它很棒,因为你可以利用各种优化,并且这个图一旦建成即可运行在不同设备上(因为执行与构建相分离)。但是,在很多任务中比如自然语言处理中,工作量经常是变动的:你可以在把图像馈送至算法之前把其大小重新调整为一个固定的分辨率,但是相同操作不适用于语句,因为其长度是变化的。这正是 PyTorch 和动态图发挥作用的地方。通过在你的代码中使用标准的 Python 控制指令,图在执行时将被定义,给了你对完成若干任务来说很关键的自由。


当然,PyTorch 也会自动计算梯度(正如你从其他现代深度学习框架中所期望的一样),这非常快,且可扩展,何不试一试呢?


3. Caffe2


也许这听起来有点疯狂,但是 Facebook 在今年也发布了另外一个很棒的深度学习框架。原始的 Caffe 框架多年来一直被广泛使用,以无与伦比的性能和经过测试的代码库而闻名。但是,最近的深度学习趋势使得该框架在一些方向上停滞不前。Caffe2 正是一次帮助 Caffe 赶上潮流的尝试。


Python库是最受欢迎的机器学习_第4张图片

Caffe2 支持分布式训练、部署(甚至在移动端平台)和最新的 CPU、支持 CUDA 的硬件。尽管 PyTorch 更适合于研究,但是 Caffe2 适合大规模部署,正如在 Facebook 上看到的一样。


同样,查看最近的 ONNX 工作。你可以在 PyTorch 中构建和训练你的模型,同时使用 Caffe2 来部署!这是不是很棒?

Python库是最受欢迎的机器学习_第5张图片

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


你可能感兴趣的:(Python库是最受欢迎的机器学习)