首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2017年与机器学习相关的10大Python开源库

2017年与机器学习相关的10大Python开源库

作者头像
企鹅号小编
发布2018-01-16 17:14:45
7460
发布2018-01-16 17:14:45
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

作者|Alan Descoins

译者|薛命灯

编辑|Emily

Pipenv

Pipenv 最初是由 Kenneth Reitz 开发的一个业余项目,旨在将其他包管理器(如 npm 和 yarn)的概念引入到 Python 当中。有了 Pipenv,开发人员就不需要再安装 virtualenv 和 virtualenvwrapper,也不需要管理 requirements.txt 文件。他们只需要在 Pipfile 文件中声明依赖,然后通过命令行来添加、移除和更新依赖。Pipeenv 会生成 Pipfile.lock 文件,开发人员可以进行决策式的构建。Pipeenv 还提供了详细的文档。

PyTorch

由 Facebook 开源的 PyTorch 是 2017 年最受瞩目的深度学习框架。PyTorch 以 Torch 为基础,并进行了一些改进。因为在过去几年,很多数据科学家转向使用 Python,所以 PyTorch 在 Python 深度学习领域起到了巨大作用。

之所以很多研究人员对 PyTorch 趋之若鹜,是因为 PyTorch 实现了动态计算图(Dynamic Computational Graph)模型。在使用 TensorFlow、CNTK 或 MXNet 这些框架时,需要预先定义好计算图(Computational Graph),但它们都是静态的。而在某些场景下,如在进行自然语言处理时,可能涉及多种不同的任务,比如你可以缩放图像,但无法处理边长的文本。PyTorch 的动态计算图模型在这个时候就很有用,开发人员可以在代码里通过 Python 的标准语句在运行时定义计算图,这样就可以自由地完成各种任务。

Caffe 2

Caffe 2 是 Facebook 开源的另一个深度学习框架。初始版 Caffe 已经得到广泛应用,并以无与伦比的性能表现而闻名。不过,因为深度学习发展趋势的变化导致 Caffe 框架停滞不前,于是 Caffe 2 尝试把 Caffe 带入一个新的世界。

它支持分布式模型训练和部署(甚至支持移动平台),兼容最新的 CPU 和 CUDA 硬件。PyTorch 可能更适合用于研究工作,而 Caffe 2 则适合用于大规模的部署,这个已经在 Facebook 得到了实证。

Pendulum

Pendulum 可直接用来替换 Python 的标准 datatime 类,所以可以很容易地与现有代码进行集成,并在必要的时候使用它的功能。Pendulum 还提供了 timedelta,让基于 datetime 的算术运算变得更容易。

Dash

Dash 是今年开源的一个框架,用于构建 Web 应用,使用 Python 进行数据可视化。它使用了 Flask、Plotly.js 和 React,提供了高层的抽象,避免让你再去学习这些框架,从而提升开发效率。

PyFlux

PyFlux 是一个用于处理时序数据的开源框架。时序数据研究是经济统计学的一个子领域,主要研究时序行为以及预测时序行为。PyFlux 提供了概率性的时序建模方式,并实现了若干现代时序模型,如 GARCH。

Fire

在进行项目开发时,经常会用到命令行工具。传统的工具有 argparse,Python 还提供了 click 和 docopt。而谷歌今年开源的 Fire 则以一种全新的方式解决同样的问题。

Fire 可以为每个 Python 项目自动生成一个 CLI,也就说,你无需写任何代码或 docstring 就可以拥有一个 CLI。你只需要调用 Fire 的一个方法,并传入一个参数,比如一个函数、一个对象、一个类,或者什么都不传(这样的话整个代码会变成一个 CLI)。

imbalanced-learn

在理想的世界里,用于训练的数据集可以是完美均衡的。但在现实世界,很多时候需要处理不均衡的数据集。例如,在预测信用卡交易欺诈时,大部分的交易是合法的(可能 99.9% 以上),在这种情况下,机器学习的性能会很糟糕,所以需要做一些额外的工作。

imbalanced-learn 是一个开源的 Python 包,可以帮你做掉很多工作。它与 scikit-learn 兼容,是 scikit-learn-contrib 项目的一部分。

FlashText

在进行数据清理时,很多人会用到正则表达式。尽管正则表达式可以完成这些任务,但在处理大量文本时,速度会变得非常慢。

FlashText 是一个更好的替代方案。它的作者提供的基准测试表明,一些原本需要 5 天时间完成的任务在 15 分钟内就可以搞定。FlashText 运行时不会随着搜索关键字数量的增长而增长,而正则表达式的运行时会随搜索关键字的数量呈线性增长。

Luminoth

Luminoth 是使用 TensorFlow 和 Sonnet 构建的开源计算机视觉库,提供了开箱即用的物体检测功能,该功能使用了 Faster R-CNN 模型。

Luminoth 不只是实现了某种特定的模型,它还支持模块化和扩展,所以可以使用不同的模型解决各种问题。它还提供了工具用于转换数据(如图像数据)、增强数据、在多个 GPU 上运行模型训练、运行评估指标、在 TensorBoard 中可视化数据、通过简单的 API 部署训练过的模型。

Luminoth 已经可以与 Google Cloud 的 ML Engine 集成,所以可以直接通过简单的命令在云端进行模型训练,就像在本地机器一样。

其他框架

PyVips

你或许从来没有听说过 libvips 库,不过一定知道 Pillow 或 ImageMagick,它们都是图像处理工具,支持多种格式。相比这些工具库,libvips 的处理速度更快,使用的内存更少。

PyVips 对 libvips 进行了封装,兼容 Python 2.7-3.6(甚至也兼容 PyPy),可以通过 pip 安装。

Requestium

Python 提供了 Requests 库用于进行 Web 界面的自动化操作,但现在很多网站使用了 JavaScript,导致 Requests 无法准确抓取到想要的界面元素。要解决这个问题,需要对由 JavaScript 代码发起的请求进行反向工程,但这种方式费时又费力。当然,我们也可以使用 Selenium,通过编程的方式来解决上述问题,但整体速度仍然较慢。

Requestium 可以用于替代 Requests,它还集成了 Parsel,可以很快写出用于查找页面元素的选择器,从而为开发人员省下不少时间。

Skorch

Skorch 对 PyTorch 进行了封装,提供了类似 scikit-learn 的 API。所以,如果你已经很熟悉 scikit-learn 的 API,但又要使用 PyTorch,那么 Skorch 是个不错的选择。

本文来自企鹅号 - AI漫游媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - AI漫游媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档