群发资讯网

今天用 PyTorch 实现了一个识别数字“1”的二分类神经网络。 网络结构是:

今天用 PyTorch 实现了一个识别数字“1”的二分类神经网络。
网络结构是:
784 → 25 → 15 → 1
一张 28×28 的图片会先展平成 784 个像素值,经过两个隐藏层,最后输出一个 0~1 的概率:
概率 ≥ 0.5:判断为数字 1 概率 < 0.5:判断为不是数字 1
今天主要学习了这些内容:
ToTensor():把像素值转换到 0~1
Normalize():把数据调整到以 0 为中心,帮助模型训练
view(-1):把 28×28 图片展平为 784 个数字
DataLoader:按批次读取数据,并随机打乱
ReLU:隐藏层使用的激活函数
Sigmoid:把输出转换成概率
BCELoss:适合二分类问题的损失函数
Adam:根据梯度自动更新模型参数
训练循环的核心步骤是:
清空梯度 → 前向传播 → 计算损失 → 反向传播 → 更新参数
预测时使用:
model.eval() with torch.no_grad(): ...
这样可以关闭训练模式和梯度计算,节省内存,也不会修改模型参数。
今天最大的收获是:神经网络并不是一个黑盒,而是由数据预处理、线性层、激活函数、损失函数和优化器一步步组成的。接下来准备继续学习如何计算准确率,并尝试优化模型效果。
计算机 机器学习 自学