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 25 Python
python正则表达式re之compile函数解析
Oct 25 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python函数定义和调用过程详解
Feb 09 Python
scrapy处理python爬虫调度详解
Nov 23 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
python字符串的多行输出的实例详解
Jun 08 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多个字符串替换成同一个的解决方法
2013/06/18 PHP
理解PHP中的stdClass类
2014/04/18 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
three.js实现圆柱体
2018/12/30 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
Python实现获取命令行输出结果的方法
2017/06/10 Python
python解决js文件utf-8编码乱码问题(推荐)
2018/05/02 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python中dict和set的用法讲解
2019/03/28 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
python 实现汉诺塔游戏
2020/11/28 Python
如何编写python的daemon程序
2021/01/07 Python
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
会计实习生自我鉴定
2013/12/12 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书