pytorch 训练完的自编码器,它提取到的特征是编码器的输出么?
用代码块功能插入代码,请勿粘贴截图
class autoencoder(nn.Module):
def __init__(self):
super(autoencoder, self).__init__()
self.encoder = nn.Sequential(
nn.Conv1d(1, 1, 3, 1, padding=0),
nn.Linear(2018, 6)
)
self.decoder = nn.Sequential(
nn.Linear(6, 2018),
nn.ConvTranspose1d(1, 1, 3, 1, padding=0))
def forward(self, x):
x = self.encoder(x)
x = self.decoder(x)
return x
model = autoencoder()
criterion = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=1e-5)
epochs = 100
dataloader = DataLoader(trian_data, batch_size=32, shuffle=True)
train_losses = []
for epoch in range(epochs):
total_loss = 0
for data in dataloader:
x = data
x = Variable(x)
output = model(x)
loss = criterion(output, x)
optimizer.zero_grad()
loss.backward()
optimizer.step()
total_loss += loss.item()
a = model.encoder(trian_data)
提取到的数据特征为a = model.encoder(trian_data)对么?不是的话应该如何提取?