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 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python之os操作方法(详解)
Jun 15 Python
Python机器学习之决策树算法
Dec 22 Python
python中的字典操作及字典函数
Jan 03 Python
python 获取url中的参数列表实例
Dec 18 Python
python实现三维拟合的方法
Dec 29 Python
python3 深浅copy对比详解
Aug 12 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
Python txt文件如何转换成字典
Nov 03 Python
python使用pymysql模块操作MySQL
Jun 16 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合并数组中相同元素的方法
2014/11/13 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
实例讲解python中的序列化知识点
2018/10/08 Python
python批量爬取下载抖音视频
2019/06/17 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Python如何将模块打包并发布
2020/08/30 Python
应届生人事助理求职信
2013/11/09 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
个人简历自我评价
2014/02/02 职场文书
物资采购方案
2014/06/12 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
狂人日记读书笔记
2015/06/30 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
《穷人》教学反思
2016/02/19 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
这样写python注释让代码更加的优雅
2021/06/02 Python
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏