神经网络的基本骨架 nn.module 与卷积操作

复制代码
import torch
from torch import nn


class Tudui(nn.Module):
    def __init__(self):
        super().__init__()

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

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

疑问:tudui = Tudui()

output=tudui(x) 为何写成output = Tudui(x)就会报错

PyTorch 的标准做法(先创建实例,再调用实例)

  • tudui = Tudui() 创建了 Tudui 类的一个实例。
  • 这个实例可以被多次使用,而不需要每次都创建新的对象。
  • output = Tudui(x) 时,Python 实际上在做两件事:
    a) 创建 Tudui 类的实例
    b) 尝试用 x 作为参数调用这个新创建的实例

卷积操作

复制代码
import torch
import torch.nn.functional as F

input = torch.tensor([[1, 2, 0, 3, 1],
                      [0, 1, 2, 3, 1],
                      [1, 2, 1, 0, 0],
                      [5, 2, 3, 1, 1],
                      [2, 1, 0, 1, 1]])

kernel = torch.tensor([[1, 2, 1],
                       [0, 1, 0],
                       [2, 1, 0]])

input = torch.reshape(input,shape=(1,1,5,5))
kernel = torch.reshape(kernel, (1, 1, 3, 3))

print(input.shape)
print(kernel.shape)

output = F.conv2d(input, kernel, stride=1)
print(output)

output2 = F.conv2d(input, kernel, stride=2)
print(output2)

output3 = F.conv2d(input, kernel, stride=1, padding=1)
print(output3)

padding = 1 就是 在原卷积层周围一圈补0

相关推荐
飞哥数智坊31 分钟前
Coze实战第13讲:飞书多维表格读取+豆包生图模型,轻松批量生成短剧封面
人工智能
newxtc1 小时前
【配置 YOLOX 用于按目录分类的图片数据集】
人工智能·目标跟踪·分类
kooboo china.2 小时前
Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(八):异步处理逻辑详解
前端·css·人工智能·编辑器·html·交互
newxtc2 小时前
【JJ斗地主-注册安全分析报告】
开发语言·javascript·人工智能·安全
黑码哥2 小时前
Copilot for Xcode (iOS的 AI辅助编程)
人工智能·copilot·ai编程·xcode·ai辅助编程
深科文库2 小时前
构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源
人工智能·chatgpt·llama
程序猿小D2 小时前
第22节 Node.js JXcore 打包
开发语言·人工智能·vscode·node.js·c#
ykjhr_3d3 小时前
AI 导游:开启智能旅游新时代
人工智能·旅游