Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill tl-fine-tuning명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | tl-fine-tuning |
| description | 模型微调技能 - 渐进微调、特征冻结、层间迁移、学习率调度 |
| argument-hint | 微调 OR fine-tuning OR 模型微调 OR transfer learning |
| user-invocable | true |
将预训练模型适配到新任务的技术
当需要以下帮助时使用此技能:
import torch
import torch.nn as nn
from torchvision import models
class ProgressiveFineTuner:
def __init__(self, pretrained_model, num_classes):
self.model = pretrained_model
self.num_classes = num_classes
# 替换分类头
in_features = self.model.fc.in_features
self.model.fc = nn.Linear(in_features, num_classes)
def freeze_backbone(self):
"""冻结骨干网络"""
for param in self.model.parameters():
param.requires_grad = False
# 只训练分类头
for param in self.model.fc.parameters():
param.requires_grad = True
def unfreeze_stage(self, num_layers):
"""逐步解冻层"""
# 假设模型是按阶段组织的
layers_to_unfreeze = []
for name, param in self.model.named_parameters():
if 'layer' in name:
layer_num = int(name.split('.')[0].replace('layer', ''))
if layer_num <= num_layers:
layers_to_unfreeze.append(name)
for name, param in self.model.named_parameters():
if name in layers_to_unfreeze:
param.requires_grad = True
class LrScheduler:
def __init__(self, optimizer, warmup_epochs=5, max_lr=1e-3):
self.optimizer = optimizer
self.warmup_epochs = warmup_epochs
self.max_lr = max_lr
def get_lr(self, epoch):
if epoch < self.warmup_epochs:
return self.max_lr * (epoch + 1) / self.warmup_epochs
else:
return self.max_lr * 0.1 ** ((epoch - self.warmup_epochs) / 10)