关于深度学习训练周期,训练时间表,训练时刻表,训练策略的说明——Training Schedules,Lr schd,1x,2x,mmDetection和Detectron中训练周期次数对比

本文深入探讨了深度学习中常见的1x和2x训练策略,包括它们的起源、具体实施方式以及在COCO数据集上的应用。1x策略指在总batch size为16时,初始学习率为0.02,特定轮次后学习率降低,总训练轮次为9万。2x策略则是在1x基础上延长训练时间和调整学习率的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一下关于深度学习常用的训练策略说明:

ID:wonyoungsen

通常的框架或者论文都会提到训练周期关于1x和2x,她的来历最初是从Detectron来的,在她的MODEL_ZOO.md介绍里面有关于Training Schedules的说明,可以去详细看一下。

  • 1x 策略表示:在总batch size为16时,初始学习率为0.02,在6万轮和8万轮后学习率分别下降10倍,最终训练9万轮。
  • 2x 策略为1x策略的两倍,同时学习率调整位置也为1x的两倍。

其中,mmDetection采用与Detectron相同的训练时间表。1x表示12个epoch,而2x表示24个epoch,这比Detectron的迭代次数略少,并且可以忽略不计。
在coco2014和2017中数据集中总共118287张图片,所以Detectron计算下来大概是12.17个epoch。

/---------------------------------------------------------------------------
三木每森
wonyoungsen

### 深度学习 AI 模型训练的基本流程 深度学习模型的训练是一个复杂的过程,涉及多个关键步骤。以下是详细的训练流程: #### 1. 数据准备 在开始训练之前,需要准备好高质量的数据集。这通常包括数据收集、清洗、预处理以及划分成训练集、验证集测试集。 #### 2. 模型选择与构建 根据具体任务的需求,选择适合的模型架构。常见的深度学习框架如 TensorFlow PyTorch 提供了许多现成的网络结构模板[^1]。如果已有合适的基础模型,则可以考虑迁移学习以减少训练时间资源消耗。 #### 3. 配置训练环境 由于深度学习模型往往规模庞大且计算密集,因此通常依赖于 GPU 或 TPU 等高性能硬件加速设备来进行高效运算。此外还需要安装相应的软件库版本匹配好。 #### 4. 定义损失函数与优化器 为了指导神经网络朝着正确的方向调整权重参数,在此阶段需选定恰当类型的损失函数用来衡量预测值同真实标签间的差距;同时也要挑选一种高效的优化算法比如随机梯度下降(SGD),Adam等,并设定初始学习速率等相关超参配置[^2]。 #### 5. 执行训练循环 整个训练过程由若干次完整的 epoch 组成,在每次 epoch 中又细分为针对不同 mini-batch 的迭代操作如下所示: - **外层循环 (Epoch)** : 控制整体训练轮数。 - **数据加载**: 利用 DataLoader 将大规模原始样本分批送入内存以便后续处理[^4]。 - **重置指标**: 开始新一轮前先归零累积统计量例如累计loss值计数器reset(). - **内层循环(Batch)** : - 对当前 batch 内部逐条记录执行以下子环节: * 初始化隐藏状态(仅限RNN类). * 前向传播(feedforward): 把输入传递给已定义好的model实例得到output. * 计算损失(loss computation): 调用指定criterion方法对比outputs vs targets得出scalar数值表示error magnitude. * 反向传播(backpropagation): 自动求导机制生成grads w.r.t all learnable params; 清除旧gradients via zero_grad(); apply backward pass to populate new ones. * 参数更新(param update): Optimizer.step(), applying computed gradients onto weights according configured rules. - **记录指标 & 日志**(Logging Metrics and Logs after each Epoch completes): Collect avg loss across batches, elapsed time stats etc., then output them periodically either console prints or save into files for later analysis purposes. #### 6. 模型评估与调优 利用独立的验证集合定期检验正在发展的network performance metrics such as accuracy/precision/recall/F1-score/AUC-ROC curve area under curves etc.. Based on observed trends adjust hyperparameters like learning rate decay schedules dropout rates layer sizes activations functions regularization strengths early stopping criteria patience limits etc... Repeat until satisfactory generalization capabilities achieved over unseen test samples too not just training ones alone![^3] ```python import torch from torch import nn, optim from torchvision import datasets, transforms transform = transforms.Compose([transforms.ToTensor()]) train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transform) dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True) device = 'cuda' if torch.cuda.is_available() else 'cpu' model = YourModel().to(device) criterion = nn.CrossEntropyLoss() optimizer = optim.Adam(model.parameters()) for epoch in range(num_epochs): model.train() running_loss = 0.0 for inputs, labels in dataloader: optimizer.zero_grad() outputs = model(inputs.to(device)) loss = criterion(outputs, labels.to(device)) loss.backward() optimizer.step() running_loss += loss.item() print(f"Epoch {epoch+1}/{num_epochs}, Loss: {running_loss / len(dataloader)}") torch.save(model.state_dict(), './trained_model.pth') ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值