神经网络的基本骨架-nn.Module
进入pytorch官网,点击Docs,选择Pytorch,左侧Python API下面点击torch.nn
nn: neural network
torch.nn — PyTorch 2.1 documentation
TORCH.NN
These are the basic building blocks for graphs:
torch.nn
- Containers “容器”:给神经网络定义了一些骨架和结构,需要在骨架中添加不同的内容来组成神经网络
下面则是骨架中需要填充的东西
Module | Base class for all neural network modules. |
|---|---|
Sequential | A sequential container. |
ModuleList | Holds submodules in a list. |
ModuleDict | Holds submodules in a dictionary. |
ParameterList | Holds parameters in a list. |
ParameterDict | Holds parameters in a dictionary. |
import torch.nn as nn
import torch.nn.functional as F
class Model(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(1, 20, 5)
self.conv2 = nn.Conv2d(20, 20, 5)
def forward(self, x): # x is input data
x = F.relu(self.conv1(x))
return F.relu(self.conv2(x))
- Convolution Layers 卷积层
- Pooling layers 池化层
- Padding Layers 填充层
- Non-linear Activations (weighted sum, nonlinearity) 非线性激活
- Non-linear Activations (other) 非线性激活
- Normalization Layers 正则化层
- Recurrent Layers
- ...
简单示例
import torch
from torch import nn
# 搭建自己的神经网络
class XiaoMo(nn.Module):
def __init__(self):
super(XiaoMo, self).__init__()
def forward(self, input):
output = input + 1
return output
xiaomo = XiaoMo()
x = torch.tensor(1.0)
output = xiaomo(x)
print(output)