本文将会分享近期发布的七大GitHub机器学习项目。这些项目广泛覆盖了机器学习的各个领域,包括自然语言处理(NLP)、计算机视觉、大数据等。
最顶尖的Github机器学习项目
1. PyTorch-Transformers(NLP)
传送门: https://github.com/huggingface/pytorch-transformers
自然语言处理(NLP)的力量令人叹服。NLP改变了文本的处理方式,几乎到了无法用语言描述的程度。
在最先进的一系列NLP库中,PyTorch-Transformers出现最晚,却已打破各种NLP任务中已有的一切基准。它最吸引人的地方在于涵盖了PyTorch实现、预训练模型权重及其他重要元素,可以帮助用户快速入门。
运行最先进的模型需要庞大的计算能力。PyTorch-Transformers在很大程度上解决了这个问题,它能够帮助这类人群建立起最先进的NLP模型。
这里有几篇深度剖析PyTorch-Transformers的文章,可以帮助用户了解这一模型(及NLP中预训练模型的概念):
· PyTorch-Transformers:一款可处理最先进NLP的惊人模型库(使用Python)
· 8个入门NLP最优秀的预训练模型
· PyTorch——一个简单而强大的深度学习库
2. NeuralClassifier (NLP)
传送门: https://github.com/Tencent/NeuralNLP-NeuralClassifier
在现实世界中,文本数据的多标签分类是一个巨大的挑战。早期面对NLP问题时,我们通常处理的是单一标签任务,但在真实生活中却远不是这么简单。
在多标签分类问题中,实例/记录具备多个标签,且每个实例的标签数量并不固定。
NeuralClassifier使我们能够在多层、多标签分类任务中快速实现神经模型。我最喜欢的是NeuralClassifier,提供了各种大众熟知的文本编码器,例如FastText、RCNN、Transformer等等。
用NeuralClassifier可以执行以下分类任务:
· 双层文本分类
· 多层文本分类
· 多标签文本分类
· 多层(多标签)文本分类
以下两篇优秀的文章介绍了究竟什么是多标签分类,以及如何在Python中执行多标签分类:
· 使用NLP预测电影类型——多标签分类的精彩介绍
· 使用Python构建你的第一个多标签图像分类模型
3. TDEngine (大数据)
传送门: https://github.com/taosdata/TDengine
TDEngine数据库在几乎不到一个月的时间内就累积了近10,000个star。继续往下读,你立马就能明白这是为何。
TDEngine是一个开源大数据平台,针对:
· 物联网(IoT)
· 车联网
· 工业物联网
· IT基础架构等等
本质上,TDEngine提供了一整套与数据工程相关的任务,用户可以用极快的速度完成所有这些工作(查询处理速度将提高10倍,计算使用率将降低到1/5)。
目前有一点需要注意——TDEngine仅支持在Linux上执行。TDEngine数据库包含完整的文件资料以及包含代码的入门指南。
建议你阅读这一篇针对数据工程师的综合资源指南:
· 想成为数据工程师?这里列出了入门应看的综合资源
4. Video Object Removal (计算机视觉)
传送门: https://github.com/zllrunning/video-object-removal
你是否接触过图像数据?计算机视觉是一种十分先进的技术,用于操纵和处理图像的。想要成为计算机视觉专家,图像的目标检测通常被认为是必经之路。
那么视频呢?如果要对几个视频中的目标绘制边界框,虽然看似简单,实际难度却远不止如此,而且目标的动态性会使任务更加复杂。
所以Video Object Removal非常棒,只要在视频中某一目标周围绘制边界框,即可将它删除。就是这么简单!以下是一个范例:
如果你在计算机视觉的世界里还是个小白,这里有两篇能帮助你入门并快速上手的文章:
· 对基础目标检测算法的全面介绍
· 使用深度学习2.0掌握计算机视觉
5. Python Autocomplete (编程)
传送门: https://github.com/vpj/python_autocomplete
你一定会爱上Python Autocomplete的。数据科学家的所有工作就是对各种算法进行试验(至少是大多数人),而Python Autocomplete可以利用一个LSTM简单模型自动写完Python代码。
下图中,灰色的部分就是LSTM模型自动填写的代码(结果位于图像底部):
开发人员如是描述:
首先清除Python代码中的注释、字符串和空行,然后进行训练和预测。模型训练的前提是对python代码进行标记化,相比使用字节编码来预测字节,这似乎更为有效。
如果你曾花费(浪费)时间编写一行行单调的Python代码,那么这一模型可能正是你所寻找的。不过它的开发还处于非常早期的阶段,操作中不可避免会出现一些问题。
如果你想知道LSTM到底是什么,请阅读这篇文章中的介绍:
· 深度学习的要点:长短时记忆(LSTM)入门
6. tfpyth–从TensorFlow到PyTorch再到TensorFlow (编程)
传送门: https://github.com/BlackHC/tfpyth
TensorFlow和PyTorch两大模型都坐拥庞大的用户群,但后者的使用率高得惊人,在未来一两年内很可能超过前者。不过请注意:这并不会打击Tensorflow,因为它的地位相当稳固。
所以如果你曾经在TensorFlow中写了一串代码,后来又在PyTorch中写了另一串代码,现在希望将两者结合起来用以训练模型——那么tfpyth框架会是一个好选择。Tfpyth最大的优势就在于用户不需要重写先前写好的代码。
这一项目对tfpyth的使用方法给出了结构严谨的示例,这无疑是对TensorFlow与PyTorch争论的一种重新审视。
安装tfpyth易如反掌:
pip install tfpyth
以下是两篇深度介绍TensorFlow和PyTorch如何运作的文章:
· 深度学习指南:使用Python中的TensorFlow实现神经网络
· PyTorch——一个简单而强大的深度学习库
7. MedicalNet
MedicalNet中包含了一个PyTorch项目,该项目将《Med3D:用迁移学习分析3D医学图像》(https://arxiv.org/abs/1904.00625)这篇论文中的想法付诸实践。这一机器学习项目将医学数据集与不同的模态、目标器官和病理结合起来,以构建规模较大的数据集。
众所周知,深度学习模型(通常)需要大量训练数据,而TenCent发布的MedicalNet是一个相当出色的开源项目,希望大家都能尝试使用它。
MedicalNet的开发人员已经发布了四个预训练模型,这些模型基于23个数据集。如果你需要,下文对迁移学习进行了直观的介绍:
· 迁移学习及在深度学习中使用预训练模型的艺术