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的最佳方式。机器学习包括以下类型的模式 - 监督学习模式 无监督学习模式 深度学习 深度学习是机器学习的一个子领域,其中有关算法的灵感来自大脑的结构和功能,称为人工神经网络。
主要内容:数据量,硬件依赖,特色工程在本章中,我们将讨论机器和深度学习概念之间的主要区别。 数据量 机器学习使用不同数量的数据,主要用于少量数据。另一方面,如果数据量迅速增加,深度学习可以有效地工作。下图描绘了机器学习和深度学习在数据量方面的工作 - 硬件依赖 与传统的机器学习算法相反,深度学习算法设计为在很大程度上依赖于高端机器。深度学习算法执行大量矩阵乘法运算,这需要巨大的硬件支持。 特色工程 特征工程是将领域知识放入指定特征的