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

66页实验题

import tensorflow as tf
from tensorflow.keras.datasets import cifar10

1. 加载并预处理 CIFAR-10 数据集

(x_train, y_train), (x_test, y_test) = cifar10.load_data()

像素值归一化(0-255 → 0-1)

x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0

标签转换为独热编码(适配多分类任务)

y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)

2. 构建卷积神经网络(CNN)模型

model = tf.keras.Sequential([
# 第一个卷积块(提取低级特征)
tf.keras.layers.Conv2D(32, (3, 3), padding='same', activation='relu', input_shape=(32, 32, 3)),
tf.keras.layers.Conv2D(32, (3, 3), padding='same', activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Dropout(0.25), # 防止过拟合
# 第二个卷积块(提取中级特征)
tf.keras.layers.Conv2D(64, (3, 3), padding='same', activation='relu'),
tf.keras.layers.Conv2D(64, (3, 3), padding='same', activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Dropout(0.25),
# 第三个卷积块(提取高级特征)
tf.keras.layers.Conv2D(128, (3, 3), padding='same', activation='relu'),
tf.keras.layers.Conv2D(128, (3, 3), padding='same', activation='relu'),
tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
tf.keras.layers.Dropout(0.25),
# 全连接层(分类决策)
tf.keras.layers.Flatten(), # 展平特征图
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Dense(10, activation='softmax') # 10类输出,概率归一化
])

3. 编译模型(配置训练参数)

model.compile(
optimizer=tf.keras.optimizers.Adam(learning_rate=0.0001), # 优化器
loss='categorical_crossentropy', # 多分类损失函数
metrics=['accuracy'] # 评估指标(准确率)
)

4. 训练模型

print("开始训练模型...")
history = model.fit(
x_train, y_train,
batch_size=64, # 每批次训练样本数
epochs=50, # 训练轮次
validation_split=0.1, # 10%训练集作为验证集(监控过拟合)
shuffle=True # 每轮打乱训练数据
)

5. 评估模型(测试集验证泛化能力)

print("\n开始评估模型...")
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)
print(f"\n测试集结果:损失={test_loss:.4f},准确率={test_acc:.4f}")

http://www.jsqmd.com/news/20740/

相关文章:

  • 简单云计算算法--20251023
  • 处理空输入踩的坑
  • 【做题记录】贪心--提高组
  • 【为美好CTF献上祝福】 New Star 2025 逆向笔记
  • XXL-JOB(5)
  • 蛋白表达原理与关键要素解析
  • 顾雅南的声音美化课堂
  • Ramanujan Master Theorem
  • 【周记】2025.10.13~2025.10.19
  • C++案例 自定义数组
  • 20251023周四日记
  • 10.23《程序员修炼之道 从小工到专家》第二章 注重实效的途径 - GENGAR
  • 玩转单片机之智能车小露——LED闪烁实战
  • ord() 函数
  • 2025.10.23总结 - A
  • 树状数组求逆序对
  • 大模型 | VLA 初识及在自动驾驶场景中的应用
  • Redis中的分布式锁之SETNX底层实现
  • 2025家纺摄影公司推荐,南通鼎尚摄影专注产品视觉呈现
  • ExPRT.AI如何预测下一个将被利用的漏洞
  • 求函数
  • AI元人文构想的跨学科研究:技术实现与人文影响分析——对自由与责任的再框架化(DeepSeek基于Ai元人文系列文章研究)
  • Python---简易编程解决工作问题
  • DM8 安装包 for linux_x86
  • 日总结 16
  • MPK(Mirage Persistent Kernel)源码笔记(1)--- 基础原理
  • 背包dp(1)
  • 模拟can通信
  • 202501软件工程第二次团队作业
  • 题解:P14174 【MX-X23-T4】卡常数