假如有3个加载好权重的模型,请举例放在模型列表中
时间: 2024-03-11 18:49:37 浏览: 20
好的,以下是一个简单的示例,演示了如何将3个预训练好的模型添加到模型列表中并进行加载:
```
import torch.nn as nn
import torch
# 模型1
class Model1(nn.Module):
def __init__(self):
super(Model1, self).__init__()
self.fc1 = nn.Linear(10, 20)
self.fc2 = nn.Linear(20, 5)
def forward(self, x):
x = self.fc1(x)
x = self.fc2(x)
return x
# 模型2
class Model2(nn.Module):
def __init__(self):
super(Model2, self).__init__()
self.fc1 = nn.Linear(10, 15)
self.fc2 = nn.Linear(15, 5)
def forward(self, x):
x = self.fc1(x)
x = self.fc2(x)
return x
# 模型3
class Model3(nn.Module):
def __init__(self):
super(Model3, self).__init__()
self.fc1 = nn.Linear(10, 25)
self.fc2 = nn.Linear(25, 5)
def forward(self, x):
x = self.fc1(x)
x = self.fc2(x)
return x
# 创建模型列表
model_list = [Model1(), Model2(), Model3()]
# 加载模型权重
for i, model in enumerate(model_list):
pretrained_weights = torch.load(f'pretrained_model_{i}.pt')
model.load_state_dict(pretrained_weights)
```
在这个例子中,我们首先定义了三个简单的模型:`Model1`,`Model2`和`Model3`。然后,我们将这些模型添加到一个模型列表中。接下来,我们使用一个循环来依次加载每个模型的预训练权重,并将它们应用于模型实例。在这个例子中,我们假设每个模型的权重分别存储在名为 `pretrained_model_0.pt`,`pretrained_model_1.pt`和`pretrained_model_2.pt`的文件中。请注意,这里使用了 `enumerate()` 函数,以便在循环中同时迭代模型列表和文件名。