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 相关文章推荐
Python异常处理总结
Aug 15 Python
python实现的希尔排序算法实例
Jul 01 Python
python socket多线程通讯实例分析(聊天室)
Apr 06 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
Django 全局的static和templates的使用详解
Jul 19 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
python 日志 logging模块详细解析
Mar 31 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 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 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
vue实现购物车案例
2020/05/30 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
Python异常处理总结
2014/08/15 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
2014年自我评价
2014/01/04 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
后备干部培训方案
2014/05/22 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python
Django中celery的使用项目实例
2022/07/07 Python