当前位置: 首页 > article >正文

使用Python和TensorFlow/Keras构建一个简单的CNN模型来识别手写数字

一个简单的图像识别项目代码示例,使用Python和TensorFlow/Keras库来训练一个基本的CNN模型,用于识别MNIST手写数字数据集,并将测试结果输出到HTML。

代码运行效果截图:

具体操作步骤:

1. 安装所需的库

首先,确保你已经安装了所需的Python库:

pip install tensorflow numpy matplotlib pandas jinja2
  • TensorFlow:用于构建和训练深度学习模型。

  • NumPy:用于处理数值数据。

  • Matplotlib:用于可视化图像和训练结果。

  • Pandas:用于整理测试结果。

  • Jinja2:用于生成HTML模板。

2. 导入库

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

3. 加载和预处理数据

我们将使用MNIST数据集,这是一个包含28x28像素手写数字图像的数据集。

# 加载MNIST数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 归一化像素值到0-1之间
x_train, x_test = x_train / 255.0, x_test / 255.0

# 将图像数据从28x28调整为28x28x1,以适应CNN输入
x_train = x_train[..., tf.newaxis]
x_test = x_test[..., tf.newaxis]

4. 构建CNN模型

model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    

http://www.kler.cn/a/538722.html

相关文章:

  • QTreeView和QTableView单元格添加超链接
  • 线程上下文-ThreadLocal原理
  • 五十天精通硬件设计第20天-CAN协议及电路设计介绍
  • ChatGPT提问技巧:行业热门应用提示词案例-文案写作
  • redis高级数据结构布隆过滤器
  • 储能系统-系统架构
  • 系统URL整合系列视频五(后端技术实现)
  • Android Studio 配置 Gerrit Code Review
  • 深入Linux系列之环境变量
  • ZZNUOJ(C/C++)基础练习1081——1090(详解版)
  • k8s中pod常见状态解析
  • go结构体和json相互转换、序列化和反序列化
  • 2025年日祭
  • Linux strace命令介绍
  • 音频知识基础
  • 神经网络常见激活函数 5-PReLU函数
  • 阿里云专有云网络架构学习
  • 金三银四Java面试题及答案整理(2025年最新版,持续更新)
  • Java进阶面试八股文
  • DeepSeek使用技巧大全(含本地部署教程)
  • Vue 3 部分新特性解析
  • 【Unity】从父对象中获取子对象组件的方式
  • RNN-day1-NLP基础
  • 大模型推理——MLA实现方案
  • 寒假集训思维训练1题解
  • node 程序占用处理方法与后台运行方法