pytorch 常用命令 (2)

容器

1.torch.nn.Module()

add_module(name,module): 将一个child module加入到当前的module,用model.name来获取

children():model.children()来查看所有的子模块

modules():返回所有的模块,与children的区别是也返回当前的模块

eval(): 变成为测试模式,不启用batch normalization 和 dropout

batch normalization在训练时,要计算每个mini-batch的均值和反差,然后归一化x,再进行变化输出;在测试时,没有batch,使用全部训练集的均值和反差

dropout在训练时是为了防止过拟合,以p概率失活神经元;在测试时,使用所有的神经元,但是它们的输出乘以系数1-p

parameters();named_parameters();state_dict()

都用来查看model的参数,但是parameters()是有参数的tensor值,没有参数名

state_dict()不仅仅module有,optimizer也有

2.torch.nn.ModuleList

将submodule保存为一个list

eg: self.linears = nn.ModuleList([nn.Linear(10, 10) for i in range(10) ])

3.torch.nn.sequential()

是一个有序的modules序列

4.torch.nn.conv2d(in_channel,out_channel,kernel_size,stride,padding)

in_channal是输入通道数,如rgb3个通道。对H ,W进行卷积

torch.nn.maxpool2d(kernal_size,stride,padding)

5.non_linear function

torch.nn.Relu()

torch.nn.sigmod()

torch.nn.softmax()

6.model

torch.nn.rnn()

torch.nn.lstm()

torch.nn.linear()

torch.nn.dropout(p)

torch.nn.embedding()

原文地址:https://www.cnblogs.com/jinchang/p/14358453.html