class AutoEncoder(nn.Module):
时间: 2024-06-09 07:11:16 浏览: 120
这是一个 PyTorch 中的自编码器模型类定义,自编码器是一种无监督学习的神经网络模型,它可以将输入数据压缩成一种更紧凑的表示,并尽可能地恢复原始数据。该模型包含编码器和解码器两个部分,其中编码器将输入数据映射到一个隐藏表示,解码器则将该隐藏表示映射回原始数据空间。以下是一个示例的自编码器模型类定义:
```python
import torch.nn as nn
class AutoEncoder(nn.Module):
def __init__(self, input_dim, hidden_dim):
super(AutoEncoder, self).__init__()
self.encoder = nn.Sequential(
nn.Linear(input_dim, hidden_dim),
nn.ReLU(),
)
self.decoder = nn.Sequential(
nn.Linear(hidden_dim, input_dim),
nn.Sigmoid(),
)
def forward(self, x):
encoded = self.encoder(x)
decoded = self.decoder(encoded)
return decoded
```
其中,`input_dim` 表示输入数据的维度,`hidden_dim` 表示隐藏层的维度。在构造函数中,我们定义了编码器和解码器两个子模块,分别用 `nn.Sequential` 封装了两个线性层和一个激活函数,其中编码器的激活函数为 ReLU,解码器的激活函数为 Sigmoid。在 `forward` 方法中,我们先将输入数据通过编码器得到隐藏表示,然后将该隐藏表示通过解码器得到重构后的数据。
阅读全文