2026.1.17总结

news/2026/1/19 23:54:39/文章来源:https://www.cnblogs.com/zangbotao/p/19504029

2: 计算机视觉基础

以下是代码的完整执行流程:
导入库​ → 导入PyTorch及相关工具库
定义CNN模型​ → 构建两层卷积+全连接的神经网络结构
数据准备​ → 下载MNIST数据集并进行标准化预处理
初始化​ → 创建模型、损失函数和优化器
训练循环(10个epoch):
训练阶段:前向传播 → 计算损失 → 反向传播 → 参数更新
测试阶段:评估模型准确率
记录结果​ → 保存每个epoch的训练损失和测试准确率
可视化​ → 绘制损失和准确率变化曲线
结束​ → 显示训练完成的模型性能图表
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchvision
import torchvision.transforms as transforms
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

2.1 CNN基础架构

class CNN(nn.Module):
def init(self):
super(CNN, self).init()
# 卷积层
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, padding=1)

    # 池化层self.pool = nn.MaxPool2d(2, 2)# 全连接层self.fc1 = nn.Linear(64 * 7 * 7, 128)self.fc2 = nn.Linear(128, 10)# Dropoutself.dropout = nn.Dropout(0.5)def forward(self, x):# 卷积层1 + 激活函数 + 池化x = self.pool(F.relu(self.conv1(x)))# 卷积层2 + 激活函数 + 池化x = self.pool(F.relu(self.conv2(x)))# 展平x = x.view(-1, 64 * 7 * 7)# 全连接层x = F.relu(self.fc1(x))x = self.dropout(x)x = self.fc2(x)return x

2.2 数据加载和预处理

def load_mnist():
"""加载MNIST数据集"""
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])

# 训练集
trainset = torchvision.datasets.MNIST(root='./data', train=True,download=True, transform=transform
)# 测试集
testset = torchvision.datasets.MNIST(root='./data',train=False,download=True,transform=transform
)trainloader = DataLoader(trainset, batch_size=64, shuffle=True)
testloader = DataLoader(testset, batch_size=64, shuffle=False)return trainloader, testloader

2.3 完整训练流程

def train_cnn():
# 加载数据
trainloader, testloader = load_mnist()

# 初始化模型
model = CNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)# 训练循环
num_epochs = 10
train_losses = []
test_accuracies = []for epoch in range(num_epochs):model.train()running_loss = 0.0# 训练阶段for images, labels in trainloader:# 前向传播outputs = model(images)loss = criterion(outputs, labels)# 反向传播optimizer.zero_grad()loss.backward()optimizer.step()running_loss += loss.item()avg_loss = running_loss / len(trainloader)train_losses.append(avg_loss)# 测试阶段model.eval()correct = 0total = 0with torch.no_grad():for images, labels in testloader:outputs = model(images)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()accuracy = 100 * correct / totaltest_accuracies.append(accuracy)print(f'Epoch [{epoch+1}/{num_epochs}], 'f'Loss: {avg_loss:.4f}, 'f'Accuracy: {accuracy:.2f}%')return model, train_losses, test_accuracies

2.4 可视化训练结果

def plot_training_results(train_losses, test_accuracies):
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))

# 损失曲线
ax1.plot(train_losses, label='Training Loss')
ax1.set_xlabel('Epoch')
ax1.set_ylabel('Loss')
ax1.set_title('Training Loss over Epochs')
ax1.legend()
ax1.grid(True)# 准确率曲线
ax2.plot(test_accuracies, label='Test Accuracy', color='orange')
ax2.set_xlabel('Epoch')
ax2.set_ylabel('Accuracy (%)')
ax2.set_title('Test Accuracy over Epochs')
ax2.legend()
ax2.grid(True)plt.tight_layout()
plt.show()

运行训练

print("开始训练CNN模型...")
model, train_losses, test_accuracies = train_cnn()
plot_training_results(train_losses, test_accuracies)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows 删除驱动

管理员模式下运行cmd pnputil /e 查看驱动 pnputil /d xxx.inf 删除指定驱动

推N返1推3返H5商城电商平台抖音快手微信小程序看广告流量主开源

H5电商平台功能介绍 1. 基础电商功能商品展示:商品列表、商品详情页、商品图文介绍用户系统:用户注册、登录、个人信息管理购物车功能:添加商品、修改数量、结算购物车订单管理:创建订单、订单支付、订单状态跟踪收货地址&#xf…

2026.1.16总结

了解PyTorch,虽然啥也看不懂,但是这个东西也许有用 1: PyTorch基础 import torch import torch.nn as nn import torch.optim as optim# 1.1 张量基础 print("PyTorch版本:", torch.__version__) print(&qu…

C++中虚函数调用慢5倍?深入理解vtable和性能开销

“虚函数调用有性能开销”,这句话你肯定听过,但到底慢多少、为什么慢、什么时候需要担心,这些问题很多人其实说不清楚。 虚函数调用大约需要24个时钟周期,而普通函数调用只需要4.2个周期,粗略算下来,慢了将…

Qoder编程开发全指南:从概念到实践的AI驱动编程范式

Qoder作为阿里巴巴推出的下一代Agentic编程平台,代表了AI编程工具从辅助性工具向自主开发者转变的革命性突破。 通过增强上下文工程与智能体无缝结合,Qoder能够全面理解代码库,并以系统化方式推进开发任务,真正实现"需求→交…

AI原生应用领域多模态交互的技术挑战与解决方案

AI原生应用领域多模态交互的技术挑战与解决方案 一、引言 钩子 想象一下,你走进一间智能家居控制的房间,你不仅可以用语音告诉智能音箱打开窗帘、调节灯光亮度,还能通过简单的手势让电视切换到你想看的节目,甚至当你面露疲惫时,智能系统能主动为你播放舒缓的音乐。这种…

RAG系统架构

以上是从原始数据到最终返回 Top-K 结果的完整流程的信息检索或 RAG(Retrieval-Augmented Generation)系统架构图。整个流程分为四个主要阶段:Extraction(提取)、Preprocessing(预处理)、Indexi…

DiFi:当Wi-Fi遇上区块链,重新定义网络访问

在咖啡馆连Wi-Fi时,你可能遇到过类似情况:有人看视频卡顿,有人只是收封邮件却同样忍受低速——传统的网络访问常是“一刀切”的。DiFi尝试改变这一现状,它巧妙融合区块链技术和经济机制,旨在实现更智能、公平的网络资源…

【PR】音频调色

--本篇导航--音频处理画面调色自动匹配序列音频处理 拉长音频时长自动匹配多段音频的响度/音量 在【基本声音】面板中的响度,点击自动匹配,来统一音量。再给音频添加【强制限幅】效果,选择限幅-6dB音轨混合器音频音…

强烈安利9个AI论文平台,本科生搞定毕业论文不求人!

强烈安利9个AI论文平台,本科生搞定毕业论文不求人! AI 工具,让论文写作不再难 对于很多本科生来说,毕业论文是一个既熟悉又陌生的挑战。从选题到写作,再到查重和修改,每一步都可能让人感到压力山大。而如今…

从 ELF 视角理解 C/C++ 程序的内存布局:通用段、C++ 专属段与加载机制解析

目录标题1. 程序从磁盘到内存:ELF 与运行时加载的基本原理1.1 ELF 文件的双重视角:Section 与 Segment 的本质差异Section 的核心特征Segment 的核心特征1.2 从 execve 开始:内核如何加载一个 ELF 程序1.3 “加载”并不等于“拷贝”&#xff…

Turnitin系统计算重复率的方式!

英文论文查重一般使用的是Turnitin论文查重系统,今天给大家分享Turnitin系统计算重复率的方式! Turnitin系统主要是检测外文论文,所以重复率计算和中文查重系统(知网、维普和万方等)是不一样的。 中文论文的重复率&a…

【计算机毕业设计案例】基于python-CNN深度学习卷积神经网络对不同柑橘病变识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

事实核查领域的AI原生应用:现状、问题与突破

事实核查领域的AI原生应用:现状、问题与突破关键词:事实核查、AI原生应用、大语言模型、多模态验证、可信AI摘要:在信息爆炸的今天,虚假信息如“数字病毒”般快速传播,传统人工事实核查面临效率与覆盖的双重瓶颈。本文…

互联网大厂Java面试实战:Spring Boot与微服务在电商场景中的应用解析

互联网大厂Java面试实战:Spring Boot与微服务在电商场景中的应用解析 场景背景 谢飞机,一名求职于互联网大厂的Java程序员,今天参加了一场针对电商业务的Java开发面试。面试官严肃认真,围绕Java核心技术栈和电商业务场景进行提问&…

全网最全研究生必用AI论文网站TOP10:开题报告文献综述深度测评

全网最全研究生必用AI论文网站TOP10:开题报告文献综述深度测评 学术写作工具测评:为什么你需要一份靠谱的AI论文网站榜单 在当前学术研究日益依赖数字化工具的背景下,研究生群体对高效、专业的AI论文辅助平台需求愈发迫切。从开题报告到文献…

DevEco Studio:页面预览

在DevEco Studio中,可以预览页面。点击右侧工具条中的 眼睛 图标,可以预览。预览的页面需要用Entry修饰:点击后预览的效果:

STM32 单片机实战:基于 HAL 库的串口通信与中断处理详解

第一部分:串口通信基础与STM32硬件架构串口通信技术的历史演进与基本原理串行通信技术可追溯到19世纪的电信领域,经历了从机械电报到现代数字通信的漫长演进过程。在现代嵌入式系统中,通用异步收发传输器(UART)是实现串…

Windows安装Dokcer Desktop与汉化

文章目录1汉化版本2安装通过连接下载exe安装我不确定自己的电脑是什么样的?通过Windows PowerShell安装指定需要的版本结束语windows应该是大部分开发者使用率最高的系统,但这个系统无法部署一些项目,因此,通过下载Docker Desktop…

“星火行业分析师”获国家级认可,讯飞的大模型应用前景何在?

据同花顺财经的报道,近期,科大讯飞“星火行业分析师”连获两项重要认可:被国家工业信息安全发展研究中心认定为“垂直大模型典型应用案例”,并获评2025全球数字经济联盟(D50)峰会“数智应用领先成果”。这不…