首页 > 其他分享 >Keras框架——卷积神经CNN神经网络~MINST手写数字识别

Keras框架——卷积神经CNN神经网络~MINST手写数字识别

时间:2024-11-07 20:47:01浏览次数:5  
标签:acc loss val Keras MINST test CNN model 10

一.原理说明

卷积神经网络(Convolutional Neural Networks)是一种深度学习模型或类似于人工神经网络的多层感知器,常用来分析视觉图像。卷积神经网络的创始人是着名的计算机科学家 Yann LeCun,目前在 Facebook 工作,他是第一个通过卷积神经网络在 MNIST 数据集上解决手写数字问题的人。

二.数据说明

MINST数据集是机器学习领域一个经典的数据集,其中包括70000个样本,包括60000个训练样本和10000个测试样本

三.代码实战

 第一步:导入头文件

import numpy
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import Dropout
from keras.layers import Flatten
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.utils import np_utils
from keras import backend as K

第二步:导入数据并进行预处理

seed = 7
numpy.random.seed(seed)

# load data
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# reshape to be [samples][pixels][width][height]
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32')
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32')

X_train = X_train / 255
X_test = X_test / 255
# one hot encode outputs
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
num_classes = y_test.shape[1]

第三步:构建模型网络

def baseline_model():
    # create model
    model = Sequential()
    model.add(Conv2D(32, (5, 5), input_shape=(28, 28, 1), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.2))
    model.add(Flatten())
    model.add(Dense(128, activation='relu'))
    model.add(Dense(num_classes, activation='softmax'))
    # Compile model
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    return model

第四步:训练和测试

# build the model
model = baseline_model()
# Fit the model
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=10, batch_size=200, verbose=2)
# Final evaluation of the model
scores = model.evaluate(X_test, y_test, verbose=0)
print("Baseline Error: %.2f%%" % (100-scores[1]*100))

结果:

Train on 60000 samples, validate on 10000 samples
Epoch 1/10
 - 16s - loss: 0.2236 - acc: 0.9366 - val_loss: 0.0746 - val_acc: 0.9768
Epoch 2/10
 - 19s - loss: 0.0709 - acc: 0.9784 - val_loss: 0.0463 - val_acc: 0.9847
Epoch 3/10
 - 19s - loss: 0.0504 - acc: 0.9845 - val_loss: 0.0420 - val_acc: 0.9860
Epoch 4/10
 - 19s - loss: 0.0402 - acc: 0.9874 - val_loss: 0.0392 - val_acc: 0.9869
Epoch 5/10
 - 19s - loss: 0.0320 - acc: 0.9898 - val_loss: 0.0345 - val_acc: 0.9885
Epoch 6/10
 - 19s - loss: 0.0262 - acc: 0.9918 - val_loss: 0.0330 - val_acc: 0.9902
Epoch 7/10
 - 19s - loss: 0.0227 - acc: 0.9929 - val_loss: 0.0341 - val_acc: 0.9890
Epoch 8/10
 - 19s - loss: 0.0193 - acc: 0.9938 - val_loss: 0.0338 - val_acc: 0.9887
Epoch 9/10
 - 19s - loss: 0.0165 - acc: 0.9949 - val_loss: 0.0303 - val_acc: 0.9900
Epoch 10/10
 - 19s - loss: 0.0129 - acc: 0.9961 - val_loss: 0.0300 - val_acc: 0.9907
Baseline Error: 0.93%

标签:acc,loss,val,Keras,MINST,test,CNN,model,10
From: https://blog.csdn.net/u013289254/article/details/143607551

相关文章

  • 机器学习系列----介绍前馈神经网络和卷积神经网络 (CNN)
    前言 在深度学习领域,神经网络是一种模拟人脑神经元结构和功能的数学模型。它通过大量的层次结构和参数调整来实现模式识别、分类、回归等任务。常见的神经网络结构有前馈神经网络(FeedforwardNeuralNetworks,简称FNN)和卷积神经网络(ConvolutionalNeuralNetworks,简称CNN)......
  • 【深度学习滑坡制图|论文解读4】基于融合CNN-Transformer网络和深度迁移学习的遥感影
    【深度学习滑坡制图|论文解读4】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法【深度学习滑坡制图|论文解读4】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法文章目录【深度学习滑坡制图|论文解读4】基于融合CNN-Transformer......
  • 人脸检测之MTCNN算法网络结构
    MTCNN(Multi-taskCascadedConvolutionalNetworks)是一种用于人脸检测和关键点检测的深度学习模型,特别适合在复杂背景下识别出多尺度的人脸。它通过多任务学习来实现人脸检测和人脸关键点定位(如眼睛、鼻子、嘴巴的位置),实现高精度的人脸区域定位和关键点提取。MTCNN主要由三个......
  • 构建人工智能模型基础:TFDS和Keras的完美搭配
    上一篇:《数据工程师,转型人工智能岗位的理想时空通道》序言:本节将带您深入探索TensorFlow提供的关键工具和方法,涵盖数据集管理和神经网络模型的构建与训练。在现代人工智能框架中,TensorFlow的数据集接口(TensorFlowDatasets,简称TFDS)与Keras模型库为深度学习任务提供......
  • 强噪声下基于mscnn-bigru-attention深度学习模型CWRU(凯斯西储大学)轴承故障诊断(Pytho
     1.效果视频(以0HP数据集为例,在-30DB下的测试准确率效果)强噪声下基于mscnn-bigru-attention深度学习模型CWRU(凯斯西储大学)轴承故障诊断_哔哩哔哩_bilibili对原始信号分别添加不同强度的高斯白噪声,以模拟实验数据遇到的实际环境中干扰噪声。原始信号(以0HP数据为例进行展示,可......
  • 带界面下的基于mscnn-bigru-attention深度学习模型江南大学轴承故障诊断(Python代码,很
     1。效果视频:基于mscnn-bigru-attention深度学习模型江南大学轴承故障诊断带界面_哔哩哔哩_bilibili 2.江南大学轴承数据集介绍采样频率:50khz,采样时间:10s转速:6008001000/rpm内圈故障:ib外圈故障:ob滚动体故障:tb正常:N 以600转速下的内圈故障数据为例展示:开始数据......
  • Python轴承故障诊断 (17)基于TCN-CNN并行的一维故障信号识别模型
    往期精彩内容:Python-凯斯西储大学(CWRU)轴承数据解读与分类处理Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客三十多个开源数据集|故障诊断再也不用担心数据集了!P......
  • 【语义分割|代码解析】CMTFNet-4: CNN and Multiscale Transformer Fusion Network 用
    【语义分割|代码解析】CMTFNet-4:CNNandMultiscaleTransformerFusionNetwork用于遥感图像分割!【语义分割|代码解析】CMTFNet-4:CNNandMultiscaleTransformerFusionNetwork用于遥感图像分割!文章目录【语义分割|代码解析】CMTFNet-4:CNNandMultiscale......
  • [理论学习] CNN学习笔记简陋版
    写在前面参考:https://www.cnblogs.com/boostwei/p/15195643.htmlhttps://www.youtube.com/watch?v=pj9-rr1wDhMCNN做了什么CNN的出现主要解决图像处理的两大难题:1.图像处理的数据量过大以致处理成本昂贵且效率低2.图象在数字化的过程中很难保证原有的特征CNN结构输入:......
  • Python基于TensorFlow实现卷积神经网络-双向长短时记忆循环神经网络加注意力机制回归
    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后关注获取。1.项目背景随着大数据时代的到来,对复杂数据结构的理解和预测成为许多领域的重要课题。在这些领域中,无论是视频分析、语音识别还是自然语言处理,都面临着需......