当前位置: 首页>开源软件>正文

Gluon-微软开源的深度学习库

  • 授权协议:Apache
  • 开发厂商:未知
  • 开发语言:python
  • 收录时间:2020-03-20
  • 操作系统:Windows,Linux,OS X
  • 软件作者:mirrors
  • 开源标签: gluon 机器学习 深度学习

软件介绍

微软联合亚马逊推出的一个开源深度学习库"

0a275202d7a69a13e5b3bd5515574c0a.png

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

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

主要优势包括:

  • 代码简单,易于理解

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

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

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

示例代码:

import   mxnet   as   mxfrom   mxnet   import   gluon,   autograd,   ndarrayimport   numpy   as   nptrain_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   modelnet   =   gluon.nn.Sequential()#   Then,   define   your   model   architecturewith   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.05net.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   answersoftmax_cross_entropy   =   gluon.loss.SoftmaxCrossEntropyLoss()#   We   opt   to   use   the   stochastic   gradient   descent   (sgd)   training   algorithm#   and   set   the   learning   rate   hyperparameter   to   .1trainer   =   gluon.Trainer(net.collect_params(),   'sgd',   {'learning_rate':   .1})epochs   =   10for   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))

上一篇:PHP-ML功能强大的PHP机器学习库

您可能感兴趣的文章

相关阅读