机器/深度学习Coach、Gluon、Arbiter、Eclipse Deeplearning4J介绍

以下为你介绍的机器学习/深度学习软件都可用在Linux系统上:Coach(Python 强化学习研究框架)、Gluon(深度学习库)、Arbiter(机器学习算法评估工具)、Eclipse Deeplearning4J(深度学习应用程序)。

1、Coach(Python 强化学习研究框架)

机器/深度学习Coach、Gluon、Arbiter、Eclipse Deeplearning4J介绍

Coach 是 Intel Nervana 开源的一个强化学习研究框架,包含许多最先进的算法的实现。该框架利用多核 CPU 处理能力,用于训练和评估增强学习 Agent。Coach 包含一些领先的增强学习算法的多线程实现,适用于各种游戏和机器人环境。

Coach 是一个 Python 环境,有了 Coach,我们就有可能通过结合不同的模块对智能体建模了,也能在不同的环境中训练智能体。可使用的环境,让我们能在不同的实务领域测试智能体,比如机器人、自动驾驶汽车、游戏等。Coach 能够收集训练过程的统计数据,并支持高级可视化技术,从而 debug 训练的智能体。

Coach 有非常易于使用的 API,用于实验新的 RL 算法,并允许新环境的简单集成来解答。基本的 RL 组件(算法、环境、神经网络架构、探索策略等)能很好的解耦,因此能无痛扩展和重用现有的组件。

简单示例:

python coach.py -p CartPole_DQN -r

下载地址:https://github.com/NervanaSystems/coach

2、Gluon(深度学习库)

机器/深度学习Coach、Gluon、Arbiter、Eclipse Deeplearning4J介绍

Gluon 是微软联合亚马逊推出的一个开源深度学习库,这是一个清晰、简洁、简单但功能强大的深度学习 API,该规范可以提升开发人员学习深度学习的速度,而无需关心所选择的深度学习框架。Gluon API 提供了灵活的接口来简化深度学习原型设计、创建、训练以及部署,而且不会牺牲数据训练的速度。

Gluon 规范已经在 Apache MXNet 中实现,只需要安装最新的 MXNet 即可使用。推荐使用 Python 3.3 或者更新版本。

主要优势包括:

代码简单,易于理解。

灵活,命令式结构: 不需要严格定义神经网络模型,而是将训练算法和模型更紧密地结合起来,开发灵活。

动态图: Gluon 可以让开发者动态的定义神经网络模型,这意味着他们可以在运行时创建模型、结构,以及使用任何 Python 原生的控制流。

高性能: Gluon 所提供的这些优势对底层引擎的训练速度并没有任何影响。

示例代码:

import mxnet as mx

from mxnet import gluon, autograd, ndarray

import numpy as np

train_data = mx.gluon.data.DataLoader(mx.gluon.data.vision.MNIST(train=True, 

 transform=lambda data, label: (data.astype(np.float32)/255, label)),

 batch_size=32, shuffle=True)

test_data = mx.gluon.data.DataLoader(mx.gluon.data.vision.MNIST(train=False, 

 transform=lambda data, label: (data.astype(np.float32)/255, label)),

 batch_size=32, shuffle=False)                     

# First step is to initialize your model

net = gluon.nn.Sequential()

# Then, define your model architecture

with net.name_scope():

net.add(gluon.nn.Dense(128, activation="relu")) # 1st layer - 128 nodes

net.add(gluon.nn.Dense(64, activation="relu")) # 2nd layer – 64 nodes

net.add(gluon.nn.Dense(10)) # Output layer

# We start with random values for all of the model’s parameters from a

# normal distribution with a standard deviation of 0.05

net.collect_params().initialize(mx.init.Normal(sigma=0.05))

# We opt to use softmax cross entropy loss function to measure how well the # model is able to predict the correct answer

softmax_cross_entropy = gluon.loss.SoftmaxCrossEntropyLoss()

# We opt to use the stochastic gradient descent (sgd) training algorithm

# and set the learning rate hyperparameter to .1

trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': .1})

epochs = 10

for e in range(epochs):

for i, (data, label) in enumerate(train_data):

data = data.as_in_context(mx.cpu()).reshape((-1, 784))

label = label.as_in_context(mx.cpu())

with autograd.record(): # Start recording the derivatives

output = net(data) # the forward iteration

loss = softmax_cross_entropy(output, label)

loss.backward()

trainer.step(data.shape[0])

# Provide stats on the improvement of the model over each epoch

curr_loss = ndarray.mean(loss).asscalar()

print("Epoch {}. Current Loss: {}.".format(e, curr_loss))

下载地址:https://github.com/gluon-api/gluon-api/

3、Arbiter(机器学习算法评估工具)

专门用于评估和调整机器学习模型的工具。用于企业的 DL4J 机器学习套件/深度学习工具的一部分。

Arbiter 包含以下模块:

arbiter-core:定义API和核心功能,还包含Arbiter UI的功能。

arbiter-deeplearning4j:用于DL4J模型(MultiLayerNetwork和ComputationGraph网络)的超参数优化。

Arbiter 的开源版本目前定义了两种超参数优化方法:

网格搜索。

随机搜索。

下载地址:https://github.com/deeplearning4j/Arbiter

4、Eclipse Deeplearning4J(深度学习应用程序)

Eclipse Deeplearning4J 有助于构建涵盖从数据预处理到部署的深入学习产品的整个生命周期的深度学习应用程序。

Eclipse Deeplearning4j 的目标是为构建应用程序提供一组核心组件,涵盖构建智能AI产品的整个生命周期。企业内部的智能AI产品通常具有比机器学习部分更广泛的范围。提供分发的总体目标是提供一种建立深入学习应用的方式,涵盖构建AI产品的整个生命周期。

使用Deeplearning4j的新monorepo,除了将Deeplearning4j的原始存储库移至deeplearning4j之外,它还包含以下所有项目的源代码:

https://github.com/eclipse/deeplearning4j/tree/master/libnd4j

https://github.com/eclipse/deeplearning4j/tree/master/nd4j

https://github.com/eclipse/deeplearning4j/tree/master/datavec

https://github.com/eclipse/deeplearning4j/tree/master/arbiter

https://github.com/eclipse/deeplearning4j/tree/master/nd4s

https://github.com/eclipse/deeplearning4j/tree/master/gym-java-client

https://github.com/eclipse/deeplearning4j/tree/master/rl4j

https://github.com/eclipse/deeplearning4j/tree/master/scalnet

https://github.com/eclipse/deeplearning4j/tree/master/pydl4j

https://github.com/eclipse/deeplearning4j/tree/master/jumpy

https://github.com/eclipse/deeplearning4j/tree/master/pydatavec

要构建,我们可以使用如下命令:

./change-cuda-versions.sh x.x

./change-scala-versions.sh 2.xx

./change-spark-versions.sh x

mvn clean install -Dmaven.test.skip -Dlibnd4j.cuda=x.x -Dlibnd4j.compute=xx

要么:

mvn -B -V -U clean install -pl '!jumpy,!pydatavec,!pydl4j' -Dlibnd4j.platform=linux-x86_64 -Dlibnd4j.chip=cuda -Dlibnd4j.cuda=9.2 -Dlibnd4j.compute=<your GPU CC> -Djavacpp.platform=linux-x86_64 -Dmaven.test.skip=true

Titan X Pascal的GPU“CC”或计算功能示例为61。

下载地址:https://github.com/eclipse/deeplearning4j

注明

以上就是机器/深度学习Coach、Gluon、Arbiter、Eclipse Deeplearning4J的介绍内容,这些机器学习/深度学习软件都能使用在Linux操作系统中。

栏目相关文章