用RNN做MNIST分类

深度学习-使用RNN-LSTM分类MNIST数据集 传统CNN有一个主要特点,就是没有记忆,他们单独处理每个输入,在输入和输入之间没有保存任何状态,对于这样的网络,有些事是无法较好实现的。 比如像阅读一篇文章或者一个句子,需要不断地对输入信息进行整合理解,才能更好的解决问题,这时候就需要用到RNN(循环神经网络)。RNN简单理解就是一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之... 阅读详情

1.前言


RNN常用作NLP中,像图片生成文字、自动生成古诗词等。这篇文章用RNN做MNIST手写数字识别,分类效果虽然没有CNN效果好,但准确率也能够达到96%。

2.环境


Mac os系统,python:3.5,Keras


3.代码实现

import numpy as np
np.random.seed(1337)  
 
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import SimpleRNN, Activation, Dense
from keras.optimizers import Adam
 
TIME_STEPS = 28     
INPUT_SIZE = 28    
BATCH_SIZE = 50
BATCH_INDEX = 0
OUTPUT_SIZE = 10
CELL_SIZE = 50
LR = 0.001
 
(X_train, y_train), (X_test, y_test) = mnist.load_data()
 
# data pre-processing
X_train = X_train.reshape(-1, 28, 28) / 255.      # normalize
X_test = X_test.reshape(-1, 28, 28) / 255.        # normalize
y_train = np_utils.to_categorical(y_train, num_classes=10)
y_test = np_utils.to_categorical(y_test, num_classes=10)
 
# build RNN model
model = Sequential()
 
# RNN cell
model.add(SimpleRNN(
    batch_input_shape=(None, TIME_STEPS, INPUT_SIZE),       
    output_dim=CELL_SIZE,
    unroll=True,
))
 
# output layer
model.add(Dense(OUTPUT_SIZE))
model.add(Activation('softmax'))
 
# optimizer
adam = Adam(LR)
model.compile(optimizer=adam,
              loss='categorical_crossentropy',
              metrics=['accuracy'])
 
# training
for step in range(40001):
    X_batch = X_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, :, :]
    Y_batch = y_train[BATCH_INDEX: BATCH_INDEX+BATCH_SIZE, :]
    cost = model.train_on_batch(X_batch, Y_batch)
    BATCH_INDEX += BATCH_SIZE
    BATCH_INDEX = 0 if BATCH_INDEX >= X_train.shape[0] else BATCH_INDEX
 
    if step % 500 == 0:
        cost, accuracy = model.evaluate(X_test, y_test, batch_size=y_test.shape[0], verbose=False)
        print('test cost: ', cost, 'test accuracy: ', accuracy)

4.结果

基于循环神经网络(RNN)和长短期记忆(LSTM)的MNIST手写数字识别 我们首先介绍MNIST数据集,然后解决在Jupyter环境中启动时可能遇到的"No module named ‘resource’"错误。MNIST数据集是机器学习中常用的数据集之一,它包含了一系列手写数字图像,每个图像都对应一个标签,表示该图像所代表的数字。我们的目标是根据给定的图像,正确地预测出相应的数字。MNIST数据集是机器学习中常用的数据集之一,它包含了一系列手写数字图像,每个图像都对应一个标签,表示该图像所代表的数字。我们的目标是根据给定的图像,正确地预测出相应的数字。 阅读详情

相关推荐

基于Matlab实现的ANN、DNN网络对MNIST数据分类源码+MNIST数据集+项目说明.zip

【资源说明】 基于Matlab实现的ANN、DNN网络对MNIST数据分类源码+MNIST数据集+项目说明.zip 基于Matlab的ANN、DNN分类网络实现 本项目实现了一个人工神经网络,旨在使用深度学习识别和分类手写数字,再根据分类参数重现手写数字图片。使用混淆矩阵对性能进行评估,并分析反向传播法(unscaled heruristic/ calculus-based)和性能指标(TSE/XE)对模型的影响。 ## 文件说明 annID.m功能为识别手写数字并且分类数字是否属于ID annIDrev.m功能为将id的数字按顺序生成手写数字图片 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

torch07:RNN--MNIST识别和自己数据集

MachineLP的Github(欢迎follow):https://github.com/MachineLP本小节使用torch搭建CNN模型,训练和测试:(1)定义模型超参数:rnn的输入,rnn隐含单元,rnn层数,迭代次数、批量大小、学习率。(2)定义训练数据,加餐部分是使用自己的数据集:(可参考:https://blog.youkuaiyun.com/u014365862/article/detai...

MachineLP的专栏 1899

F5 GTM DNS 实战指南:智能DNS的监控与健康检查机制

本文深入解析F5 BIG-IP GTM智能DNS的核心机制,重点阐述其监控与探针两大功能如何协同工作。监控器负责深度检查服务器应用健康,确保服务可用性;探针则实时测量网络路径质量,实现基于延迟的智能流量调度。文章通过实战配置步骤,指导如何构建逻辑架构、建立iQuery通信、配置业务级健康检查及探针,从而构建高可用、高性能的全局负载均衡解决方案。

weixin_29240711的博客 469

10-RNN网络模型之MNIST分类

一、前言 本篇将以RNN(Recurrent Neural Network)(循环神经网络)的网络结构来对我们熟知的MNIST数据集做分类模型训练,MNIST数据集在前面的文章中有简要的介绍,这里不做赘述,仅在下面的代码中有相应的注释信息。 二、介绍 RNN:循环神经网络是一类用于处理序列数据的神经网络,就像卷积网络是专门用于处理网格化数据的神经网络一样,属于具有不同网络结构但有重叠功能的神...

qq_37972530的博客 2183

性能测试软件(LR12) 具体汉化(中文)方法

LoadRunner 12 的下载及安装详细过程请参考:https://blog.youkuaiyun.com/xiao66guo/article/details/105465854 1、在LoadRunner文件中找到 Setup.exe 可执行文件,并以管理员的身份运行: C盘 —> Temp—>HP LoadRunner 12.02 Community Edition—> D...

多谢大人光临寒舍,请随便看看,喝口茶吧 ☕️☕️☕️ 1992

AI Agent Harness Engineering 创业PMF验证工具:用户满意度+留存率+业务指标监测表

在AI Agent创业的浪潮中,我们看到了无数产品如雨后春笋般涌现,但最终能够真正找到PMF并存活下来的却寥寥无几。根据CB Insights的数据,创业公司失败的首要原因(占42%)是"没有市场需求"——换句话说,就是没有找到PMF。AI Agent产品由于其特殊性(交互范式的变革、技术复杂度高、用户期望管理困难等),PMF验证变得更加具有挑战性。传统的SaaS产品PMF验证框架虽然有参考价值,但无法完全适用于AI Agent这种新型产品形态。

AI智能探索者的博客 331

深度学习练习-使用RNN实现MNIST手写数字识别(仅作自学记录使用)

python-通过使用RNN实现MNIST手写数字识别(仅作自学记录使用)

ONGSEONGWU的博客 2562

在Windows上安装Fortran编程环境「0 错误」|编程一对一教学文章

通过以上步骤,你已经成功在 Windows 系统上配置了 Fortran 编程环境。现在,你可以开始 Fortran 语言的学习和开发工作了。记得定期检查更新你的编译器和编辑器,以获得最佳的支持和新功能。

AI悦创·编程私教1v1 1673

AI练手系列(三)—— RNN实现mnist手写数字识别

RNN实现mnist手写数字识别,使用pytorch中自带的LSTM、RNN、GRU模型进行训练,准确率最后还挺不错的,经典数据集练手,你值得一试。

竹杖芒鞋轻胜马 4519

MATLAB PDE工具箱电磁场仿真平行电容板及电偶极子详解

首先打开matlab,在命令行输入pdetool打开PDE工具箱 工具箱的功能我就不赘述了,大概就是以有限元的数值计算方法,计算二阶偏微分方程,因此可以解决电磁场、热力学等问题。 首先点击左上角按钮,画三个矩形 画完一个后可以双击矩形编辑,参数如下: 其中R1表示上极板,R2表示下极板,R3表示整个空间区域。 在上方Set formula为R3-R2-R1,表示求解区域是整个空间区域减去两个极板。下拉框选择Electrostatics表示求解的是静电场问题。 接下来点击上方菜单栏中的这个按钮,表

weixin_42845306的博客 1万+

STM32驱动2.8寸TFTLCD屏幕实战:从看懂原理图到点亮第一个像素(基于ILI9341)

本文详细介绍了如何使用STM32驱动2.8寸TFTLCD屏幕(基于ILI9341驱动芯片),从硬件连接到软件配置,包括FSMC接口设置、ILI9341初始化序列、坐标设置及基础绘图函数实现。文章还提供了常见问题排查指南和性能优化技巧,帮助开发者快速解决屏幕不亮等问题,并提升显示性能。

weixin_42665255的博客 267

基于RNN的MNIST数据集分类实现

本文使用TensorFlow实现了基于RNN循环神经网络的MNIST手写数据集的分类。 1. 超参数定义 # 超参数定义(hyper parameters) LEARNING_RATE = 0.001 TRAINING_ITER = 10000 BATCH_SIZE = 128 INPUT_DIMS = 28 HIDDEN_DIMS = 128 CLASSES_NUM = 10 TIME...

juicetech的博客 3228

ubuntu系统禁止/开启内核自动更新

内核自动更新会导致驱动和内核版本不对应,导致驱动无法使用,所以需要禁止自动更新内核。本文介绍ubuntu系统禁止/开启内核更新的方法。

m0_50105717的博客 5289

PyTorch实战案例(五)——利用PyTorch实现循环神经网络RNN算法对mnist数据集分类

本文将介绍利用PyTorch实现循环神经网络RNN算法对mnist手写数字数据集进行分类。

Wendy的博客 3210

mbed驱动st7789屏幕-硬件选择及连接(1)

在单片机项目中,交互性至关重要,而视觉感知是用户交互的直接体现。本期专栏介绍了如何使用mbed平台驱动ST7789型号的TFT屏幕,以显示字符、汉字和图像。由于针对STM32L432KC的mbed驱动库尚未完整,作者自行编写了一个基于mbed的ST7789屏幕驱动库,并将在专栏中提供全代码及使用指南。

weixin_64524066的博客 391

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TensorFlow rnn mnist 分类

原文链接: TensorFlow rnn mnist 分类 ...

阿豪 130

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Tensorflow实战第十课(RNN MNIST分类)

设置RNN的参数 我们本节采用RNN来进行分类的训练(classifiction)。会继续使用手写数据集MNIST。 让RNN从每张图片的第一行像素读到最后一行,然后进行分类判断。接下来我们导入MNIST数据并确定RNN的各种参数(hyper-parameters) 注: 参数(parameters)/参数模型 由模型通过学习得到变量,比如权重w,偏置b 超参数(hyper-...

weixin_30297281的博客 166

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

pytorch实现rnn并且对mnist进行分类

1.RNN简介 rnn,相比很多人都已经听腻,但是真正用代码操练起来,其中还是有很多细节值得琢磨。 虽然大家都在说,我还是要强调一次,rnn实际上是处理的是序列问题,与之形成对比的是cnn,cnn不能够处理序列问题,因为它没有记忆能力,那为什么rnn能够处理序列问题以及有记忆能力呢? 首先简单介绍一下rnn以及lstm的背景,这里给出两个链接,链接1,链接2 以最简单的rnn为例,如下图 ...

weixin_30410119的博客 729

单向RNN和双向RNN在mnist数据集上的分类实验

RNN用于图像分类思路很奇特,不明觉厉,具体可以参考相关论文,rnn和birnn的实验: #!/usr/bin/env python # -*- coding: utf-8 -*- # created by fhqplzj on 2017/06/19 下午10:28 from __future__ import print_function import tensorflow as tf fr

军军的博客 1388

RNN入门简例:mnist 分类

Notes RNN 的 4 种模式: one-to-one:单输入,单输出 one-to-many:单输入,多输出 many-to-one:多输入,单输出 many-to-many:多输入,多输出。seq2seq 那种吧 RNN 层只有1个 hidden unit,只是它有自环,逻辑上可以展开成任意多个(这任意多个 hidden unit 共享参数,即只有一个) keras 的Simple...

iTom's blog 929

Keras框架(一):RNN实现mnist分类

由于在使用Tensorflow过程中,老是会碰到Keras框架写的模型,所以就稍稍学习了哈Keras框架。 主要内容:RNN对mnist数据集进行分类 主要框架:Keras 主要代码: # 准备好数据:X_train、X_test、y_train、y_test model = Sequential() model.add(SimpleRNN( batch_input_shape...

qq_24140919的博客 981

深度学习框架TensorFlow学习与应用(七)——循环神经网络(RNN)应用于MNIST数据集分类

关于RNN的介绍可以参考:RNN介绍 下面将RNN用于前文所提到的MNIST手写数字识别中。 1.获取数据集 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("D:\BaiDu\MNIST_data",one

JluTiger316的博客 1505

使用多层RNN-LSTM网络实现MNIST数据集分类及常见坑汇总

1 前言 循环神经网络(Recurrent Neural Network, RNN)又称递归神经网络,出现于20世纪80年代,其雏形见于美国物理学家J.J.Hopfield于1982年提出的可作联想存储器的互联网络——Hopfield神经网络模型。RNN是一类专门用于处理和预测序列数据的神经网络,其网络结构如下: RNN网络结构 Sepp Hochreiter教授和Jurgen Schmi...

little_fat_sheep 3429

[深度学习框架] Keras上使用RNN进行mnist分类

import numpy as np np.random.seed(1337) # for reproducibility from keras.datasets import mnist from keras.utils import np_utils from keras.models import Sequential from keras.layers import SimpleRNN

1.02^365的成长裂变 4609

Tensorflow实现用循环神经网络中的LSTM分类手写数字MNIST数据集

“微信公众号”这次我们用RNN来进行分类的训练,我们使用的数据集是手写数字MNIST数据集。让RNN从每张图片的第一行像素读到最后一行,然后再进行分类判断。(1)我们构建的RNN结构图。(2)最后的训练结果:(3)最后的测试结果:(4)完整的代码。# coding:utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mn...

Microstrong 1602

pytorch + visdom RNN分类手写数字(MNIST)

环境 系统:win10 cpu:i7-6700HQ gpu:gtx965m python : 3.6 pytorch :0.3 RNN 详细看这:http://blog.youkuaiyun.com/heyongluoyao8/article/details/48636251 简单来讲,rnn与传统的神经网络相比,最大的优势是隐藏层的神经单元互通,隐藏层

泛泛之素 3498
上一篇: MNIST的四种写法
下一篇: TensorFlow安装和下载
linux_win
博客等级 码龄8年 4粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值