神经网络骨架nn.Module

文章目录

一、认识nn.Module

nn.Module 是 PyTorch 中的一个核心类,它是所有神经网络模块的基类。在 PyTorch 中构建模型时,通常会继承这个类来创建自定义的网络结构。nn.Module 提供了一系列用于构建神经网络的工具和方法,

具体有:

  • 层注册:可以通过 add_module 方法或者在 init 方法中使用 self. =
    的方式向模块中添加子模块(即层)。这些子模块可以是其他 nn.Module 的实例,如 nn.Linear、nn.Conv2d 等。
  • 参数管理:nn.Module 自动跟踪所有子模块的参数(如权重和偏置),使得参数的管理和更新变得更加方便。
  • 前向传播:通过定义 forward 方法来指定模型的前向传播逻辑。当模型被调用时(例如 model(input)),forward
    方法会被执行,并且输入数据会按照 forward 方法中定义的方式进行处理。
  • 训练模式与评估模式:nn.Module 有一个 .train() 方法用于设置模型为训练模式(启用 Dropout 等),以及一个
    .eval() 方法用于设置模型为评估模式(禁用 Dropout 等)。
  • 参数优化:nn.Module 可以与优化器(如 torch.optim.Adam 或
    torch.optim.SGD)配合使用,优化器会利用模型的参数进行梯度下降等优化操作。

二、nn.Module的基础加1操作

进行一个非常简单的操作:对输入数据加1。

bash 复制代码
import torch
from torch import nn

class Tudui(nn.Module):
    def __init__(self):
        #这行代码调用了父类(即nn.Module)的初始化函数。在PyTorch中,这是必要的,因为它会设置一些内部结构,使得模型可以正确地注册参数和子模块。
        super().__init__()

    #这是定义模型前向传播的函数。在PyTorch中,forward函数指定了如何将输入数据转换为输出数据。这个函数必须定义,因为它是模型的核心。
    def forward(self,input):
        output = input + 1
        return output

tudui = Tudui()
x = torch.tensor(1.0)
output = tudui(x)
print(output)

运行结果:

注:这是因为将一个值为 1.0 的张量 x 传递给模型,模型将其增加 1,所以输出是 2.0。

相关推荐
Likeadust1 分钟前
多视角直播破局!企业融媒体系统在线高清直播EasyDSS多路同屏技术,重构实时可视化传播体验
人工智能·重构·媒体
万邦科技Lafite1 分钟前
1688一键创建订单付款API操作指南讲解
人工智能·微信·api·电商开放平台·淘宝开放平台·api开放接口
Forerror20262 分钟前
API网关能做什么?MAI Gateway如何赋能企业AI能力
人工智能·maigateway·finapi·企业级ai网关·大模型财务管控
weixin_307779134 分钟前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
海兰10 分钟前
【 Python 量化交易】第6章:数据可视化
开发语言·python·信息可视化
多多鼠11 分钟前
Tool Calling的信任边界:从协议校验到执行沙箱的完整链路设计
运维·开发语言·网络·人工智能·python·langchain
一水鉴天15 分钟前
问题分类的三元组映射体系与求解方法论 20260901(千问)
人工智能·算法·机器学习
ar012319 分钟前
AR工业眼镜应用:从现场辅助工具升级为工业作业智能入口
人工智能·ar
承渊政道20 分钟前
不只会打字回复:Open-LLM-VTuber接入大模型,让AI能听、能说、还能看到屏幕
人工智能·语音识别·智能问答·cpolar·open-llm-vtuber·多模态 ai 助手
Jazz_z27 分钟前
使用 Python 合并与取消合并 Excel 单元格
开发语言·python·excel