Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例


Posted in Python onDecember 18, 2019

本文实例讲述了Python使用gluon/mxnet模块实现的mnist手写数字识别功能。分享给大家供大家参考,具体如下:

import gluonbook as gb
from mxnet import autograd,nd,init,gluon
from mxnet.gluon import loss as gloss,data as gdata,nn,utils as gutils
import mxnet as mx
net = nn.Sequential()
with net.name_scope():
  net.add(
    nn.Conv2D(channels=32, kernel_size=5, activation='relu'),
    nn.MaxPool2D(pool_size=2, strides=2),
    nn.Flatten(),
    nn.Dense(128, activation='sigmoid'),
    nn.Dense(10, activation='sigmoid')
  )
lr = 0.5
batch_size=256
ctx = mx.gpu()
net.initialize(init=init.Xavier(), ctx=ctx)
train_data, test_data = gb.load_data_fashion_mnist(batch_size)
trainer = gluon.Trainer(net.collect_params(),'sgd',{'learning_rate' : lr})
loss = gloss.SoftmaxCrossEntropyLoss()
num_epochs = 30
def train(train_data, test_data, net, loss, trainer,num_epochs):
  for epoch in range(num_epochs):
    total_loss = 0
    for x,y in train_data:
      with autograd.record():
        x = x.as_in_context(ctx)
        y = y.as_in_context(ctx)
        y_hat=net(x)
        l = loss(y_hat,y)
      l.backward()
      total_loss += l
      trainer.step(batch_size)
    mx.nd.waitall()
    print("Epoch [{}]: Loss {}".format(epoch, total_loss.sum().asnumpy()[0]/(batch_size*len(train_data))))
if __name__ == '__main__':
  try:
    ctx = mx.gpu()
    _ = nd.zeros((1,), ctx=ctx)
  except:
    ctx = mx.cpu()
  ctx
  gb.train(train_data,test_data,net,loss,trainer,ctx,num_epochs)

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
python3.5实现socket通讯示例(TCP)
Feb 07 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
python实现简单聊天应用 python群聊和点对点均实现
Sep 14 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
Selenium的使用详解
Oct 19 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
Jan 15 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
python找出因数与质因数的方法
Jul 25 Python
Python random模块的使用示例
Oct 10 Python
python实现磁盘日志清理的示例
Nov 05 Python
简单了解Python读取大文件代码实例
Dec 18 #Python
python 比较2张图片的相似度的方法示例
Dec 18 #Python
使用Python的Turtle库绘制森林的实例
Dec 18 #Python
python3 requests库实现多图片爬取教程
Dec 18 #Python
在notepad++中实现直接运行python代码
Dec 18 #Python
简单了解python装饰器原理及使用方法
Dec 18 #Python
修改Pandas的行或列的名字(重命名)
Dec 18 #Python
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python统计日志ip访问数的方法
2015/07/06 Python
Python获取当前路径实现代码
2017/05/08 Python
python requests 使用快速入门
2017/08/31 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python实现决策树分类
2018/08/30 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
电子技术专业中专生的自我评价
2013/12/17 职场文书
解除处分决定书
2015/06/25 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫