【AI学习从零至壹】Pytorch神经⽹络

embedded/2025/3/18 17:54:24/

Pytorch神经⽹络

  • 神经网络简介
    • 神经元
    • 激活函数
  • 神经网络
    • 神经⽹络的⼯作过程
      • 前向传播(forward)
    • 反向传播(backward)
      • 训练神经⽹络
  • Pytorch搭建并训练神经⽹络
    • 神经⽹络构建和训练过程
      • 数据预处理
      • 构建模型
      • 优化器&提取训练数据
      • 训练样本

神经网络简介

神经元

在深度学习中,必须要说的就是神经⽹络,或者说是⼈⼯神经⽹络(artificial neural network)。神经⽹络是⼀种⼈类受到⽣物神经细胞结构启发⽽研究出的算法体系。
神经⽹络这个名字容易让⼈觉得特别神秘,不像我们接触过的程序算法那样直观,在编程的时候我们常⽤到的都是⼀些加减乘除、循环、分⽀、⽐⼤⼩、读写等等,使⽤这些基本步骤就能够完成⼀个明确的⽬标任务,然⽽神经⽹络和这种直观的⽅式还真有些不同。
在这里插入图片描述

图 2 就是⼀个最简单的神经元,有⼀个输⼊,⼀个输出,中间是⼀个参数,然后节点表⽰进⾏某种运算,所以它表达的含义跟⼀个普通函数没什么区别。不过需要注意的是,我们⽬前使⽤的神经元内部的运算通常有两个部分组成,第⼀部分是所谓的“线性模型ˮ,可以把它理解为⼀在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

激活函数

在这里插入图片描述
那么解释⼀下什么是⾮线性,⽣活中的各种事物抽象为数学模型后⼏乎都是⾮线性,举个例
⼦,理想情况下房⼦越⼤,价格越贵,这⾥的⾯积与价格可以视作线性关系,但是真实情况
下,房价不仅受到⾯积的影响因素,还会受到地理位置、时间、楼层等等因素的影响,那么这⼏种因素与房价就不是线性关系了。通常神经元的串联和并联叠加构成了神经⽹络,如果都是线性模型的叠加,那最终整个⽹络也是线性的,也就是矩阵相乘的关系,但是其中加⼊了激活函数,那么叠加之后的神经⽹络理论上就可以构成任意复杂的函数从⽽解决⼀些复杂问题。下⾯我们给出神经⽹络中常⽤到的三种激活函数:
在这里插入图片描述
在这里插入图片描述

神经网络

神经元⾸尾相接形成⼀个类似⽹络的结构来协同计算,这个算法体系被称为神经⽹络。
在这里插入图片描述
在这里插入图片描述
神经元就是通过这种结构进⾏数据传递,数据经过前⼀个神经元的计算输出给下⼀层的神经元当做输⼊,因为前⼀层的神经元节点连接了下⼀层的所有节点,因此这种前后层相互连接的⽹络也叫作全连接神经⽹络,这是⼀种⾮常常⻅的⽹络结构。

神经⽹络的⼯作过程

前向传播(forward)

在前⾯的学习中,我们介绍了神经⽹络的基本结构,还有神经元的计算⽅式,本节开始我们继续深⼊讲解神经⽹络的⼯作过程。在前⾯我们接触过了⼀种简单的神经⽹络结构,叫做全连接神经⽹络,同时,这种神经元从输⼊层开始,接受前⼀级输⼊,并输出到后⼀级,直⾄最终输出层,由于数据是⼀层⼀层从输⼊⾄输出传播的,也叫作前馈神经⽹络。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

反向传播(backward)

现在我们来讲⼀下反向传播,顾名思义,反向传播算法是利⽤损失函数进⽽从输出到输⼊⽅向传播达到调整参数的⽬的,它的存在主要是解决深层(多个隐藏层)神经⽹络的参数更新问题,反向传播算法就是梯度下降应⽤了链式法则,梯度下降这⼀概念我们下⼀⼩节会讲到,链式法则是微积分中的求导法则,⽤于复合函数的求导,在神经⽹络中只要有了隐藏层,那么隐藏层的权重参数与损失函数会构成复合函数,因此使⽤链式法则解决复合函数求导问题达到调整权重参数的⽬的。
在这里插入图片描述
上图中,左侧是原来我们搭建的神经⽹络,右侧是将输⼊赋值 0.10 与 0.20,隐藏层权重为
0.05、0.15、0.10、0.20,偏置为 0.35,输出层权重为 0.25、0.35、0.30、0.40,偏置为 0.50,最终赋值输出为 0.85、0.30,注意这个输出是我们预设好的标签,就是我们希望输⼊ 0.10 与 0.20 后,通过神经⽹络计算,最终输出 0.85 与 0.30。 通过上⼀节的前向传播,我们得到了前向传播中各个节点的计算公式,将实数带⼊公式我们可以得到:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

训练神经⽹络

在这里插入图片描述
在这里插入图片描述

Pytorch搭建并训练神经⽹络

神经⽹络构建和训练过程

数据预处理

在这里插入图片描述

#导入必要包
import torch
import torch.nn as nn
import torch.optim as optim
from torchvision.datasets import FashionMNIST
from torchvision.transforms.v2 import ToTensor #转换图像数据为张量 
from torch.utils.data import DataLoader#数据加载器

在这里插入图片描述
在这里插入图片描述

构建模型

# 所有结构串联
model = nn.Sequential(nn.Linear(784,64),nn.Sigmoid(),nn.Linear(64,10)

优化器&提取训练数据

loss_fn = nn.CrossEntropyLoss()#交叉熵损失函数
#优化器(模型参数更新)
optimizer = torch.optim.SGD(model.parameters(),lr = 0.01)
for epoch in range(epochs):for data,target in train_dl:#提取训练数据#前向运算output = model(data.reshape(-1,784))#计算损失loss = loss_fn(output, target)#反向传播optimizer.zero_grad()#所有参数梯度清零loss.backward() #计算梯度(参数.grad)optimizer.step() #更新参数print(f'loss:{loss.item()}')

训练样本

test_dl=DataLoader(test_data,batch_size=BATCH_SIZE,shuffle=True)#shuffle=True表示打乱数据
correct = 0
total = 0
with torch.no_grad(): #不计算梯度for data, target in test_dl:output = model(data.reshape(-1,784))_,predicted = torch.max(output, 1)#返回每行最大值和索引total += target.size(0)correct += (predicted == target).sum().item()
print(f'Accuracy:{correct/total*100}%') 

http://www.ppmy.cn/embedded/173641.html

相关文章

AI驱动的视频字幕提取与翻译工具

青梧字幕是一款基于Whisper技术的AI字幕提取工具,专为视频制作者、翻译人员和自媒体创作者设计。它通过先进的语音识别算法,能够自动从视频文件中提取字幕内容,并支持多种语言和字幕格式,极大地简化了字幕制作流程。 目前暂支持 …

五大方向全面对比 IoTDB 与 OpenTSDB

对比系列第三弹,详解 IoTDB VS OpenTSDB! 之前,我们已经深入探讨了时序数据库 Apache IoTDB 与 InfluxDB、Apache HBase 在架构设计、性能和功能方面等多个维度的区别。还没看过的小伙伴可以点击阅读: Apache IoTDB vs InfluxDB 开…

GBase8c 慢SQL配置

参数解释 enable_stmt_track:是否启用Full/Slow SQL特性log_min_duration_statement:指定慢 SQL 时间阈值instr_unique_sql_count:当系统中产生的unique SQL条目数量(dbe_perf.statement/dbe_perf.summary_statement统计&#xf…

Django系列教程(7)——路由配置URLConf

目录 URLconf是如何工作的? path和re_path方法 更多URL配置示例 URL的命名及reverse()方法 使用命名URL 硬编码URL - 不建议 URL指向基于类的视图(View) 通过URL传递额外的参数 小结 Django的项目文件夹和每个应用(app)目录下都有urls.py文件,它们构成了D…

linux环境下快速输出电脑的系统/硬件/显卡/网络/已安装软件等信息

在Linux环境下,可以通过以下命令快速获取系统和硬件信息。最后将这些命令整合成一个脚本(如 sysinfo.sh),一键输出所有信息。 1. 系统信息 # 内核信息 uname -a# 发行版信息 lsb_release -a 2>/dev/null || cat /etc/*release…

无人机+无人车+机器狼+DeepSeek:智能化设备集群技术详解

无人机、无人车、机器狼与DeepSeek的结合代表了智能化设备集群技术的重要发展方向。以下是对这一技术的详细解析: DeepSeek技术概述 DeepSeek是一种基于深度学习和数据挖掘技术的智能搜索与分析系统。它通过深度学习模型理解数据的上下文语义,实现更智…

双模型协作机制的deepseek图片识别

deepseek自动生成包含关键视觉元素的结构化文本描述的过程,本质上是多模态人工智能技术的协同工作,其核心原理可分为以下技术层级: 一、技术流程与编码器作用 图像编码阶段 编码器选择:常用模型包括 SigLIP、CLIP、ViT&#xff08…

谈谈你对前端工程化的理解,它包含哪些方面

大白话谈谈你对前端工程化的理解,它包含哪些方面 前端工程化其实就是把前端开发变得更规范、更高效、更易于维护的一套方法和流程。就好比你盖房子,不能随便瞎盖,得有设计图纸、施工标准、分工合作,前端工程化也是类似的道理。 项…