torch.nn

Container

Module

CLASS torch.nn.Module SOURCE

它是所有神经网络模型的基类,你的模块应该继承于该类。

模块还能包含其他模块,允许把它们嵌套在一个树结构中。你可以分配子模块作为常规属性:

1
2
3
4
5
6
7
8
9
10
11
12
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 = F.relu(self.conv1(x))
return F.relu(self.conv2(x))

用这种方式分配的模块将会显示,并且当你调用to( )等等方法,它们的参数也将被转换。

注:

正如上面的例子一样,一个__init__()调用父类必须在子类赋值之前完成。


变量

training(bool)-布尔值代表这个模块是训练模式还是评估模式

add_module(name, module) SOURCE

​ 添加一个子模块到当前模块

​ 这个模块可以用给定的名称作为属性访问模块

​ 参数:

​ ·name(string)-子模块的名字,这个子模块可以用给定的名称作为属性访问。

​ ·module(Module)-子模块添加到模块上