`nn.Linear` 是PyTorch中神经网络库的一个模块,用于创建一个线性层(也称为全连接层或仿射变换)。线性层是神经网络中最常见的层之一,通常用于线性变换。具体来说,该层将输入张量进行线性变换并输出一个新的张量。这个线性变换涉及到权重(或称为参数)的乘法加上偏置项。
线性层的数学表达式为:`y = xA^T + b` 其中:
* `y` 是输出张量
* `x` 是输入张量
* `A` 是权重矩阵
* `b` 是偏置向量
* `A^T` 表示权重矩阵的转置(通常在训练过程中,会涉及到转置来执行矩阵乘法)
在PyTorch中,创建一个线性层可以很简单,例如:
```python
import torch.nn as nn
# 创建一个输入特征数量为input_features的线性层,输出特征数量为output_features的线性层。
linear_layer = nn.Linear(in_features=input_features, out_features=output_features)
```
在神经网络模型中,这个线性层通常与其他层(如卷积层、池化层等)组合使用,形成一个完整的网络结构。当你向前传播输入数据时,这个线性层会对数据进行线性变换。在训练过程中,该层的权重和偏置会被优化以最小化预测误差。