机器/深度学习NNabla、THUMT、Tensor2Tensor、Angel介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:NNabla(Sony 开源的神经网络库)、THUMT(神经机器翻译工具包)、Tensor2Tensor(模块化深度学习系统)、Angel(基于参数服务器理念的机器学习框架)。

1、NNabla(Sony 开源的神经网络库)

NNabla,是索尼开源的简洁高效的神经网络库,其中包含用于深度学习系统的 Python API 与用于嵌入式设备的 C++ API。索尼最终的目标是将其打造成像台式电脑、HPC 集群,嵌入式设备和生产服务器一样运行。

特性:

CUDA 兼容性。

它拥有 Python API,因此最大化了设计神经网络模型的灵活性,并且还能支持快速的原型设计和测试。

同时支持静态和动态计算图(computation graphs)。静态计算图在速度和内存上有更高的效率,而动态计算图在设计模型上更加灵活。

有各种内置的神经网络模块,如函数、算子和优化器等。该神经网络库的模块软件架构允许开发者添加新的模块,因此开发者可以基于新的研究思路实现更快的原型设计、产品或服务部署。

它由轻便、轻量的 C++11 核所编写,并能在多个平台上运行。该框架已经在 Linux (Ubuntu 16.04) 和 Windows (8, 10) 上进行了测试。

极高的速度和内存效率。计算图引擎允许安全的原位计算(in-place computation)和内存分享,这将极大地将少内存的占用。因此该框架的设计仅采用少量的计算负载就能执行前向和后向传播。

为各种计算方案而设计的解耦合实现(Decoupled implementation)接口允许为每一个计算方案提供插件式的开发方案。开发者可以更关注函数算子实际计算的特定实现,而不用管计算图引擎与其内存优化等。

安装:

pip install nnabla

这将安装CPU版本,可以通过使用以下命令安装CUDA扩展来添加GPU加速:

pip install nnabla-ext-cuda101

上面的命令适用于版本10.1 CUDA工具包。

对于其他版本,如:

pip install nnabla-ext-cuda100

pip install nnabla-ext-cuda90

pip install nnabla-ext-cuda80

下载地址:https://nnabla.org/

2、THUMT(神经机器翻译工具包)

THUMT 是由清华大学自然语言处理组开发的数据驱动机器翻译系统。

机器翻译是一种自然语言处理任务,其目的是使用计算机自动翻译自然语言。近几年来,端到端的神经机器翻译发展迅速,已经成为机器翻译系统的新主流。

THUMT 是用于神经机器翻译的开源工具包,构建于 Theano 之上,具有以下特点:

基于 Attention 的翻译模型。 THUMT 应用了标准的 attention 编码器-解码器框架。

最低风险训练,除了标准最大似然估计(MLE)之外,THUMT 还支持最小风险训练(MRT),其目的是找到一组模型参数,以最小化使用训练数据评估指标(如 BLEU)计算的预期损失。

使用单一语言语料库:THUMT 为 NMT 提供了半监督训练(SST)能力,能够利用丰富的单语语料库资源来改善源-目标和目标-源 NMT 模型的学习。

可视化,为了更好地了解 NMT 的内部工作,THUMT 提供了一个可视化工具来演示每个中间状态与其相关语境之间的相关性。

下载地址:http://thumt.thunlp.org/

3、Tensor2Tensor(模块化深度学习系统)

机器/深度学习NNabla、THUMT、Tensor2Tensor、Angel介绍

Tensor2Tensor 是一个模块化和可扩展的库和二进制文件,用于在 TensorFlow 中训练深度学习模型,并专注于序列任务。T2T 由 Google Brain 的研究人员和工程师积极使用和维护,力求最大限度地提高思想领域并最大限度地减少执行延迟。

T2T 能够帮助人们为各种机器学习程序创建最先进的模型,可应用于多个领域,如翻译、语法分析、图像信息描述等,大大提高了研究和开发的速度。

快速开始:

一个安装T2T,下载MNIST,训练模型并进行评估的单命令版本:

pip install tensor2tensor && t2t-trainer \

 --generate_data \

 --data_dir=~/t2t_data \

 --output_dir=~/t2t_train/mnist \

 --problem=image_mnist \

 --model=shake_shake \

 --hparams_set=shake_shake_quick \

 --train_steps=1000 \

 --eval_steps=100

下载地址:https://github.com/tensorflow/tensor2tensor

4、Angel(基于参数服务器理念的机器学习框架)

Angel 是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习平台,它基于腾讯内部的海量数据进行了反复的调优,并具有广泛的适用性和稳定性,模型维度越高,优势越明显。Angel 由腾讯和北京大学联合开发,兼顾了工业界的高可用性和学术界的创新性。

Angel 的核心设计理念围绕模型。它将高维度的大模型合理切分到多个参数服务器节点,并通过高效的模型更新接口和运算函数,以及灵活的同步协议,轻松实现各种高效的机器学习算法。

Angel 基于 Java 和 Scala 开发,能在社区的 Yarn 上直接调度运行,并基于 PS Service,支持 Spark on Angel,未来将会支持图计算和深度学习框架集成。

架构设计:

机器/深度学习NNabla、THUMT、Tensor2Tensor、Angel介绍

系统框架:

机器/深度学习NNabla、THUMT、Tensor2Tensor、Angel介绍

下载地址:https://github.com/Angel-ML/angel

注明

以上就是机器/深度学习NNabla、THUMT、Tensor2Tensor、Angel的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章