keras-基于CNN网络的Mnist数据集分类

1.数据的载入和预处理

import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import *
from keras.optimizers import SGD,Adam
from keras.regularizers import l2
from keras.utils.vis_utils import plot_model
from matplotlib import pyplot as plt import os import tensorflow as tf # 载入数据
(x_train,y_train),(x_test,y_test) = mnist.load_data() # 预处理
# 将(60000,28,28)转化为(-1,28,28,1),最后1是图片深度 x_train = x_train.reshape(-1,28,28,1)/255.0
x_test= x_test.reshape(-1,28,28,1)/255.0
# 将输出转化为one_hot编码
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)

2.创建网络打印训练数据# 创建网络

model = Sequential([

    # 创建卷积层提取特征,对卷积核进行正则化
Conv2D(input_shape=(28,28,1),filters=32,kernel_size=5,strides=1,padding='same',activation='relu',kernel_regularizer=l2(0.01)),
   # 池化层,对特征的筛选
   MaxPool2D(pool_size=(2,2),strides=2,padding='same'), Flatten(),
  
   Dense(units=128,input_dim=784,bias_initializer='one',activation='tanh'),
    Dropout(0.2),
Dense(units=10,bias_initializer='one',activation='softmax')
]) # 编译
# 自定义优化器
sgd = SGD(lr=0.1)
adma = Adam(lr=0.001)
# 运用交叉熵
model.compile(optimizer=adma,
loss='categorical_crossentropy',
# 得到训练过程中的准确率
metrics=['accuracy']) model.fit(x_train,y_train,batch_size=32,epochs=10,validation_split=0.2) # 评估模型
loss,acc = model.evaluate(x_test,y_test,)
print('\ntest loss',loss)
print('test acc',acc)

out:

Epoch 1/10

32/48000 [..............................] - ETA: 10:18 - loss: 2.7563 - acc: 0.1562
96/48000 [..............................] - ETA: 3:53 - loss: 2.6141 - acc: 0.1354

......

......

Epoch 10/10

45952/48000 [===========================>..] - ETA: 0s - loss: 0.0664 - acc: 0.9905
47616/48000 [============================>.] - ETA: 0s - loss: 0.0663 - acc: 0.9908
48000/48000 [==============================] - 2s 37us/step - loss: 0.0663 - acc: 0.9910 - val_loss: 0.0149 - val_acc: 0.9884

32/10000 [..............................] - ETA: 4s
3360/10000 [=========>....................] - ETA: 0s
5824/10000 [================>.............] - ETA: 0s
8512/10000 [========================>.....] - ETA: 0s
10000/10000 [==============================] - 0s 20us/step

test loss 0.015059704356454312
test acc 0.988

6.keras-基于CNN网络的Mnist数据集分类的更多相关文章

  1. 基于CNN网络的汉字图像字体识别及其原理

    现代办公要将纸质文档转换为电子文档的需求越来越多,目前针对这种应用场景的系统为OCR系统,也就是光学字符识别系统,例如对于古老出版物的数字化.但是目前OCR系统主要针对文字的识别上,对于出版物的版面以 ...

  2. 3.keras-简单实现Mnist数据集分类

    keras-简单实现Mnist数据集分类 1.载入数据以及预处理 import numpy as np from keras.datasets import mnist from keras.util ...

  3. 机器学习与Tensorflow(3)—— 机器学习及MNIST数据集分类优化

    一.二次代价函数 1. 形式: 其中,C为代价函数,X表示样本,Y表示实际值,a表示输出值,n为样本总数 2. 利用梯度下降法调整权值参数大小,推导过程如下图所示: 根据结果可得,权重w和偏置b的梯度 ...

  4. 数据挖掘入门系列教程(十二)之使用keras构建CNN网络识别CIFAR10

    简介 在上一篇博客:数据挖掘入门系列教程(十一点五)之CNN网络介绍中,介绍了CNN的工作原理和工作流程,在这一篇博客,将具体的使用代码来说明如何使用keras构建一个CNN网络来对CIFAR-10数 ...

  5. 【TensorFlow/简单网络】MNIST数据集-softmax、全连接神经网络,卷积神经网络模型

    初学tensorflow,参考了以下几篇博客: soft模型 tensorflow构建全连接神经网络 tensorflow构建卷积神经网络 tensorflow构建卷积神经网络 tensorflow构 ...

  6. 深度学习(一)之MNIST数据集分类

    任务目标 对MNIST手写数字数据集进行训练和评估,最终使得模型能够在测试集上达到\(98\%\)的正确率.(最终本文达到了\(99.36\%\)) 使用的库的版本: python:3.8.12 py ...

  7. CNN算法解决MNIST数据集识别问题

    网络实现程序如下 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 用于设置将记 ...

  8. keras基于卷积网络手写数字识别

    import time import keras from keras.utils import np_utils start = time.time() (x_train, y_train), (x ...

  9. 神经网络MNIST数据集分类tensorboard

    今天分享同样数据集的CNN处理方式,同时加上tensorboard,可以看到清晰的结构图,迭代1000次acc收敛到0.992 先放代码,注释比较详细,变量名字看单词就能知道啥意思 import te ...

随机推荐

  1. 未联网下,在eclipse中编辑xml文件如何自动提示设置

    断网情况下,用eclipse编辑xml文件如何自动提示? 以编辑hibernate中的xml为例: 首先,我们都知道xml提示是引用.dtd文件的. 1.复制这个dtd路径,设置eclipse属性,搜 ...

  2. 神奇的'license': 'AGPL 3.0'标签报错

    在__minifest__.py中,放了license标签,然后整个模块就报错了. 注释掉这个标签就好了.

  3. python--集合和文件基本操作

    集合 # 集合天生就能去重,集合也是无序的  集合也是{ }  但是空集合定义特殊s=set()  #空集合s2 = set('1234445566778')print(s2) s3 = {'1',' ...

  4. python控制台实现打印带颜色的字体

    控制台颜色分类: 数值表示的参数含义: 显示方式: 0(默认值).1(高亮).22(非粗体).4(下划线).24(非下划线). 5(闪烁).25(非闪烁).7(反显).27(非反显)前景色: 30(黑 ...

  5. CleanWebpackPlugin最新版本使用问题

    如果在webpack 安装 CleanWebpackPlugin最新版本报错 如果是报下面的错误的话 然后在控制台向上翻 会发现 TypeError: CleanWebpackPlugin is no ...

  6. 10 分离式web框架

    10 分离式web框架 wsgiref模块: 将http请求封装成以键值对的形式封装成字典environ: "PATH_INFO"对应的值为请求文件路径, “QUERY_STRIN ...

  7. blazor wasm访问非本地的restful service

    准备工作 blazor wasm正式版发布了!在尝试使用的过程中,发现几个小坑,跟大家分享一下,希望有所帮助. 我是通过keycloak来保护blazor和service的,如何保护service请参 ...

  8. Windows10下打开MySQL服务 & 查看MySQL服务是否启动

    首先 确保电脑已安装MySQL客户端 其次 以管理员方式,打开Windows PowerShell 输入: net start mysql 回车 如下图: 可以了.

  9. 51Nod栈

    LYK有一个栈,众所周知的是这个数据结构的特性是后进先出的. LYK感觉这样子不太美妙,于是它决定在这个前提下将其改进,也就是说,每次插入元素时,可以在栈顶或者栈底插入,删除元素时,只能在栈顶删除.L ...

  10. 织梦系统dedecms实现列表页双样式,列表样式循环交替变化

    有时候做列表页需要交替变换样式,那如何实现列表页双样式呢? 在DeDeCMS里面有这样一个函数,可以循环赋予html代码不同的样式,如下: [field:global function=MagicVa ...