当前位置: 首页 > wzjs >正文

网站建设是前端后端吗青岛市平台公司

网站建设是前端后端吗,青岛市平台公司,如何做好一个网站运营,在网站上有中英切换怎么做全连接神经网络3.3.1 特点3.3.2 计算步骤3.3.3 基本组件认知激活函数组件损失函数组件优化器3.3.3 创建全连接神经网络前馈神经网络(Feedforward Neural Network,FNN)是一种最基本的神经网络结构,其特点是信息从输入层经过隐藏层单…

全连接神经网络

      • 3.3.1 特点
      • 3.3.2 计算步骤
      • 3.3.3 基本组件认知
        • 激活函数组件
        • 损失函数组件
        • 优化器
        • 3.3.3 创建全连接神经网络

前馈神经网络(Feedforward Neural Network,FNN)是一种最基本的神经网络结构,其特点是信息从输入层经过隐藏层单向传递到输出层,没有反馈或循环连接

全连接神经网络(Fully Connected Neural Network,FCNN)是前馈神经网络的一种,每一层的神经元与上一层的所有神经元全连接,常用于图像分类、文本分类等任务。
在这里插入图片描述
在这里插入图片描述
如上图,网络中每个神经元:
z1=x1∗w1+x2∗w2+b1z2=x1∗w1+x2∗w2+b2z3=x1∗w1+x2∗w2+b3z_1 = x_1*w_1 + x_2*w_2+b_1 \\ z_2 = x_1*w_1 + x_2*w_2+b_2 \\ z_3 = x_1*w_1 + x_2*w_2+b_3 z1=x1w1+x2w2+b1z2=x1w1+x2w2+b2z3=x1w1+x2w2+b3
说明:三个等式中的w1和w2在这里只是为了方便表示对应x1和x2的权重,实际三个等式中的w值是不同的。

向量x为:[x1,x2][x_1,x_2][x1,x2]

向量w:(w1,w2w1,w2w1,w2)\begin{pmatrix}w_1,w_2\\w_1,w_2\\w_1,w_2 \end{pmatrix}w1,w2w1,w2w1,w2,其形状为(3,2),3是神经元节点个数,2是向量x的个数

向量z:[z1,z2,z3][z_1,z_2,z_3][z1,z2,z3]

向量b:[b1,b2,b3][b_1,b_2,b_3][b1,b2,b3]

所以用向量表示为:
z=(z1,z2,z3)=(x1,x2)(w1,w1,w1w2,w2,w2)+(b1,b2,b3)=(x1,x2)(w1,w2w1,w2w1,w2)T+(b1,b2,b3)=xwT+bz = \begin{pmatrix}z_1,z_2,z_3 \end{pmatrix}=\begin{pmatrix}x_1,x_2 \end{pmatrix}\begin{pmatrix}w_1,w_1,w_1\\w_2,w_2,w_2\end{pmatrix}+\begin{pmatrix}b_1,b_2,b_3 \end{pmatrix}=\begin{pmatrix}x_1,x_2 \end{pmatrix}\begin{pmatrix}w_1,w_2\\w_1,w_2\\w_1,w_2 \end{pmatrix}^T + \begin{pmatrix}b_1,b_2,b_3 \end{pmatrix}=xw^T+b z=(z1,z2,z3)=(x1,x2)(w1,w1,w1w2,w2,w2)+(b1,b2,b3)=(x1,x2)w1,w2w1,w2w1,w2T+(b1,b2,b3)=xwT+b

  • x是输入数据,形状为 (batch_size, in_features)。
  • W是权重矩阵,形状为 (out_features, in_features)。
  • b是偏置项,形状为 (out_features,)。
  • z是输出数据,形状为 (batch_size, out_features)。、

batch_size:数据或者样本的数量,即数据的条数

in_features:一条数据中x的数量(x的特征数量)

out_features:一个y的特征数量

3.3.1 特点

  • 全连接层: 层与层之间的每个神经元都与前一层的所有神经元相连。
  • 权重数量: 由于全连接的特点,权重数量较大,容易导致计算量大、模型复杂度高。
  • 学习能力: 能够学习输入数据的全局特征,但对于高维数据却不擅长捕捉局部特征(如图像就需要CNN)。

3.3.2 计算步骤

  1. 数据传递: 输入数据经过每一层的计算,逐层传递到输出层。
  2. 激活函数: 每一层的输出通过激活函数处理。
  3. 损失计算: 在输出层计算预测值与真实值之间的差距,即损失函数值。
  4. 反向传播(Back Propagation): 通过反向传播算法计算损失函数对每个权重的梯度,并更新权重以最小化损失。

3.3.3 基本组件认知

先初步认知,他们用法基本一样的,后续在学习深度神经网络和卷积神经网络的过程中会很自然的学到更多组件!

官方文档:https://pytorch.org/docs/stable/nn.html
线性层组件

nn.Linear是 PyTorch 中的一个非常重要的模块,用于实现全连接层(也称为线性层)。它是神经网络中常用的一种层类型,主要用于将输入数据通过线性变换映射到输出空间。

torch.nn.Linear(in_features, out_features, bias=True)

参数说明:

in_features:

  • 输入特征的数量(即输入数据的维度)。
  • 例如,如果输入是一个长度为 100 的向量,则 in_features=100。

out_features:

  • 输出特征的数量(即输出数据的维度)。
  • 例如,如果希望输出是一个长度为 50 的向量,则 out_features=50。

bias:

  • 是否使用偏置项(默认值为 True)。
  • 如果设置为 False,则不会学习偏置项。
    线性层使用代码:
 '''线性层的使用'''x=torch.tenor([1,2,3,4,5],dtype=torch.float).view(-1,1)y=torch.tensor([3,5,7,9,11], dtype=torch.float).view(-1,1)model=nn.Linear(x.size(1),y.size(1))
  • 使用nn.Linear(in_features,out_features)
  • 注意Linear的参数与x,y的特征值有关,x,y维度要进行处理不能是一维

如果模型中线性层按顺序叠加,也可以使用nn.Sequential构建模型。nn.Sequential 是一个顺序容器,内置了自动的前向传播逻辑,它会自动将输入数据依次传递给其中的每一层,并执行前向传播,不需要显式定义 forward() 方法。

import torch
from torch import nninput_size = 32
# 定义全连接神经网络模型
model = nn.Sequential(nn.Linear(input_size, 64),nn.Linear(64, 32),nn.Linear(32, 1)
)
print(model)
激活函数组件

激活函数的作用是在隐藏层引入非线性,使得神经网络能够学习和表示复杂的函数关系,使网络具备非线性能力,增强其表达能力。

常见激活函数

sigmoid函数:

import torch.nn.functional as F
sigmoid = F.sigmoid()

tanh函数:

tanh = F.tanh

ReLU函数:

import torch.nn as nn
relu = nn.ReLU()

LeakyReLU函数:

leaky_relu = nn.LeakyReLU(negative_slope=0.01)

softmax函数:

softmax = F.softmax
损失函数组件

损失函数的主要作用是量化模型预测值(y^)与真实值(y)之间的差异。通常,损失函数的值越小,表示模型的预测越接近真实值。训练过程中,通过优化算法(如梯度下降)最小化损失函数,从而调整模型的参数。

PyTorch已内置多种损失函数,在构建神经网络时随用随取!

文档:https://pytorch.org/docs/stable/nn.html#loss-functions

根据任务类型(如回归、分类等),损失函数可以分为以下几类:

回归任务的损失函数

1.均方误差损失(MSE Loss)

  • 函数: torch.nn.MSELoss

    import torch.nn as nn
    loss_fn = nn.MSELoss()
    

2.L1 损失(L1 Loss)

也叫做MAE(Mean Absolute Error,平均绝对误差)

  • 函数: torch.nn.L1Loss

    import torch.nn as nn
    loss_fn = nn.L1Loss()
    

分类任务的损失函数

1.交叉熵损失(Cross-Entropy Loss)

  • 函数: torch.nn.CrossEntropyLoss

    cross_entropy_loss = nn.CrossEntropyLoss()
    
  • 参数:reduction:mean-平均值,sum-总和

  • 适用场景: 用于多分类任务。

2.二元交叉熵损失(Binary Cross-Entropy Loss)

  • 函数: torch.nn.BCELoss 或 torch.nn.BCEWithLogitsLoss

    bce_loss = nn.BCELoss()
    bce_with_logits_loss = nn.BCEWithLogitsLoss()
    
  • 适用场景: 用于二分类任务。

  • 特点: BCEWithLogitsLoss 更稳定,因为它结合了 Sigmoid 激活函数和 BCE 损失。

  • 注意:使用 nn.BCELoss 时,需要确保预测值经过 sigmoid 函数处理。如果预测值是 logits(即未经 sigmoid 处理的预测值),可以使用 nn.BCEWithLogitsLoss,它内部会自动应用 sigmoid 函数。

优化器

官方文档:https://pytorch.org/docs/stable/optim.html

在PyTorch中,优化器(Optimizer)是用于更新模型参数以最小化损失函数的核心工具。

PyTorch 在 torch.optim 模块中提供了多种优化器,常用的包括:

  • SGD(随机梯度下降)
  • Adagrad(自适应梯度)
  • RMSprop(均方根传播)
  • Adam(自适应矩估计)

核心方法有:

zero_grad():清空模型参数的梯度(将梯度置零)。必须在loss.backward()之前调用zero_grad(),避免梯度累积。

step():参数更新;是优化器的核心方法,用于根据计算得到的梯度更新模型参数。优化器会根据梯度和学习率等参数,调整模型的权重和偏置。

3.3.3 创建全连接神经网络

创建一个最基本的全连接神经网络(也称为多层感知机,MLP)通常需要以下:步骤和方法

http://www.dtcms.com/wzjs/812226.html

相关文章:

  • 深圳龙华网站公司如何在线上注册公司
  • 网站建设es158百度seo wordpress插件
  • 微信网站备案建站教程
  • 网站 备案 注销石家庄新钥匙网站
  • 网站维护要什么cms系统网站
  • 服装网站开发项目计划书华安网站建设
  • 成年做羞羞的视频网站淄博seo推广
  • 网站建设与案例管理的心得体会个人邮箱163免费注册
  • 东莞微信网站建设推荐统一企业信息管理系统网站
  • 前端做兼职网站中国室内设计网联盟
  • 上海知名网站推广腾讯企业邮箱申请
  • 国内工业设计网站科技部网站支持湖南建设创新型省份
  • 东莞自助建站软件广州市天气
  • 企业网站建设大概费用农村建设网站
  • 网站建设培训 苏州行业网址大全
  • 太原网站seo网站改版方案策划书
  • 小程序 企业网站网页设计top
  • 打开一个网站为繁体字是怎么做的国外电子政务j建设与我国电子政务网站建设对比
  • 普通网站要什么费用wordpress 金融
  • 网站开发技术写什么内容深圳公司注册地址
  • 厦门微网站建设公司哪家好定制app开发的流程
  • 上海做网站公自己制作app需要什么
  • 如何做网站活动html网页制作app下载
  • 英文网站备案专门做问卷的调查的网站
  • 石家庄做网站排名重庆优化网站排名
  • 企业网站建设公司 丰台开发网站的费用属于什么费用
  • 免费素材下载网站有哪些搭建网站建设
  • 新开三端互通传奇网站免费外链生成器
  • 建设企业网站模板下载江苏网站建设哪家快点
  • 阳泉市住房保障和城乡建设管理局网站小程序登录密码怎么找回