迁移学习实战:预训练模型微调技巧
2026/7/6 2:57:55 网站建设 项目流程

迁移学习实战:预训练模型微调技巧

1. 迁移学习原理

迁移学习策略: ├── 特征提取:冻结预训练层,只训练新分类头 ├── 微调:解冻部分预训练层,低学习率训练 └── 全量微调:解冻所有层,极低学习率训练

2. 图像分类微调

importtorchimporttorch.nnasnnfromtorchvisionimportmodels# 加载预训练模型model=models.resnet50(pretrained=True)# 冻结所有层forparaminmodel.parameters():param.requires_grad=False# 替换分类头num_classes=10model.fc=nn.Linear(model.fc.in_features,num_classes)# 只训练分类头optimizer=torch.optim.Adam(model.fc.parameters(),lr=0.001)# 阶段 2:微调forparaminmodel.layer4.parameters():param.requires_grad=Trueoptimizer=torch.optim.Adam([{'params':model.layer4.parameters(),'lr':0.0001},{'params':model.fc.parameters(),'lr':0.001},])

3. NLP 微调(BERT)

fromtransformersimportBertTokenizer,BertForSequenceClassificationfromtransformersimportTrainer,TrainingArguments tokenizer=BertTokenizer.from_pretrained('bert-base-chinese')model=BertForSequenceClassification.from_pretrained('bert-base-chinese',num_labels=2)# 数据处理deftokenize(examples):returntokenizer(examples['text'],padding='max_length',truncation=True,max_length=128)# 训练training_args=TrainingArguments(output_dir='./results',num_train_epochs=3,per_device_train_batch_size=16,learning_rate=2e-5,warmup_steps=500,evaluation_strategy='epoch',)trainer=Trainer(model=model,args=training_args,train_dataset=train_dataset)trainer.train()

总结

策略数据量学习率适用场景
特征提取数据极少
微调最常用
全量微调数据充足

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询