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

server/2025/3/18 9:16:16/

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/server/175924.html

相关文章

uniapp+Vue3 开发小程序功能(下载文件)

代码如下&#xff0c;复制粘贴即可食用&#xff1a; <template><view class"container-detail"><view class"example-body" click"openFile(item.url)" v-for"(item, index) in fileList" :key"index">&…

AtCoder Beginner Contest 397 A - D题解

Tasks - OMRON Corporation Programming Contest 2025 (AtCoder Beginner Contest 397) 本文为 AtCoder Beginner Contest 397 A - D题解 题目A: 代码(C): #include <bits/stdc.h>int main() {double n;std::cin >> n;if (n > 38.0) {std::cout << 1;}…

学习threejs,使用MeshLambertMaterial漫反射材质

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshLambertMaterial…

计算机网络基础:网络配置与管理

计算机网络基础&#xff1a;网络配置与管理 一、前言二、网络设备配置基础2.1 路由器配置2.1.1 路由器的基本概念2.1.2 路由器的初始配置2.1.3 路由器的接口配置2.1.4 路由配置 2.2 交换机配置2.2.1 交换机的基本概念2.2.2 交换机的初始配置2.2.3 交换机的端口配置2.2.4 VLAN 配…

盘库吧--搜索

网站介绍 网盘资源搜索&#xff0c;包含了百度、夸克、阿里、迅雷、115、天翼、UC 等网盘&#xff0c;支持链接有效性检测。 网站地址 https://panku8.com

如何进行技术选型?

前端技术发展速度快的看法 前端技术的更新换代确实非常快&#xff0c;几乎每年都会有新的框架、工具和最佳实践涌现。从 Vue 2 到 Vue 3、从 Webpack 到 Rspack/Vite、从 Redux 到 Zustand/Recoil&#xff0c;甚至前端工程化、微前端、Server Components 等方向也在快速演进。…

小程序网络大文件缓存方案

分享一个小程序网络大图加载慢的解决方案 用到的相关api getSavedFileList 获取已保存的文件列表&#xff1b;getStorageSync 获取本地缓存&#xff1b;downloadFile 下载网络图片&#xff1b;saveFile 保存文件到本地&#xff1b;setStorage 将数据储存到小程序本地缓存&…

电脑自动关机故障维修案例分享

电脑基本配置&#xff1a; C P U: AMD A10 9700 内存&#xff1a;8G 硬盘&#xff1a;金邦512G固态硬盘 主板&#xff1a;华硕 A320M-F 显卡&#xff1a;集成&#xff08;核心显卡&#xff09; 操作系统&#xff1a;Win10专业版 故障描述&#xff1a; 使用一段时间会黑屏…