Pytorch中神经网络模块化结构nn的了解——慢慢补充
torch.nn是专门为神经网络设计的模块化接口,nn构建与autograd之上,可以用来定义和运行神经网络。
torch.nn.parameter
在深度学习的模型中,常见这样的语句:
#method 1
import torch
self.bias = torch.nn.parameter(torch.FloatTensor(out_features))
#method 2
import torch
from torch.nn.parameter import Paramenter
self.bias = Parameter(torch.FlaotTensor(out_features))
可以把这个函数理解为类型转换函数,将一个不可训练的类型Tensor转换成可以训练的类型parameter。
并将这个parameter绑定到这个module里面,所以经过类型转换self.bias等变成了模型的一部分,成为了模型中根据训练可以改动的参数了。
使用这个函数的目的也是想让某些变量在学习的过程中不断地修改其值以达到最优化。
PyTorch官方:https://pytorch.org/docs/master/_modules/torch/nn/parameter.html
torch.nn.Module
torch.nn.Module是nn中重要的类,包含网络各层定义及forward方法。