以下是保存编码器解码器模型的示例代码:
import torch
import torch.nn as nn
import torch.optim as optim
# 定义编码器解码器模型
class EncoderDecoderModel(nn.Module):
def __init__(self):
super(EncoderDecoderModel, self).__init__()
self.encoder = nn.Linear(10, 20)
self.decoder = nn.Linear(20, 10)
def forward(self, x):
x = self.encoder(x)
x = self.decoder(x)
return x
# 创建模型实例
model = EncoderDecoderModel()
# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
# 训练模型(假设有训练数据)
input_data = torch.randn(100, 10)
target_data = torch.randn(100, 10)
for epoch in range(10):
optimizer.zero_grad()
output = model(input_data)
loss = criterion(output, target_data)
loss.backward()
optimizer.step()
# 保存模型
torch.save(model.state_dict(), 'encoder_decoder_model.pth')
# 加载模型
new_model = EncoderDecoderModel()
new_model.load_state_dict(torch.load('encoder_decoder_model.pth'))
在上面的代码中,我们定义了一个简单的编码器解码器模型EncoderDecoderModel
,包含一个线性编码器和一个线性解码器。我们使用MSE损失函数和Adam优化器进行训练,并保存模型的状态字典(即模型的参数)为encoder_decoder_model.pth
文件。然后,我们可以使用torch.load()
函数加载保存的模型参数,并创建一个新的模型实例new_model
。
上一篇:保存编辑器布局