PyTorch官网demo解读——第一个神经网络(2)

上一篇:PyTorch官网demo解读------第一个神经网络(1)

继上一篇文章我们展示了第一个神经网络的完整代码,今天我们来聊聊这个神经网络的模型设计。

这个demo实际上只使用了一个简单的线性模型:y = wx + b;

手写数字识别最后其实只输出10个结果(0~9),所以我们可以将结果表示为包含十个数的一维矩阵 [10],矩阵中的每个值是预测的概率值,表示索引代表的数字的概率。

我们的图片是28*28=784像素的,我们用一维矩阵[784]来表示,所以我们的目标就是将784 => 10。因为这个demo中只使用了一层神经网络,于是我们将我们的权重参数设计成784x10的二维矩阵[784, 10],这样每张图片的像素值乘以权重矩阵就得出10个数的一维矩阵[10],再加上10个数的偏差值bias就是我们预测的结果了。是不是很简单:=))

每个权重参数其实就是一个神经元,那么我们总共只使用了7840个神经元,就可以识别数字了。

每个神经元执行的计算也很简单,就是进行了一次 y = wx + b 的函数运算,结果y再进行一次激活函数运算(log_softmax)

模型运行简化流程如下图:
对应demo中的关键代码:
python 复制代码
# 初始化权重和偏差值,权重是随机出来的784*10的矩阵,偏差初始化为0
weights = torch.randn(784, 10) / math.sqrt(784)
weights.requires_grad_()
bias = torch.zeros(10, requires_grad=True)

# 激活函数
def log_softmax(x):
    return x - x.exp().sum(-1).log().unsqueeze(-1)

# 定义模型:y = wx + b
# 实际上就是单层的Linear模型
def model(xb):
    return log_softmax(xb @ weights + bias)

ok,今天就先聊到这里吧!

原来数学如此的美,代码的尽头是数学?

相关推荐
ASS-ASH1 分钟前
霸王色霸气的本质概括分析
人工智能·python·机器学习·大脑·脑电波
bst@微胖子6 分钟前
LlamaIndex数据准备 + Hugging Face模型微调 + LlamaIndex RAG集成实现企业产品知识库微调
人工智能·机器学习
CoCo的编程之路17 分钟前
从“手写UI”到“智能生成”的工具深度评测
人工智能·ai编程·comate·智能编程助手·文心快码baiducomate
YH12312359h19 分钟前
YOLOv8_PST模型玉米生长阶段自动识别与分类
人工智能·yolo·分类
水如烟19 分钟前
孤能子视角:“隋唐“
人工智能
Aliex_git19 分钟前
Claude Code 使用笔记(一)- 配置和基础
人工智能·笔记·学习·ai编程
组合缺一43 分钟前
开发 Java MCP 就像写 Controller 一样简单,还支持 Java 8
java·人工智能·llm·solon·java8·mcp
檐下翻书1731 小时前
免费在线工艺流程图制作工具_生产/化工/食品工艺流程绘制模板
人工智能·金融·架构·流程图·论文笔记·pcb工艺
GuoDongOrange1 小时前
从 0 到 1 构建 AI 智能体——AI Agent 的工程化路径、行业范式与未来形态
人工智能·ai agent·智能体·智能体从0到1·从0到1构建智能体
极智-9961 小时前
GitHub 热榜项目-日榜精选(2026-01-24)| AI智能体工具、Python生态等 | remotion、VibeVoice、goose等
人工智能·python·github·ai智能体·大模型部署·语音ai