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类的多重继承问题深入分析
Nov 09 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python书单 不将就
Jul 11 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
python分析作业提交情况
Nov 22 Python
分享一个简单的python读写文件脚本
Nov 25 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
python 操作hive pyhs2方式
Dec 21 Python
python简单实现插入排序实例代码
Dec 16 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 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
jquery 1.3.2 IE8中的一点点的小问题解决方法
2009/07/10 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
angular学习之从零搭建一个angular4.0项目
2017/07/10 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
vue ssr 指南详读
2018/06/29 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python根据日期返回星期几的方法
2015/07/06 Python
python字符串对其居中显示的方法
2015/07/11 Python
Python的条件语句与运算符优先级详解
2015/10/13 Python
Python实现堆排序的方法详解
2016/05/03 Python
python+Django+apache的配置方法详解
2016/06/01 Python
Python中如何获取类属性的列表
2016/12/26 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
总经理任命书范本
2014/06/05 职场文书
护士节活动总结
2014/08/29 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
公司合并协议书范本
2014/09/30 职场文书
事业单位考察材料范文
2014/12/25 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android