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

深圳建网站兴田德润实惠本地网站建设视频教程

深圳建网站兴田德润实惠,本地网站建设视频教程,app开发制作的基本,备案网站还是域名在面向对象编程(OOP)中,继承 是一种允许你创建一个新类的机制,新类可以继承已有类的特性(如方法和属性),并且可以对其进行修改或扩展。 nn.Module 是 PyTorch 所有神经网络模块的基类&#xff…

在面向对象编程(OOP)中,继承 是一种允许你创建一个新类的机制,新类可以继承已有类的特性(如方法和属性),并且可以对其进行修改或扩展。

nn.Module 是 PyTorch 所有神经网络模块的基类,几乎所有的神经网络层、模型和操作都要继承自它,这是为了确保模型能够正确地与 PyTorch 的自动求导机制、优化器和其他工具一起工作。

1. 方法作用

nn.Module 类提供了几个核心方法:

__init__(self)init() 方法是初始化模型的地方。在这个方法里,你定义所有网络的层(如 nn.Linear、nn.Conv2d 等)、操作、权重等。也就是说,你在 init() 中定义了网络的结构。这个方法中,你需要调用 super().init() 来初始化父类的属性。

forward(self, *input):在这个方法里,你定义前向传播的过程,也就是输入数据如何经过不同的层处理得到输出,也就是前向传播过程。在 forward() 方法中,你指定了输入数据如何通过各个层和操作,最终得到输出。前向传播是模型的核心计算部分。

2. 简单例子

2.1 定义模型

假设你要自定义一个简单的全连接神经网络(MLP),你需要继承 nn.Module 来实现。这里是一个典型的结构:

import torch
import torch.nn as nn
import torch.optim as optim# 定义一个简单的神经网络
class SimpleNN(nn.Module):def __init__(self):super(SimpleNN, self).__init__()  # 继承父类 nn.Module 的初始化方法# 定义网络中的层self.fc1 = nn.Linear(2, 4)  # 第一层: 输入2维,输出4维self.fc2 = nn.Linear(4, 1)  # 第二层: 输入4维,输出1维def forward(self, x):# 定义前向传播过程x = torch.relu(self.fc1(x))  # 第一层通过ReLU激活函数x = self.fc2(x)  # 第二层没有激活函数,直接输出return x# 实例化模型
model = SimpleNN()
# 查看模型结构
print(model)

解读一下代码:
SimpleNN 类继承了 nn.Module,这是所有 PyTorch 模型的基础类。继承 nn.Module 使得我们能够使用 PyTorch 自动求导、优化器以及模型参数管理等功能。

__init__(self)

init() 中,我们定义了网络的层次结构(即各层的类型和大小)。比如,self.fc1 = nn.Linear(2, 4) 表示一个全连接层(fully connected layer),它的输入维度是 2,输出维度是 4。

注意:你需要调用 super().init() 来初始化父类 nn.Module,这样才能让模型正确地处理参数和梯度。

forward(self, *input)

在 forward() 中,我们定义了数据的流动过程。数据通过 fc1 层(第一层)并通过 ReLU 激活函数,然后再经过 fc2 层(第二层)输出结果。

需要注意的是,forward() 方法是我们定义数据如何从输入经过各层计算到输出的地方。

model = SimpleNN()会创建一个 SimpleNN 类的实例,这时模型的层和参数都已经初始化好了。

因此,我们通过继承 nn.Module 来创建模型类,使得我们能够利用 PyTorch 提供的很多便利功能,如自动求导、模型参数管理等。

2.2 训练网络

一旦你定义了模型,就可以使用 PyTorch 的优化器(如 SGD、Adam 等)进行训练了。以下是一个训练的简单框架:

# 定义损失函数和优化器
criterion = nn.MSELoss()  # 使用均方误差损失函数
optimizer = optim.SGD(model.parameters(), lr=0.01)  # 使用SGD优化器,学习率为0.01# 模拟输入数据和目标输出数据
inputs = torch.tensor([[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]])  # 假设输入是2维数据
targets = torch.tensor([[1.0], [2.0], [3.0]])  # 假设目标输出是1维数据# 训练过程
for epoch in range(100):  # 训练100个epochoptimizer.zero_grad()  # 每次迭代时,先将梯度清零# 前向传播outputs = model(inputs)  # 计算模型的预测值# 计算损失loss = criterion(outputs, targets)  # 计算损失值# 反向传播和优化loss.backward()  # 计算梯度optimizer.step()  # 更新模型参数if (epoch + 1) % 20 == 0:print(f'Epoch [{epoch+1}/100], Loss: {loss.item():.4f}')

文章转载自:

http://HRaMGjWq.thwcg.cn
http://CyJgzZ6t.thwcg.cn
http://o1M0cW88.thwcg.cn
http://IbRo8kPr.thwcg.cn
http://TcQ6CfYq.thwcg.cn
http://F6FR77xD.thwcg.cn
http://THb6njbn.thwcg.cn
http://WLZMBq3V.thwcg.cn
http://ULPUuY4g.thwcg.cn
http://OWXbDnFm.thwcg.cn
http://gbcHa5Y8.thwcg.cn
http://cXTmQnTr.thwcg.cn
http://xy0rhmfT.thwcg.cn
http://2m82jBI3.thwcg.cn
http://mFvopfH0.thwcg.cn
http://eZwdfXBv.thwcg.cn
http://gYh0teBW.thwcg.cn
http://AbSY8YRP.thwcg.cn
http://fbUEk409.thwcg.cn
http://gjvIZFPH.thwcg.cn
http://20D56WZF.thwcg.cn
http://kkLXkHta.thwcg.cn
http://9zdfYdbK.thwcg.cn
http://ZJJ5HCiv.thwcg.cn
http://z5jkbWNH.thwcg.cn
http://ew297h76.thwcg.cn
http://tDRKHHtD.thwcg.cn
http://SOPmO6gS.thwcg.cn
http://PKKgVKXW.thwcg.cn
http://g4cgcJxx.thwcg.cn
http://www.dtcms.com/wzjs/780633.html

相关文章:

  • 遂宁网站开发网络营销平台搭建方案网站
  • 网站运营者是做啥工作的英文谷歌seo
  • p2p网站建设方案策划书研发了一个app以后怎么盈利
  • 网站怎么做缓存建设工程和工程建设
  • 顺德网站制作公司海城网站建设
  • 网站关键词选取方法自己建的网站也要注册域名吗
  • 鞋网站模版设计公司logo公司文化
  • 西安哪里可以做公司网站做指甲的网站
  • 无为县做互联网网站服装市场调研报告范文
  • 杭州酒店网站建设做游戏的网站
  • 保定手机网站建设专业网络营销外包公司
  • 网站每个月8g流量做网站要付哪些钱
  • 库尔勒网站建设广州网页设计公司招聘
  • 创网站多少钱网页制作英文
  • 襄阳住房和城乡建设局网站首页南昌企业建设网站开发
  • 常宁市建设局网站有什么做照片书的网站
  • 做logo好的网站微信公众号怎么做链接网站
  • 手机在线建站揭阳网站建设antnw
  • 网站淘宝客怎么做的建设银行网站调用支付源码
  • 网站如何做电脑销售seo外链优化方法
  • 网站开发费用无形资产网站推广大概需要多少钱
  • 主体备案与网站备案专业做微视频的网站
  • 中国建设银行官方网站下载域名申请的步骤包括
  • 可以做录音兼职的网站网页制作与设计的英文
  • cms网站后台模版wordpress设置视频图片不显示图片
  • 网易严选的网站建设多多卡起货网站建设
  • 深圳网站建设科技有限公司软件服务外包人才培养专业
  • 江苏网站推广公司哪家好项目网络图最早开始时间
  • 专业的网站设计师摄影 网站 模板
  • 网站程序安全管理莱芜车管所网站