实战keras搭建CNN实现MNIST手写数字识别

该代码示例展示了如何使用TensorFlow库和KerasAPI来构建和训练一个卷积神经网络(CNN),用于识别MNIST数据集的手写数字。首先,数据被加载并进行了归一化和随机排序。接着,构建了一个包含多个卷积层、池化层和全连接层的CNN模型,并使用了ReLU激活函数和Softmax层。模型经过编译后,使用Adam优化器和交叉熵损失函数进行训练。在训练过程中,观察了训练集和验证集的准确率与损失。最后,模型被保存以便后续使用。

1、准备数据

import tensorflow as tf
import numpy as np
from keras import datasets, layers, models
import matplotlib.pyplot as plt

#任务目标:实现手写数字识别
#数据集:MNIST手写数字数据集


#两种加载方法
# 加载本地MNIST数据集
data= np.load('/Users/code/MNIST_data/mnist.npz', allow_pickle=True)
x_train, y_train = data['x_train'], data['y_train']
x_test, y_test = data['x_test'], data['y_test']
# 下载MNIST手写数字数据集,使用TensorFlow内置的datasets.mnist.load_data()函数
data = datasets.mnist.load_data()
x_train, y_train = data['x_train'], data['y_train']
x_test, y_test = data['x_test'], data['y_test']


# 归一化像素值到0~1之间
x_train = x_train.astype('float32') / 255.  
x_test = x_test.astype('float32') / 255.  

#随机排序
perm = np.random.permutation(x_train.shape[0])  
x_train = x_train[perm]    
y_train = y_train[perm]

# 对label进行one-hot编码 
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)


2、构建模型


                
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘起性空、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值