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

建个网站能赚钱吗大型网站建设基本流程

建个网站能赚钱吗,大型网站建设基本流程,深圳做网站哪个好,自己做的网站链接到微信支付界面视频链接:详解神经网络是如何训练的——细节到每个参数(👉戳右边合集观看最新Transformer相关教程)_哔哩哔哩_bilibili 1.nn.Parameter() 在 PyTorch 中,nn.Parameter() 是一个特殊的类(torch.nn.Paramet…

视频链接:详解神经网络是如何训练的——细节到每个参数(👉戳右边合集观看最新Transformer相关教程)_哔哩哔哩_bilibili

1.nn.Parameter()

在 PyTorch 中,nn.Parameter() 是一个特殊的类(torch.nn.Parameter),用于定义神经网络中可学习的参数(如权重、偏置等)。它是 torch.Tensor 的子类,核心作用是:当把 Parameter 对象赋值给 nn.Module 类(或其子类,如自定义模型、层)的属性时,会自动被注册为模型的参数,并参与训练时的梯度计算和更新。

  • nn.Parameter 会被自动纳入模型的参数管理,是 “可学习参数” 的官方标记方式。
    import torch
    from torch import nn
    class Model(nn.Module):def __init__(self):super().__init__()self.w=nn.Parameter(torch.randn(2,3))self.b=nn.Parameter(torch.zeros(2))def forward(self,x):return x@self.w.t()+self.b
    model=Model()
    for name,param in model.named_parameters():print(f"参数名:{name},形状:{param.shape}")

    注意:在 PyTorch 中,torch.randn(4, 3) 会生成一个形状为 (4, 3) 的张量,其元素是服从标准正态分布(均值为 0,标准差为 1)的随机数。因此,self.w 的具体数值是随机生成的,每次运行代码都会得到不同的结果。

2.损失函数标准差的计算

其中data_train.iloc[i:i+4, :-1]是panda中按位置提取数据的操作,是一个panda_DataFrame对象,要求变量名不能有空格,由此命名为data_train。i:i+4表示选取从索引 i 到 i+3 的连续 4 行数据,:-1表示选取除最后一列之外的所有列。而只有-1表示选取最后一列。

3.self的用法

不是所有的类中的函数(方法)都有self参数,类的方法有实例化方法,类方法,静态方法。

实例化方法要求第一个参数是self,self 代表调用该方法的实例对象本身。

类方法:用 @classmethod 装饰,第一个参数必须是 cls(代表类本身),不需要 self
作用:操作类的属性或创建实例(与类相关,不依赖具体实例)。

静态方法:用 @staticmethod 装饰,既不需要 self,也不需要 cls,本质上是定义在类命名空间中的普通函数。
作用:提供与类相关的工具功能,不依赖类或实例的状态。

4.pyTorch模型训练步骤

初始化模型 → 2. 初始化优化器(依赖模型参数,需在模型之后)→ 3. 准备数据 → 4. 循环训练(多轮 Epoch)

每轮训练:梯度清零 → 前向传播(算 y_pred)→ 计算损失 → 反向传播(算梯度)→ 优化器更新参数(用梯度调参)

import torch
from torch import nn
import numpy as np
import pandas as pd
from torch.optim import AdamWclass Model(nn.Module):def __init__(self):super().__init__()self.w = nn.Parameter(torch.tensor([[0.1,0.2],[0.2,0.3],[0.1,0.3]]))  # 权重:(1,2),对应2个特征self.b = nn.Parameter(torch.tensor([0.0,0.1,0.2]))     # 偏置:self.softmax=nn.Softmax(-1)def forward(self, x):# 修正:用squeeze()将输出从(3,1)转为(3,),与y的形状完全匹配return self.softmax((x @ self.w.t() + self.b).squeeze()  )@staticmethoddef loss(y_pred, y):return ((y_pred - y) ** 2).mean()  # MSE损失if __name__ == '__main__':# 1. 初始化模型model = Model()print(model.w) print(model.b)# 2. 初始化优化器(必须在模型之后)optimizer = AdamW(params=model.parameters(),lr=0.1  # 学习率)# 3. 准备训练数据data_list = [[1, 2, 3, 4],   # x取前2列[1,2],y取最后1列[4][2, 3, 4, 5],   # x取[2,3],y取[5][3, 4, 5, 6]    # x取[3,4],y取[6]]data_train = pd.DataFrame(data_list)# 4. 训练循环(核心修正部分)epochs = 10  # 训练轮次for epoch in range(epochs):  # 外部epoch循环:用epoch而非i,避免变量冲突# 关键1:每个epoch重置损失列表,不累积历史损失epoch_loss_list = []  # 关键2:内部数据循环用j,避免与外部epoch变量冲突(原代码用i覆盖)for j in range(0, len(data_train), 4):  #核心作用是从 data_train 的第 0 个元素开始,每间隔 4 个元素取一个索引 j,通常用于 批量处理数据(比如每次处理 4 个样本,即批量大小为 4)# 提取特征x:前2列,形状(3,2)(3个样本,每个样本2个特征)x = torch.tensor(np.array(data_train.iloc[j:j+3, :-2]), dtype=torch.float32)# 提取标签y:最后1列,形状(3,)(3个样本,每个样本1个标签)y = torch.tensor(np.array(data_train.iloc[j:j+3, -1]), dtype=torch.float32)# 前向传播:得到y_pred(形状(3,))y_pred = model(x)# 计算当前批次损失batch_loss = Model.loss(y_pred, y)# 收集当前epoch的批次损失epoch_loss_list.append(batch_loss)# 5. 反向传播与参数更新(关键修正:顺序和梯度清零)optimizer.zero_grad()  # 关键3:先清零梯度,再反向传播(原代码顺序颠倒)total_epoch_loss = sum(epoch_loss_list)  # 当前epoch的总损失(不累积历史)total_epoch_loss.backward()  # 对当前epoch的总损失反向传播optimizer.step()  # 更新参数# 6. 打印训练日志(观察损失下降和参数更新)print(f"Epoch: {epoch+1:2d} | Total Loss: {total_epoch_loss.item():.4f}")print(model.w)print(model.b)y_preds=[torch.round(y_pre) for y_pre in y_pred]print('#########',y_preds)accuracy=(np.array(y_pred)==(np.array(y))).mean()print('Accaracy:',accuracy)

5,前向传播和反向传播的区别

6.nn.Linear()

nn.Linear 是 PyTorch(torch.nn 模块)中实现线性变换的核心层类,本质是对输入数据执行「矩阵乘法 + 偏置加法」操作,公式为:
y = x · Aᵀ + b
其中:x 是输入,A 是层的权重矩阵,b 是偏置向量(可选),y 是输出。它是神经网络中构建全连接层、输入输出层的基础组件。

import torch
from torch import nn
torch.random.manual_seed(42)class F1(nn.Module):def __init__(self):super().__init__()self.softmax=nn.Softmax(-1)self.linear=nn.Linear(4,3)def forward(self,x):return self.softmax(self.linear(x))f=F1()
X=torch.tensor([[1.2,2.1,3.3,4.5],[2.3,3.4,4.5,5.1]
])y_pred=f(X)
print(y_pred)
print(f.linear.weight)
print(f.linear.bias)

7.密集张量与稀疏张量的区别

密集张量存储全部元素(包括大量无意义的零值 / 无效值),稀疏张量仅存储 “有意义的非零 / 有效元素” 及其位置,二者适用于不同数据场景。

稀疏张量: 例如一个3×4 的表格,若只有 2 个非零值,只需记录这 2 个值的 “行号、列号” 和 “值本身”,无需记录其他零值。

密集张量:比如一个 3×4 的表格,即使大部分单元格是 0,也会把每个单元格的内容(包括 0)都记录下来。

8.TensorFlow,Pytorch和Transfrom的关系

TensorFlow 和 PyTorch 是 “平行的深度学习工具”,都能将 “Transformer 这个序列建模方案” 转化为可训练、可运行的模型;Transformer 依赖这两个框架(或其他框架)实现,而两个框架则通过支持 Transformer,拓展了自身处理序列任务的能力。

http://www.dtcms.com/a/546074.html

相关文章:

  • 肇庆市专注网站建设平台wordpress 数据库导入数据库文件
  • 电子学会青少年机器人技术(三级)等级考试试卷-实操题(2025年9月)
  • 根桥故障恢复过程
  • 仓颉技术:Set集合的去重机制
  • 哪里有专业网站建设公司如何登陆建设银行信用卡网站
  • 网站下载的app删除了怎么找到做家具网站要多少钱
  • 建设报名系统官方网站网络科技公司注册
  • 天将建设集团有限公司网站机床网站建设
  • 【计算机网络】HTTPS加密机制详解:从对称加密到证书认证的安全通信
  • Rust WebSocket 实战:从握手帧到百万连接的架构级落地
  • 做医疗网站要几个人表情包生成器在线制作
  • 【AI WorkFow】n8n 源码分析-项目结构(一)
  • 北京网站建设咸宁商城网站模板库
  • 推动楼宇自控系统长效发展:可持续策略与实践要点
  • 影盟自助网站建设阿里云wordpress更新
  • 景区门户网站建设魏县做网站的
  • jQuery Mobile 列表内容
  • 西安网站开发公司保山哪里有网站建设
  • 合肥网站空间市环保局网站建设方案
  • 【HarmonyOS】通知的基本操作
  • 乐吾乐3D可视化数字孪生案例【储能电站智慧园区可视化】
  • 仓颉反射API深度解析:从原理到鸿蒙生态实战
  • 城乡与住房建设厅网站首页网站建设服务哪家好
  • rust:猜数字小游戏
  • 天河网站+建设信科网络申请免费网站建设
  • 做ppt的软件怎么下载网站台州路桥做网站的公司
  • 网站如何做备份谷歌账号注册
  • 第三次周赛题解
  • 6.3.2.1 大数据方法论与实践指南-实时任务质量治理
  • 网站页面设计需求文档案例学 网页设计与网站建设