所有神经网络模块的基类。
你的模型也应该继承这个类。
模块还可以包含其他模块,允许将它们嵌套在树结构中。
注意:我们在使用nn.module构建神经网络时,需要在__init__()
方法中对继承的Module类中的属性进行调用,因此在初始化方法中需要添加一句代码:
super().__init__()
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)
torch.nn.functional.conv2d
(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)
在由多个输入平面组成的输入图像上应用 2D 卷积。
参数
(minibatch ,in_channels , iH , iW)
(out_channels, in_channels/groups , kH , kW)
(out_channels)
. 默认:None
(sH, sW)
。默认值:1padding='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)