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)
- Utilities
- Quantized Functions
- Lazy Modules Initialization
Parameter
CLASS torch.nn.parameter.Parameter(data=None, requires_grad=True)
[SOURCE]
被认为是模块参数的 Tensor
.
Parameters
是 Tensor
子类,与 Modules
一起使用时具有非常特殊的属性,当它们被指定为 Modules
属性时,它们会自动添加到期参数列表中,并且会出现在 Parameters()
迭代器中,指定 Tensor 没有这种效果。这是因为可能需要在模型中缓存一些临时状态,例如 RNN
的最后隐藏状态,如果没有 Parameter
这样的类,这些临时变量也会被注册。
Parameters:
data(Tensor) - 参数 Tensor
requires_grad (bool, optional) - 可选参数,默认为 True.
UninitializedParameter
CLASS torch.nn.parameter.UninitializedParameter(requires_grad=True, device=None, dtype=None)
[SOURCE]
没有初始化的 Parameter
。UninitializedParameter
是特殊的 Parameter
, 数据的形状未知,更没有数据。如果访问的话就会报错,可以执行的动作就是可以改变数据类型、将数据迁移到不同的设备以及转换为常规的 Parameter
.
当初始化时,可以设置数据类型和设备类型,例如: device='cuda'
UninitializedBuffer
CLASS torch.nn.parameter.UninitializedBuffer(requires_grad=False, device=None, dtype=None)
[SOURCE]
没有初始化的 buffer
.
Buffer 也是一种特殊的 Tensor, 数据和形状未知。数据的形状未知,更没有数据。如果访问的话就会报错,可以执行的动作就是可以改变数据类型、将数据迁移到不同的设备以及转换为常规的 Parameter
.
当初始化时,可以设置数据类型和设备类型,例如: device='cuda'