提高CV模型训练性能的 9 个技巧

简介: 提高CV模型训练性能的 9 个技巧

导读

本文 主要想分享一些可能有助于提高计算机视觉任务模型训练速度和准确性的一般技巧或建议,这些建议是通过课程、阅读顶级文章或论文学习所得来的。

1. 分辨率

  • 从较小的分辨率开始:

前两个技巧侧重于实现更快的模型——您尝试的想法越多,获得更好结果的机会就越大。为了更快地迭代,我们需要从“小”着手以减少我们的训练时间:

Ayush 创建了一个指向所有共享数据集的数据集线程。从较小的数据集尺寸或分辨率开始可以让您更快地迭代。

如果您使用较小的 GPU 内存,那么可以通过增加 batch_size 加快迭代速度。一旦您对自己的想法充满信心并看到了效果提升,您就可以扩展到更大的图像尺寸或分辨率。

2. 数据集

  • 从数据子集开始:

您应该从少量的数据集或示例开始,并在那里验证您的训练模型。

例如:训练 10 个 classes,检查它是否提高了 CV -> 提交

扩展到 20 个classes,检查 CV,然后再次提交

如果一切顺利,就在完整数据集上进行训练。

3. 精度

  • 使用 FP16 或半精度训练:

NVIDIA GPU 具有 Tensor-Cores,在使用“半精度”张量时可提供巨大的加速。这里写了一篇更详细的博客,尝试使用 fp_16 训练来观察任何 GPU(和 TPU!)上的加速情况。

4. TPU

  • 使用 TPU

Kaggle 每周提供 20 小时的 TPUTPU 有 8 个核心,这允许您的 batch_sizes 是 8 的倍数。这允许更快的训练和更快的迭代。

注意:最近发现了 Hugging Face Accelerate,它声称可以在 TPU 上使用 PyTorch 为您提供简单的工作流程。

5. 渐进式

  • 渐进式调整大小:

IIRCEfficientnet 论文中被介绍,也在 fastai 课程中教授。

Chris Deotte 发表了一篇关于 CNN 输入图像大小的文章。这个博客教你渐进调整大小在 fastai 中是如何工作的。长话短说:

  • 训练模型尺寸:小
  • 保存权重并在更大的图像尺寸上重新训练模型
  • 再次保存权重并重新训练最终图像大小

这个过程将会获得更快的收敛和更好的性能。

6. Depthwise Convs

  • 使用 Depthwise Convs 而不是 Regular Convs

这个概念首先是在 MobileNet 论文中引入的,最近与 ConvNext 架构相关的讨论中它再次出现。 Depthwise Convolutions 具有更少的 filters,因此训练速度更快。

请参阅此处以获取有关使其在 PyTorch 中运行的一些提示

7. 学习率

  • 在模型训练期间更改 learning_rate

慢的 lr 需要太长的时间,而快的 lr 可能无法帮助你的模型收敛,使用这个逻辑,我们应该使用动态学习率。

我建议使用 fastai 及其 fine_tune()fit_one_cycle() 函数。有关更多详细信息,请参见此处

8. 热身

  • 从论文 Bag of Tricks中,使用 LR 预热是亮点之一:

当你开始训练一个模型时,它具有更多的“随机性”,因为它刚刚开始学习特征,因此首先从较小的 learning_rate 开始允许它选择细节,然后你可以在“预热”后将其增加到预期的schedule

9. 图像增强

NNs 受益于更多数据。图像中的微小变化确实可以帮助模型提高对图像内部特征的理解。使用正确的图像增强可以真正帮助您的模型。此外,在训练模型时可视化结果,以确保它们了解的是特征而不是背景!


欢迎Star -> 学习目录

更多教程 -> 学习目录


相关文章
|
6月前
|
机器学习/深度学习 数据可视化 计算机视觉
【视频】机器学习交叉验证CV原理及R语言主成分PCA回归分析犯罪率|数据共享
【视频】机器学习交叉验证CV原理及R语言主成分PCA回归分析犯罪率|数据共享
|
6月前
|
机器学习/深度学习 数据可视化 算法
机器学习中的分类问题:如何选择和理解性能衡量标准
机器学习中的分类问题:如何选择和理解性能衡量标准
机器学习中的分类问题:如何选择和理解性能衡量标准
|
6月前
|
机器学习/深度学习 自然语言处理 算法
机器学习-特征选择:如何用信息增益提升模型性能?
机器学习-特征选择:如何用信息增益提升模型性能?
334 1
|
25天前
|
机器学习/深度学习 缓存 监控
利用机器学习优化Web性能和用户体验
【10月更文挑战第16天】本文探讨了如何利用机器学习技术优化Web性能和用户体验。通过分析用户行为和性能数据,机器学习可以实现动态资源优化、预测性缓存、性能瓶颈检测和自适应用户体验。文章还介绍了实施步骤和实战技巧,帮助开发者更有效地提升Web应用的速度和用户满意度。
|
1月前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
62 1
|
1月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
2月前
|
数据可视化 Swift
小钢炮进化,MiniCPM 3.0 开源!4B参数超GPT3.5性能,无限长文本,超强RAG三件套!模型推理、微调实战来啦!
旗舰端侧模型面壁「小钢炮」系列进化为全新 MiniCPM 3.0 基座模型,再次以小博大,以 4B 参数,带来超越 GPT-3.5 的性能。并且,量化后仅 2GB 内存,端侧友好。
小钢炮进化,MiniCPM 3.0 开源!4B参数超GPT3.5性能,无限长文本,超强RAG三件套!模型推理、微调实战来啦!
|
4月前
|
测试技术
8B尺寸达到GPT-4级性能!北大等提出医疗专家模型训练方法
【7月更文挑战第8天】北京大学等研究者提出的新方法缓解了大模型如Llama-3-8B在持续预训练时的“稳定性差距”,通过多轮次训练、高质量子语料库选择和数据混合策略,提升性能和效率。在医疗领域,他们将OpenLlama-3B性能提升至40.7%,并创建的Llama-3-Physician模型达到GPT-4级别。尽管取得突破,该方法在其他模型和领域的适用性仍需探索,且持续预训练仍资源密集。[链接: https://arxiv.org/abs/2406.14833]
89 25
|
4月前
|
机器学习/深度学习 数据采集 运维
智能化运维:利用机器学习优化系统性能
在当今快速发展的信息技术时代,传统的运维方式已难以满足日益增长的业务需求和复杂性。本文将探讨如何通过机器学习技术来提升运维效率,确保系统的高可用性和性能优化。我们将深入分析机器学习模型在预测系统负载、自动故障检测与响应以及资源分配中的应用,并讨论实施这些策略时可能遇到的挑战和解决思路。
|
4月前
|
机器学习/深度学习 算法 前端开发
集成学习(Ensemble Learning)是一种机器学习技术,它通过将多个学习器(或称为“基学习器”、“弱学习器”)的预测结果结合起来,以提高整体预测性能。
集成学习(Ensemble Learning)是一种机器学习技术,它通过将多个学习器(或称为“基学习器”、“弱学习器”)的预测结果结合起来,以提高整体预测性能。

热门文章

最新文章