使用pytorch写一个迁移学习模型
时间: 2023-05-17 10:07:48 浏览: 143
好的,我可以回答这个问题。迁移学习是一种利用已有模型的知识来训练新模型的技术。在PyTorch中,可以使用torchvision包中的预训练模型来进行迁移学习。以下是一个简单的示例代码:
```
import torch
import torchvision.models as models
# 加载预训练模型
resnet18 = models.resnet18(pretrained=True)
# 冻结所有层的参数
for param in resnet18.parameters():
param.requires_grad = False
# 替换最后一层全连接层
num_ftrs = resnet18.fc.in_features
resnet18.fc = torch.nn.Linear(num_ftrs, 2)
# 定义损失函数和优化器
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(resnet18.fc.parameters(), lr=0.001)
# 训练模型
for epoch in range(10):
for inputs, labels in dataloader:
optimizer.zero_grad()
outputs = resnet18(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
```
这个示例代码使用了ResNet-18预训练模型,并将其用于一个二分类任务。我们首先加载预训练模型,然后冻结所有层的参数,接着替换最后一层全连接层,最后定义损失函数和优化器,并进行训练。
阅读全文