理解神经网络流程

个人记录 2025 10 3

神经网络流程

数据的预处理 通过dataset和dataloader进行

dataset 处理数据旋转裁切调整对比度等操作 将数据修改成张量的格式 就像numpy 用array格式,pandas用的是dataframe格式

dataloader 处理数据如果批次大小和加载数量,因为他不像机器学习可以把数据一次性读进来。

前向传播 样本特征输入后进行预测,通过损失函数中参数权重偏置进行链式求导法则得到梯度,用梯度下降法更新参数

循环 最终使得梯度平稳停止。


神经网络核心流程梳理(dbai总结版)

一、数据预处理:给模型"备齐能用的料"

  • 核心目的:把原始数据(图、文等)变成模型能"消化"且训练效果好的形式

  • Dataset:干"数据加工"的活

  • 先优化数据:做旋转、裁切、调对比度,让模型见多识广(提升泛化能力)

  • 再统一格式:把加工好的数据转成张量(Tensor),比NumPy的Array多了GPU加速功能

  • DataLoader:干"按需上菜"的活

  • 分批拆数据:按设好的Batch Size拆分,解决"数据太多装不下内存"的问题

  • 按次给数据:训练时每次只送一批,贴合神经网络的训练节奏

二、核心训练循环:模型"慢慢学"的关键步骤

  1. 前向传播:把DataLoader给的一批数据喂进模型,经过卷积、全连接这些层计算后,得出预测结果

  2. 算损失:用交叉熵、MSE这类损失函数,比一比预测结果和真实答案差多少,得出误差(损失值)

  3. 反向传播:根据损失值,用链式求导法则从后往前算,找出每个参数(权重、偏置)对误差的影响(梯度)

  4. 更参数:让SGD、Adam这些优化器照着梯度,用梯度下降法调整参数,争取下一轮误差能变小

三、训练停止:判断模型"学好了"的标准

  • 看损失:损失值不怎么降了,稳定在一个区间里

  • 看梯度:参数的梯度快接近0了,再调参数也没多大提升空间

  • 看轮次:训练到了提前设好的Epoch数,就停下


为什么要收敛,如何收敛,如何快速收敛

要将梯度值控制在0-1的范围内防止梯度消失和梯度爆炸等问题

通过反向传播进行循环计算损失函数的权重和偏置来得到梯度,再用梯度下降来解决

使用优秀的优化器比如adam自适应距估计和sgd随机梯度下降,通常使用adam

相关推荐
玄同7656 分钟前
我的 Trae Skill 实践|使用 UV 工具一键搭建 Python 项目开发环境
开发语言·人工智能·python·langchain·uv·trae·vibe coding
Yorlen_Zhang16 分钟前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
HAPPY酷44 分钟前
C++ 和 Python 的“容器”对决:从万金油到核武器
开发语言·c++·python
gpfyyds6661 小时前
Python代码练习
开发语言·python
aiguangyuan3 小时前
使用LSTM进行情感分类:原理与实现剖析
人工智能·python·nlp
小小张说故事3 小时前
BeautifulSoup:Python网页解析的优雅利器
后端·爬虫·python
luoluoal3 小时前
基于python的医疗领域用户问答的意图识别算法研究(源码+文档)
python
Shi_haoliu3 小时前
python安装操作流程-FastAPI + PostgreSQL简单流程
python·postgresql·fastapi
ZH15455891313 小时前
Flutter for OpenHarmony Python学习助手实战:API接口开发的实现
python·学习·flutter
小宋10213 小时前
Java 项目结构 vs Python 项目结构:如何快速搭一个可跑项目
java·开发语言·python