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自动生产表情包
Mar 17 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
python实现低通滤波器代码
Feb 26 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
python集合的新增元素方法整理
Dec 07 Python
python中re模块知识点总结
Jan 17 Python
Python 键盘事件详解
Nov 11 Python
Python使用MapReduce进行简单的销售统计
Apr 22 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中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
请php正则走开
2008/03/15 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
prototype1.4中文手册
2006/09/22 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
通过JS运行机制的角度说说作用域
2019/03/12 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
写了个监控nginx进程的Python脚本
2012/05/10 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
python3 字符串知识点学习笔记
2020/02/08 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
美国折扣网站:jClub
2017/08/07 全球购物
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
一道Delphi上机题
2012/06/04 面试题
揠苗助长教学反思
2014/02/04 职场文书
调解协议书
2014/04/16 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
详解Nginx启动失败的几种错误处理
2021/04/01 Servers
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技