• Pytorch框架学习记录6——torch.nn.Module和torch.nn.functional.conv2d的使用


    Pytorch框架学习记录6——torch.nn.Module和torch.nn.functional.conv2d的使用

    1. torch.nn.Module介绍

    所有神经网络模块的基类。

    你的模型也应该继承这个类。

    模块还可以包含其他模块,允许将它们嵌套在树结构中。

    注意:我们在使用nn.module构建神经网络时,需要在__init__()方法中对继承的Module类中的属性进行调用,因此在初始化方法中需要添加一句代码:

    super().__init__()
    
    • 1
    import torch
    from torch import nn
    
    
    class Test(nn.Module):
        def __init__(self):
            super().__init__()
    
    
        def forward(self, input):
            output = input + 1
            return output
    
    test = Test()
    x = torch.tensor(1)
    output = test(x)
    print(output)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2. torch.nn.functional.conv2d介绍

    torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

    在由多个输入平面组成的输入图像上应用 2D 卷积。

    参数

    • input – 形状的输入张量(minibatch ,in_channels , iH , iW)
    • weight- 形状过滤器(out_channels, in_channels/groups , kH , kW)
    • bias- 形状的可选偏差张量(out_channels). 默认:None
    • stride——卷积核的步幅。可以是单个数字或元组(sH, sW)。默认值:1
    • padding-输入两侧的隐式填充。可以是字符串 {‘valid’, ‘same’}、单个数字或元组(padH, padW)。默认值:0 padding='valid'与无填充相同。padding='same'填充输入,使输出具有与输入相同的形状。但是,此模式不支持 1 以外的任何步幅值。
    import torch
    from torch import nn
    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, (1, 1, 5, 5))
    kernel = torch.reshape(kernel, (1, 1, 3, 3))
    print(input)
    print(kernel)
    output = F.conv2d(input, kernel, stride=1, padding=1)
    print(output)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
  • 相关阅读:
    Jellyfish and Mex
    C陷阱与缺陷 第7章 可移植性缺陷 7.5 移位运算符
    ECMAScript新特性
    Since Maven 3.8.1 http repositories are blocked
    161_可视化_Power BI 复刻 GitHub 贡献热力图
    汽车R155法规包含那些国家?
    众佰诚:抖音网店挣钱吗
    华为十年架构师实战经验总结:大规模分布式系统架构与设计实战
    【Java 进阶篇】JavaScript 自动跳转首页案例
    第二十五章《图书管理系统》第2节:系统功能实现
  • 原文地址:https://blog.csdn.net/qq_45955883/article/details/126057357