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多重继承新算法C3介绍
Sep 28 Python
python制作花瓣网美女图片爬虫
Oct 28 Python
python中单下划线_的常见用法总结
Jul 10 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
python利用百度AI实现文字识别功能
Nov 27 Python
python的内存管理和垃圾回收机制详解
May 18 Python
python实现关闭第三方窗口的方法
Jun 28 Python
wxPython实现整点报时
Nov 18 Python
Python使用matplotlib绘制Logistic曲线操作示例
Nov 28 Python
python的json包位置及用法总结
Jun 21 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
详解MindSpore自定义模型损失函数
Jun 30 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/04/13 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP微信API接口类
2016/08/22 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
浅谈Vue.js
2017/03/02 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
Python生成随机数的方法
2014/01/14 Python
wxPython中listbox用法实例详解
2015/06/01 Python
浅谈Python中的闭包
2015/07/08 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
在windows下快速搭建web.py开发框架方法
2016/04/22 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
Python连接mysql方法及常用参数
2020/09/01 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
2014/04/02 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
捷克汽车配件和工具销售网站:TorriaCars
2018/02/26 全球购物
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
初中班级口号
2014/06/09 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python