使用 PyTorch 手动实现softmax回归 📅 发布时间:2026/7/5 12:26:35 👁️ 浏览次数: 在深度学习的学习过程中,理解模型的底层运作机制至关重要。本文将通过一个完整的示例,展示如何使用 PyTorch 手动定义模型参数、构建前向传播函数,并训练一个简单的线性分类器(即逻辑回归)来对 FashionMNIST 数据集进行分类。整个过程不依赖nn.Linear或自定义nn.Module类,而是直接操作张量和参数,有助于深入理解神经网络的基本组成。1. 数据加载与预处理首先,我们加载 FashionMNIST 数据集。该数据集包含 60,000 张训练图像和 10,000 张测试图像,每张图像为 28×28 的灰度图,共 10 个类别。importtorchfromtorchimportnnfromtorchvisionimporttransformsfromtorch.utils.dataimportDataLoaderfromtorchvision.datasetsimportFashionMNIST# 数据加载transform=transforms.ToTensor()train_dataset=FashionMNIST(root="../data",train=True,transform=transform,download=True)test_dataset=FashionMNIST(root="../data",train=False,transform=transform,download=True)batch_size=256train_iter=DataLoader(train_dataset,batch_size=batch_size,shuffle=True)test_iter=DataLoader(test_dataset,batch_size=batch_size,shuffle=False)transforms.ToTensor()将图像从 PIL 格式转换为torch.Tensor,并自动将像素值归一化到 [0, 1] 区间。每个样本的形状为(1, 28, 28),其中 1 表示单通道(灰度图)。使用DataLoader批处理数据,训练时打乱顺序,测试时不打乱。2. 定义模型参数FashionMNIST 图像展平后维度为 28 × 28 = 784,输出类别数为 10。我们手动创建权重矩阵W和偏置向量b,并将其注册为可学习参数:# 模型参数num_inputs,num_outputs=784,10W=nn.Parameter(torch.randn(num_inputs,num_outputs)*0.01)b=nn.Parameter(torch.zeros(num_outputs))params=[W,b]W初始化为均值为 0、标准差为 0.01 的正态分布,形状为(784, 10)。b初始化为全零,形状为(10,)。使用nn.Parameter包装,确保这些张量能被优化器识别并更新。3. 构建前向传播函数我们定义一个简单的前向传播函数net,实现线性变换:# 模型定义defnet(X):returnX.reshape(-1,num_inputs)@ W+b输入X的原始形状为(batch_size, 1, 28, 28)。X.reshape(-1, 784)将其展平为(batch_size, 784)。矩阵乘法@ W得到(batch_size, 10)的 logits。加上偏置b(通过广播机制),最终输出形状为(batch_size, 10)。这实际上是一个没有激活函数的单层线性模型,配合交叉熵损失即可完成多分类任务。4. 损失函数与优化器选择交叉熵损失函数和随机梯度下降(SGD)优化器:# 损失函数与优化器loss_fn=nn.CrossEntropyLoss(reduction='none')optimizer=torch.optim.SGD(params
Ollama平台DeepSeek-R1-Distill-Qwen-7B:开箱即用体验 Ollama平台DeepSeek-R1-Distill-Qwen-7B:开箱即用体验 本文介绍如何在Ollama平台快速部署和使用DeepSeek-R1-Distill-Qwen-7B模型,无需复杂配置,直接体验强大的文本生成能力。 1. 模型简介:小而精的推理专家 DeepSeek-R1-Distill… 2026/7/3 12:48:29
EmbeddingGemma-300m实战:基于Ollama的文本聚类 EmbeddingGemma-300m实战:基于Ollama的文本聚类 重要提示:本文基于Ollama v0.12.10及以上版本,该版本新增了对embedding模型的原生支持 1. 引言:为什么需要文本向量化? 在日常工作中,我们经常需要处理大量… 2026/5/17 5:08:47
阿里云Qwen3-ForcedAligner:高精度音频对齐体验 阿里云Qwen3-ForcedAligner:高精度音频对齐体验 1. 引言:音频对齐的痛点与解决方案 在日常的音视频处理工作中,你是否遇到过这样的困扰:为视频添加字幕时需要手动逐句对齐时间轴,制作有声书时要精确标注每个词的发音… 2026/5/17 5:08:47
EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案 EdgeRemover:在Windows上彻底卸载Microsoft Edge的终极解决方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover … 2026/7/5 12:25:48
从CPAN到RPM:perlporter如何彻底简化Perl模块打包流程 从CPAN到RPM:perlporter如何彻底简化Perl模块打包流程 【免费下载链接】perlporter perl pacaking automation tool 项目地址: https://gitcode.com/openeuler/perlporter 前往项目官网免费下载:https://ar.openeuler.org/ar/ 🚀 Per… 2026/7/5 12:23:48
vtopia-agent实战案例:发现并修复企业级安全漏洞 vtopia-agent实战案例:发现并修复企业级安全漏洞 【免费下载链接】vtopia-agent Discovery tools for vulnerabilities. 项目地址: https://gitcode.com/openeuler/vtopia-agent 前往项目官网免费下载:https://ar.openeuler.org/ar/ vtopia-agen… 2026/7/5 12:23:48
2026年AI大模型学习指南:从入门到精通的实战路线 1. 为什么你需要这份2026年AI大模型学习指南 三年前我刚接触大模型时,曾在工具选型上浪费两个月,在微调实验上踩过数据泄露的坑,更因为对计算资源评估不足导致项目延期。这份指南正是我期望当时能获得的"生存手册"——它不仅告诉你… 2026/7/5 12:23:48
Lua反编译神器unluac:如何快速恢复丢失的Lua源代码? Lua反编译神器unluac:如何快速恢复丢失的Lua源代码? 【免费下载链接】unluac fork from http://hg.code.sf.net/p/unluac/hgcode 项目地址: https://gitcode.com/gh_mirrors/un/unluac 你是否曾经遇到过这样的困境:手头只有编译后的Lu… 2026/7/5 12:23:48
AI办公工具实战:提升效率的核心场景与避坑指南 1. 当AI遇上办公:一场效率革命的开始早上8:55分,我像往常一样冲进写字楼电梯,手里端着洒了三分之一的咖啡。会议室里市场部的同事已经在播放第17版PPT,而我的季度报表还卡在数据透视表那一步。这种场景在过去五年里每周都要上演&a… 2026/7/5 12:21:48
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/5 0:01:32
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/5 0:01:32
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/5 0:05:36