机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:TensorWatch(机器学习调试和可视化工具)、BytePS(高性能分布式深度学习训练框架)、OpenAI Gym(强化学习算法工具包)、NeuronBlocks(模块化 NLP 深度学习建模工具包)。

1、TensorWatch(机器学习调试和可视化工具)

机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks介绍

TensorWatch 是一个调试和可视化工具,专为 Microsoft Research 的数据科学,深度学习和强化学习而设计。它适用于Jupyter Notebook,可显示机器学习培训的实时可视化,并为您的模型和数据执行其他几项关键分析任务。

TensorWatch旨在灵活且可扩展,因此您还可以构建自己的自定义可视化,UI和仪表板。除了传统的“所见即所见”方法外,它还具有针对您的实时ML培训流程执行任意查询的独特功能,作为查询结果返回流并使用以下方式查看此流您选择的可视化工具(我们称之为惰性日志记录模式)。

TensorWatch 正在大力发展,其目标是通过一个易于使用,可扩展和可破解的软件包提供调试机器学习的平台。

获取:

pip install tensorwatch

TensorWatch支持Python 3.x,并已通过PyTorch 0.4-1.x进行了测试,大多数功能也应与TensorFlow一起使用。

示例代码:

import tensorwatch as tw

import time

# streams will be stored in test.log file

w = tw.Watcher(filename='test.log')

# create a stream for logging

s = w.create_stream(name='metric1')

# generate Jupyter Notebook to view real-time streams

w.make_notebook()

for i in range(1000):

# write x,y pair we want to log

s.write((i, i*i)) 

time.sleep(1)

下载地址:https://github.com/microsoft/tensorwatch

2、BytePS(高性能分布式深度学习训练框架)

机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks介绍

BytePS 是字节跳动开源的高性能分布式深度学习训练框架,官方宣称 BytePS 在性能上颠覆了过去几年 allreduce 流派一直占据上风的局面,超出目前其他所有分布式训练框架一倍以上的性能,且同时能够支持 Tensorflow、PyTorch、MXNet 等开源库。

BytePS 通过实现一个通用的抽象层,抽象层可以被各种通用框架引用,实现了同时支持多个框架的可能性,因此能够支持 Tensorflow、PyTorch、MXNet 等行业主流训练框架。

BytePS 提供了 TensorFlow、PyTorch、MXNet 以及 Keras 的插件,用户只要在代码中引用 BytePS 的插件,就可以获得高性能的分布式训练。

BytePS 的核心逻辑则实现在 BytePS core 里。具体的通信细节完全由 BytePS 完成,用户完全不需要操心。

从源代码进行构建:

git clone --recurse-submodules https://github.com/bytedance/byteps

cd byteps

python setup.py install

下载地址:https://github.com/bytedance/byteps

3、OpenAI Gym(强化学习算法工具包)

OpenAI Gym 是一个用于开发和比较强化学习算法的工具包。

gym 不对代理的结构做任何假设,并且与任何数值计算库兼容,例如 TensorFlow 或 Theano。

有关 OpenAI Gym 的白皮书,请访问 http://arxiv.org/abs/1606.01540,这里有一个 BibTeX 条目,可以在出版物中引用它:

@misc{1606.01540,

 Author = {Greg Brockman and Vicki Cheung and Ludwig Pettersson and Jonas Schneider and John Schulman and Jie Tang and Wojciech Zaremba},

 Title = {OpenAI Gym},

 Year = {2016},

 Eprint = {arXiv:1606.01540},

}

Basics:

强化学习有两个基本概念:环境(即外部世界)和代理(即你正在编写的算法)。代理向环境发送操作,环境回复观察和奖励(即分数)。

核心的 gym 界面是 Env,它是统一的环境界面,没有代理商界面,以下是应该了解的 Env 方法:

1]、reset(self)::重置环境的状态,返回观察。

2]、step(self, action):一步一步进入环境,返回观察、奖励、完成、信息。

3]、render(self, mode='human'):渲染一帧环境,默认模式将执行人性化的操作,例如弹出窗口。

安装:

可以执行最小的安装:

git clone https://github.com/openai/gym.git

cd gym

pip install -e .

可以直接从 PyPI 进行最小的打包版本安装:

pip install gym

可以立即运行一些环境:

算法、toy_text、classic_control(需要 pyglet 来渲染)。

建议首先使用这些环境,然后再安装其余环境的依赖项。

下载地址:https://github.com/openai/gym

4、NeuronBlocks(模块化 NLP 深度学习建模工具包)

NeuronBlocks:像搭积木一样构建自然语言理解深度学习模型。

概览:

NeuronBlocks 是一个模块化 NLP 深度学习建模工具包,可以帮助工程师/研究者们快速构建 NLP 任务的神经网络模型。 该工具包的主要目标是将 NLP 中深度神经网络模型构建的开发成本降到最低,包括训练阶段和推断阶段。

NeuronBlocks 包括 Block Zoo 和 Model Zoo 两个重要组件,其整体框架如下图所示。

1]、在 Block Zoo 中, 我们提供了常用的神经网络组件作为模型架构设计的构建模块。

2]、在 Model Zoo 中, 我们提供了 JSON配置文件 形式的一系列经典 NLP 深度学习模型。

机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks介绍

支持的语言:

English、中文。

支持的 NLP 任务:

句子分类、情感分析、问答匹配、文本蕴含、序列标注、阅读理解、基于知识蒸馏的模型压缩。

使用方法:

用户可以选择 Model Zoo 中的示例模型(JSON 配置文件)开启模型训练,或者利用 Block Zoo 中的神经网络模块构建新的模型,就像玩乐高积木一样。

机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks介绍

安装:

注:NeuronBlocks支持 Python 3.6及以上。

Clone本项目:

git clone https://github.com/Microsoft/NeuronBlocks

安装Python依赖包:

pip install -r requirements.txt

安装PyTorch ( NeuronBlocks支持 PyTorch 0.4.1 及以上):

对于 Linux,运行以下命令:

pip install "torch>=0.4.1"

快速开始:

通过以下示例快速入门NeuronBlocks,对于Windows,建议使用PowerShell工具运行命令。

提示: 在下文中,PROJECTROOT表示本项目的根目录。

# 训练

cd PROJECT_ROOT

python train.py --conf_path=model_zoo/demo/conf.json

# 测试

python test.py --conf_path=model_zoo/demo/conf.json

# 预测

python predict.py --conf_path=model_zoo/demo/conf.json

适用人群:

使用用神经网络模型解决NLP任务时面临以下挑战的工程师和研究者们:

1]、很多框架可以选择,且框架学习成本高。

2]、繁重的编程工作,大量细节使其难以调试。

3]、快速迭代的模型架构,使工程师们很难完全理解其背后的数学原理。

4]、模型代码优化需要深厚的专业知识。

5]、平台兼容性要求,需要额外的编程工作才能使模型运行在不同的平台上,如Linux/Windows、GPU/CPU。

利用 NeuronBlocks 进行 NLP 神经网络模型训练的优势包括:

模型构建:用户只需要配置简单的 JSON 文件,就能够构建模型和调整参数,大大减少了模型实现的工作量。

模型分享:可以通过分享 JSON 配置文件来分享模型,使模型共享变得非常容易。对于不同的任务或模型,用户只需维护一个通用的源码库。

代码重用:可以在各任务与模型间共享神经网络模块,减少重复的编程工作。

平台灵活性:NeuronBlocks 可以在 Linux 和 Windows 机器上运行,支持 CPU 和 GPU,也支持像 Philly 和 PAI 这样的 GPU 管理平台。

机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks介绍

模型可视化:NeuronBlocks 提供了一个模型可视化工具,用于观察模型结构及检查 JSON 配置的正确性。

可扩展性:NeuronBlocks 鼓励用户贡献新的神经网络模块或者新的模型。

下载地址:https://github.com/microsoft/NeuronBlocks

注明

以上就是机器/深度学习TensorWatch、BytePS、OpenAI Gym、NeuronBlocks的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章