一、容器(在Net网络类的__init__函数中使用)
1、nn.Sequetial:按顺序包装多个网络层
class Net(nn.module):
def __init__(self,classes)
super(Net,self).__init__()
self.network = nn.Sequetial(
nn.Conv2d(3,6,5),
nn.ReLU())
self.network.add_module('MaxPool',nn.MaxPool2d(kernel_size=2,stride=2))
self.network.add_module(nn.MaxPool2d(kernel_size=2,stride=2))
def forward(self,x):
x = self.network(x)
x = x.view(x.size()[0],-1)
2、nn.ModuleList:像python的list一样包装多个网络层
2.1 extend() # 拼接两个ModuleList
2.2 insert() # 在指定ModuleList位置插入网络层
class Net(nn.module):
def __init__(self)
super(Net,self).__init__()
self.linears = nn.ModuleList(
nn.Linear(10,10) for i in range(3)])
self.linears.append(nn.Linear(10,1))
def forward(self,x):
for linear in self.linears:
x = linear(x)
return x
3、nn.moduleDict:像python的dict一样包装多个网络层
# clear() 清空ModuleDict
# items() 返回可迭代的键值对
# keys() 返回字典的键
# values() 返回字典的值
# pop() 返回一对键值,并从字典中删除
其他
1、torch.nn.Parameter:张量子类,表示可学习参数,如weight,bias
2、torch.nn.Module:所有网络基类,管理网络属性
3、torch.nn.functional:函数具体实现,如卷积、池化、激活函数等
4、torch.nn.init:参数初始化方法