写点什么

AWS 与微软合作发布 Gluon API 可快速构建机器学习模型

  • 2017-10-18
  • 本文字数:1422 字

    阅读完需:约 5 分钟

2017 年 10 月 12 日, AWS 与微软合作发布了 Gluon 开源项目,该项目旨在帮助开发者更加简单快速的构建机器学习模型,同时保留了较好的性能。

根据 Gluon 项目官方 Github 页面上的描述,Gluon API 支持任意一种深度学习框架,其相关规范已经在 Apache MXNet 项目中实施,开发者只需安装最新版本的 MXNet(master)即可体验。AWS 用户可以创建一个AWS Deep Learning AMI 进行体验。

该页面提供了一段简易使用说明,摘录如下:

本教程以一个两层神经网络的构建和训练为例,我们将它称呼为多层感知机(multilayer perceptron)。(本示范建议使用Python 3.3 或以上,并且使用 Jupyter notebook 来运行。详细教程可参考这个页面。)

首先,进行如下引用声明:

复制代码
import mxnet as mx
from mxnet import gluon, autograd, ndarray
import numpy as np

然后,使用gluon.data.DataLoader承载训练数据和测试数据。这个 DataLoader 是一个 iterator 对象类,非常适合处理规模较大的数据集。

复制代码
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)

接下来,定义神经网络:

复制代码
# 先把模型做个初始化
net = gluon.nn.Sequential()
# 然后定义模型架构
with net.name_scope():
net.add(gluon.nn.Dense(128, activation="relu")) # 第一层设置 128 个节点
net.add(gluon.nn.Dense(64, activation="relu")) # 第二层设置 64 个节点
net.add(gluon.nn.Dense(10)) # 输出层

然后把模型的参数设置一下:

复制代码
# 先随机设置模型参数
# 数值从一个标准差为 0.05 正态分布曲线里面取
net.collect_params().initialize(mx.init.Normal(sigma=0.05))
# 使用 softmax cross entropy loss 算法
# 计算模型的预测能力
softmax_cross_entropy = gluon.loss.SoftmaxCrossEntropyLoss()
# 使用随机梯度下降算法 (sgd) 进行训练
# 并且将学习率的超参数设置为 .1
trainer = gluon.Trainer(net.collect_params(), 'sgd', {'learning_rate': .1})

之后就可以开始跑训练了,一共分四个步骤。一、把数据放进去;二、在神经网络模型算出输出之后,比较其与实际结果的差距;三、用 Gluon 的autograd计算模型各参数对此差距的影响;四、用 Gluon 的trainer方法优化这些参数以降低差距。以下我们先让它跑 10 轮的训练:

复制代码
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))

若想了解更多 Gluon 说明与用法,可以查看 gluon.mxnet.io 这个网站。

2017-10-18 20:242170

评论

发布
暂无评论
发现更多内容

服务器的操作系统有哪些?

Geek_f19a80

服务器

大量索引场景下 Easysearch 和 Elasticsearch 的吞吐量差异

极限实验室

数据库 搜索引擎 elasticsearch 吞吐量 easysearch

老板抱怨网站投入没效果?掌握这份运营秘诀效果直接起飞

轶天下事

商场如战场!华为云助力企业打赢云服务器之战

平平无奇爱好科技

小程序创业是伪命题?华为云耀云服务器L实例铺开初创企业发展新蓝图

平平无奇爱好科技

企业建站服务器选“懵逼”了?照着华为云的思路买准没错!

平平无奇爱好科技

2. 商品那些模型

Joy

2023-11-25:用go语言,给定一个数组arr,长度为n,表示n个格子的分数,并且这些格子首尾相连, 孩子不能选相邻的格子,不能回头选,不能选超过一圈, 但是孩子可以决定从任何位置开始选,也可以

福大大架构师每日一题

福大大架构师每日一题

SQL 中的运算符与别名:使用示例和语法详解

小万哥

MySQL 数据库 程序员 sql 后端开发

FFA 2023 「行业实践」专场: 金融/电力/汽车/互联网等多行业最佳实践

Apache Flink

flink

遥遥领先!TinyEngine 低代码引擎更新升级!

OpenTiny社区

开源 前端 低代码

LED面板显示屏驱动芯片

芯动大师

天翼云智算基础设施平台“云骁”,驱动智算产业创新发展

极客天地

超强新品叠加价格特惠,华为云助力小程序开发红海“掘金”

轶天下事

“云”端赛马 “算”出未来丨华为云轻量应用服务器助力企业换道超车

平平无奇爱好科技

让小程序开发稳步快跑,这款轻量应用服务器凭实力说话

轶天下事

3. 跨境卖全球框架

Joy

5. IM系统

Joy

6. 账号系统

Joy

Kubernetes 漫游:etcd

Phoenix

快速从入门到精通,华为云耀云服务器L实例让小程序开发更简单

平平无奇爱好科技

跨境电商独立站太烧钱?中小企业老板快收藏华为云这份省钱秘笈

轶天下事

流量为王时代,华为云耀云服务器L实例让网站建设不焦虑

轶天下事

拒绝成为“时代的眼泪”,华为云这款服务器赋能企业高效转型

轶天下事

4. 爬虫系统

Joy

爬虫实战

Rectangle Pro for Mac 窗口布局增强工具

繁星

Rectangle Pro for Mac

感恩有你|恭喜 OpenTiny Vue 开源组件库喜迎1000+star!!!

OpenTiny社区

开源 前端 UI组件库

FFA 2023 「流式湖仓」专场:从技术原理到应用实践打造流式湖仓新架构

Apache Flink

大数据 flink 实时计算

钱少事少效率高,华为云这款轻量应用服务器真乃职场神器

轶天下事

1. 商品CPV模型

Joy

AWS与微软合作发布Gluon API 可快速构建机器学习模型_微软_sai_InfoQ精选文章