关于神经网络的搭建,我们会使用到torch.nn中的一些工具。nn为neural network的缩写。本文主要介绍一些torch.nn中的工具,和使用最多的工具Containers 中的模块。
一、Torch.nn中的工具
torch.nn中有很多类别
首先单独介绍一下使用最多的Containers,其翻译意思为容器,可以将其看作一个骨架,主要为神经网络定义了一些结构,只需要为这些结构中添加一些不同的内容,就可以构建一个神经网络。
既然有了骨架,那就需要往骨架中添加一些东西。下面这些全是。这些是组成卷积神经网络中的操作部分。
Convolution Layers 卷积层
Pooling layers 池化层
Padding Layers 填充层
Non-linear Activations (weighted sum, nonlinearity) 非线性激活(加权和,非线性)
Non-linear Activations (other) 非线性激活 (其他)
Normalization Layers 规范化层
Recurrent Layers 循环层
Transformer Layers 变压器层
Linear Layers 线性层
Dropout Layers 辍学层
Sparse Layers 稀疏层
Distance Functions 距离函数
Loss Functions 损失函数
Vision Layers 视觉层
Shuffle Layers 洗牌层
DataParallel Layers (multi-GPU, distributed) DataParallel 层(多 GPU,分布式)
Utilities 实用程序
Quantized Functions 量化函数
Lazy Modules Initialization 惰性模块初始化
二、Containers 中的6个模块
Containers 中有6个模块,最常用的就是第一个Module。
6个模块分别是:
1.Module
Base class for all neural network modules. 给所有的神经网络提供一个基本骨架2.Sequential
A sequential container.3.ModuleList
Holds submodules in a list.4.ModuleDict
Holds submodules in a dictionary.5.ParameterList
Holds parameters in a list.6.ParameterDict
Holds parameters in a dictionary.