torch.nn
程序员文章站
2022-03-04 13:06:03
...
torch.nn 与 torch.nn.functional
说起torch.nn,不得不说torch.nn.functional!
这两个库很类似,都涵盖了神经网络的各层操作,只是用法有点不同,比如在损失函数Loss中实现交叉熵! 但是两个库都可以实现神经网络的各层运算。其他包括卷积、池化、padding、**(非线性层)、线性层、正则化层、其他损失函数Loss,两者都可以实现不过nn.functional毕竟只是nn的子库,nn的功能要多一些,还可以实现如Sequential()这种将多个层弄到一个序列这样复杂的操作。
nn.functional.xxx 是**函数接口**,nn.Xxx 是 .nn.functional.xxx 的**类封装**
nn.Xxx 除了具有 nn.functional.xxx 功能之外,内部附带 nn.Module 相关的属性和方法,eg. train(), eval(), load_state_dict, state_dict
如何看关于torch.nn的 API
首先看左侧,这些都是功能的分类! 比如Containers中就包含了 集合各种神经网络的操作的 容器;
而Convolution Layers则是抱哈了各种卷积操作! 如果我们想要调用的话,不是torch.nn.Containers,而是torch.nn.Moule()、torch.nn.Sequential() 等
torch.nn中某些函数
1. torch.nn.Parameter()
一种张量,被认为是一个模参数。