Gluon API

深度学习库
授权协议 Apache
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 宰父桐
操作系统 跨平台
开源组织 微软
适用人群 未知
 软件概览

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))
  • 使用Mxnet中的Gluoncv工具包训练模型,默认选项一般都只保存了参数文件,模型文件需要在测试的时候通过单独的程序文件加载,对于部署和测试来说有一定的麻烦。而Gluon中提供API可以将模型和参数一同保存,测试时不需要模型程序。我们以分类网络为例,介绍保存和加载模型的方法。 首先使用model_zoo加载模型和参数: import gluoncv from gluoncv.model_zoo

  • http://mxnet.apache.org/api/python/gluon/data.html import sys import os import time import mxnet as mx from mxnet import autograd,nd from mxnet import gluon,init from mxnet.gluon import data as gdata,

  • 参考:https://blog.csdn.net/kl28978113/article/details/80859951

  • gluon iOS设备上的Java? 来自Gluon( iOS上为Java,实际为 )的最新消息宣布, Gluon客户端插件现在提供了在iOS设备(或iPhone模拟器)上运行Java 11+和Java FX应用程序的配置。 借助Gluon Mobile,开发人员可以利用Java来创建iOS和Android应用程序,并利用他们已经熟悉的语言和生态系统来执行操作。 Gluon Mobile为客户端应

  • Code is working fine for Android 8 and 9, this issue only in Android 10. We can run in Android 10 by using the command adb shell settings put global hidden_api_policy 1. But this is again only device

  • gluon 移动解决方案提供商Gluon已发布JavaFX 12,这是自JavaFX与JDK(Java开发工具包)分离以来,该公司针对Java的第二版富客户端技术。 [ 15个Java框架使开发人员受益匪浅 。 • 哪些工具支持Java的新模块化功能 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ] JavaFX 12遵循Gluon于2018年9月发

  • 移动解决方案提供商Gluon已发布JavaFX 12,这是自JavaFX与JDK(Java开发工具包)分离以来,该公司针对Java的第二版富客户端技术。 [ 15个Java框架使开发人员受益匪浅 。 • 哪些工具支持Java的新模块化功能 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ] JavaFX 12是Gluon在2018年9月发行的JavaF

  • mxnet.recordio MXRecordIO Reads/writes RecordIO data format, supporting sequential read and write. record = mx.recordio.MXRecordIO('tmp.rec', 'w') for i in range(5): record.write('record_%d'%i) r

  • MXNet的深度学习引擎有两个主要的高级接口:Gluon API和Module API。下面提供了每个教程。 两者之间的区别是命令式编程和符号式编程风格。Gluon可以很容易地原型、构建和训练深度学习模型,而不牺牲训练速度,通过启用(1)直觉命令的Python代码开发和(2)通过使用杂交特征自动生成符号执行图来更快地执行。 TL;DR:如果您不熟悉深度学习或MXNet,您应该从Gluon教程开始。

 相关资料
  • 主要内容 课程列表 专项课程学习 辅助课程 论文专区 课程列表 课程 机构 参考书 Notes等其他资料 卷积神经网络视觉识别 Stanford 暂无 链接 神经网络 Tweet 暂无 链接 深度学习用于自然语言处理 Stanford 暂无 链接 自然语言处理 Speech and Language Processing 链接 专项课程学习 下述的课程都是公认的最好的在线学习资料,侧重点不同,但推

  • Google Cloud Platform 推出了一个 Learn TensorFlow and deep learning, without a Ph.D. 的教程,介绍了如何基于 Tensorflow 实现 CNN 和 RNN,链接在 这里。 Youtube Slide1 Slide2 Sample Code

  • 现在开始学深度学习。在这部分讲义中,我们要简单介绍神经网络,讨论一下向量化以及利用反向传播(backpropagation)来训练神经网络。 1 神经网络(Neural Networks) 我们将慢慢的从一个小问题开始一步一步的构建一个神经网络。回忆一下本课程最开始的时就见到的那个房价预测问题:给定房屋的面积,我们要预测其价格。 在之前的章节中,我们学到的方法是在数据图像中拟合一条直线。现在咱们不

  • 深度学习的总体来讲分三层,输入层,隐藏层和输出层。如下图: 但是中间的隐藏层可以是多层,所以叫深度神经网络,中间的隐藏层可以有多种形式,就构成了各种不同的神经网络模型。这部分主要介绍各种常见的神经网络层。在熟悉这些常见的层后,一个神经网络其实就是各种不同层的组合。后边介绍主要基于keras的文档进行组织介绍。

  • Python 是一种通用的高级编程语言,广泛用于数据科学和生成深度学习算法。这个简短的教程介绍了 Python 及其库,如 Numpy,Scipy,Pandas,Matplotlib,像 Theano,TensorFlow,Keras 这样的框架。

  • 你拿起这本书的时候,可能已经知道深度学习近年来在人工智能领域所取得的非凡进展。在图像识别和语音转录的任务上,五年前的模型还几乎无法使用,如今的模型的表现已经超越了人类。

  • 主要内容:机器学习,深度学习,机器学习与深度学习的区别,机器学习和深度学习的应用人工智能是近几年来最流行的趋势之一。机器学习和深度学习构成了人工智能。下面显示的维恩图解释了机器学习和深度学习的关系 - 机器学习 机器学习是让计算机按照设计和编程的算法行事的科学艺术。许多研究人员认为机器学习是实现人类AI的最佳方式。机器学习包括以下类型的模式 - 监督学习模式 无监督学习模式 深度学习 深度学习是机器学习的一个子领域,其中有关算法的灵感来自大脑的结构和功能,称为人工神经网络。

  • 主要内容:数据量,硬件依赖,特色工程在本章中,我们将讨论机器和深度学习概念之间的主要区别。 数据量 机器学习使用不同数量的数据,主要用于少量数据。另一方面,如果数据量迅速增加,深度学习可以有效地工作。下图描绘了机器学习和深度学习在数据量方面的工作 - 硬件依赖 与传统的机器学习算法相反,深度学习算法设计为在很大程度上依赖于高端机器。深度学习算法执行大量矩阵乘法运算,这需要巨大的硬件支持。 特色工程 特征工程是将领域知识放入指定特征的