模型不会一次就完美,拿到 baseline → 诊断问题 → 制定改进策略 → 重训,反复循环才能逼近最优。
💡 3-5 轮迭代后通常能达到上线标准。
调整下面的滑块,实时观察 Accuracy/Precision/Recall/F1 的变化
调整下面的参数,观察对训练效果的模拟影响
调参不是"凭感觉",有系统化的搜索方法。不同策略的效率和效果天差地别。
凭经验手动试几组值。适合小模型入门阶段,但效率低、易漏掉最优组合。
给每个超参数列几个候选值,笛卡尔积跑所有组合。最全面但计算量爆炸。
在超参数空间随机采样,同样预算下比网格搜索往往更好(因为不是均匀分配算力)。
用高斯过程代理函数建模 score 分布,每一步选"最值得试"的组合,计算效率最高。
AutoML 级别的调参框架,支持多目标、剪枝、可视化、分布式训练,PyTorch/TF/Sklearn 全兼容。
分布式超参数搜索框架,支持多 GPU 并行、中断恢复、多种调度器,适合工业级大规模调参。
# 方法1:保存state_dict(推荐) torch.save(model.state_dict(), 'models/final/best_model.pt') # 方法2:保存完整模型 torch.save(model, 'models/final/best_model.pt') # 方法3:ONNX格式(跨平台部署) dummy = torch.randn(1, 3, 224, 224) torch.onnx.export(model, dummy, 'model.onnx') # 方法4:TorchScript(移动端) traced = torch.jit.trace(model, dummy) traced.save('model_scripted.pt') # 方法5:保存训练状态(断点续训) torch.save({ 'epoch': epoch, 'model_state_dict': model.state_dict(), 'optimizer_state_dict': optimizer.state_dict(), 'best_val_acc': best_acc, }, 'checkpoint.pth')
import torch from PIL import Image from torchvision import transforms # 1. 加载模型 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = MyModel(num_classes=5) model.load_state_dict(torch.load('models/best.pt', map_location=device)) model = model.to(device) model.eval() # 重要!切换到评估模式 # 2. 数据预处理(必须和训练时一致!) transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize([0.485], [0.229]) ]) # 3. 推理 def predict(image_path): img = Image.open(image_path).convert('RGB') tensor = transform(img).unsqueeze(0).to(device) # 加batch维度 with torch.no_grad(): # 关闭梯度计算 output = model(tensor) probs = torch.softmax(output, dim=1) pred_idx = probs.argmax(1).item() confidence = probs[0, pred_idx].item() return { 'class': class_names[pred_idx], 'confidence': f'{confidence:.2%}', 'all_probs': {class_names[i]: f'{p:.2%}' for i, p in enumerate(probs[0])} } result = predict('test_image.jpg') print(result)