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、Javascript中的闭包比较
Feb 04 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python面向对象之私有属性和私有方法应用案例分析
Dec 31 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
Python requests库参数提交的注意事项总结
Mar 29 Python
Python Pandas解析读写 CSV 文件
Apr 11 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 empty函数 使用说明
2009/08/10 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
2020/05/01 PHP
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
JSONP获取Twitter和Facebook文章数的具体步骤
2014/02/24 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
js实现自定义路由
2017/02/04 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
Monki官网:斯堪的纳维亚的独立时尚品牌
2020/11/09 全球购物
大学生应聘自荐信
2013/10/11 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
委托证明模板
2014/09/16 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
Oracle更换为MySQL遇到的问题及解决
2021/05/21 Oracle
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
git stash(储藏)的用法总结
2022/06/25 Servers