神经网络的基本骨架——nn.Module(torch.nn里的Containers模块里的Module类)

**前置知识:

nn:neural network神经网络

1、torch.nn:与神经网络有关的库

Containers:torch.nn中的一个模块

Module:所有神经网络模型的基础类(Base class for all neural network modules)

注意:任何自定义的模型都应该继承自 nn.Module,并实现 __init__forward 方法,以定义模型的结构和前向传播的逻辑

2、x=torch.tensor(1.0):将输入数据转为张量,因为模型期望收到张量(tensor)类型的输入

因为模型的操作(如加法、矩阵乘法等)都是在张量上进行的

张量可以简单理解为一种多维数组,用于表示数据

  • 标量(0维张量) :一个单一的数字,比如 5

  • 向量(1维张量) :一组数字,比如 [1, 2, 3],可以看作是一条线上的点

  • 矩阵(2维张量):一个数字的表格,比如[ [1, 2], [3, 4] ]

  • 更高维的张量(3维及以上) :想象一下一个立方体,里面有许多数字,比如颜色的RGB值。更高维的张量可以表示更复杂的数据结构,比如视频帧、三维图像等

3、forward方法:如何由input计算得到output

forward和__call__的联系:

forward 是你定义的前向传播逻辑,用于计算输出的方法

__call__ 是一个特殊方法,用于使得模型实例可以像函数一样被调用,并负责调用 forward 以及处理其他一些功能

所以能让实例像函数一样被调用的实际上是__call__而不是forward

**代码:

自定义新模型:

继承nn.Module基类------>重写__init__方法和forward方法

python 复制代码
import torch
from torch import nn

class Xigua(nn.Module):

    def __init__(self):
        super().__init__()

    def forward(self,input):
        output=input+1
        return output

xigua1=Xigua() #先实例化新模型类,才能把它作为工具(一般有__call__方法的都这样做)
x=torch.tensor(1.0)
output=xigua1(x)
print(output)
相关推荐
AI医影跨模态组学2 分钟前
如何将机器学习模型评分与肿瘤微环境中的去乙酰化修饰及免疫细胞组成建立关联,并进一步解释其与NSCLC免疫治疗预后的机制联系
人工智能·机器学习·论文·医学·医学影像
多年小白42 分钟前
2026北京车展深度解析:L3自动驾驶量产落地,AI大模型上车从PPT变现实
人工智能·科技·机器学习·ai·自动驾驶
ECT-OS-JiuHuaShan42 分钟前
功夫不负匠心人,渡劫代谢舞沧桑
android·开发语言·人工智能·算法·机器学习·kotlin·拓扑学
源码之家44 分钟前
Python股票数据分析与预测系统 大数据项目
大数据·python·机器学习·数据挖掘·数据分析·股票·可视化
明月照山海-1 小时前
机器学习周报四十二
机器学习
AI木马人2 小时前
7.【RAG系统完整实战】如何让AI读取你的私有数据?(从原理到落地)
人工智能·深度学习·神经网络·自然语言处理
冰西瓜6002 小时前
深度学习的数学原理(三十)—— Transformer的子层连接:残差+层归一化
人工智能·深度学习·transformer
β添砖java2 小时前
深度学习(6)softmax回归、损失函数、分类
人工智能·深度学习·回归
拾-光2 小时前
LTX-Video 2.3 实战:用图片生成视频,消费级显卡也能跑的开源 I2V 模型(GPT Image 2)
java·人工智能·python·深度学习·算法·机器学习·音视频
薛定谔的猫3692 小时前
DeepSeek-V3 模型架构与训练技术深度解析
深度学习·ai·llm·machine learning·moe·deepseek