随笔分类 - 训练优化
摘要:在对比学习(Contrastive Learning)中,梯度累计(Gradient Accumulation)是一种技术,用于在内存有限的情况下实现大批量(Large Batch)训练。这个操作通过将多个小批次的梯度累加起来,再进行一次权重更新,从而模拟大批次训练的效果。 以下是梯度累计的基本操作
阅读全文
摘要:模型剪枝是用在模型的一种优化技术,旨在减少神经网络中不必要的参数,从而降低模型的复杂性和计算负载,进一步提高模型的效率。 模型剪枝的流程:约束训练(constained training)、剪枝(prune)、回调训练(finetune) 本篇主要记录自己YOLOv8模型剪枝的全过程,主要参考:YO
阅读全文
摘要:一,剪枝分类 所谓模型剪枝,其实是一种从神经网络中移除"不必要"权重或偏差(weigths/bias)的模型压缩技术。关于什么参数才是“不必要的”,这是一个目前依然在研究的领域。 1.1,非结构化剪枝 非结构化剪枝(Unstructured Puning)是指修剪参数的单个元素,比如全连接层中的单个
阅读全文
摘要:作者丨不摸鱼的小律@知乎来源丨https://zhuanlan.zhihu.com/p/592531559 开头 最近参加一个CV比赛,看到有参赛者分享了自己训练图像识别模型时常用到的小技巧,故对其进行记录、整理,方便未来继续学习。整理了很多,它们不一定每次有用,但请记在心中,说不定未来某个任务它们
阅读全文
摘要:前言 因为课题组发的卡还没有下来,先向导师问了实验室的两张卡借用。之前都是单卡训练模型,正好在这个机会实践以下单机多卡训练模型的方法。关于 DDP 网上有很多资料,但都比较零碎(有些博客的代码甚至没办法 run),Pytorch 给出的官方文档看起来也比较吃力。因此这篇文章的主要目的是梳理一下笔者学
阅读全文
摘要:引子 DeepSpeed是由Microsoft提供的分布式训练工具,旨在支持更大规模的模型和提供更多的优化策略和工具。与其他框架相比,DeepSpeed支持更大规模的模型和提供更多的优化策略和工具。其中,主要优势在于支持更大规模的模型、提供了更多的优化策略和工具(例如 ZeRO 和 Offload
阅读全文
摘要:看一下batch_size,epoch这两个参数影响的都是什么,就会有答案了。 1. 先看batch size的大小影响的是什么? batch size的大小影响的是训练过程中的完成每个epoch所需的时间(假设算力确定了)和每次迭代(iteration)之间梯度的平滑程度。 为什么这么说?假设训练
阅读全文
摘要:Dropout是一种在训练期间提高深度神经网络泛化能力的技术。在 Convolutional Neural Networks (CNNs) 中实现 Dropout 的方法如下: 在卷积层或全连接层之间插入 Dropout 层。 设定随机失活概率。随机失活概率决定了在每次训练过程中失活的神经元数目。一
阅读全文
摘要:梯度归一化是一种解决深度神经网络中梯度消失/爆炸问题的技术。梯度消失/爆炸是指当神经网络比较深时,梯度的大小可能变得非常小或非常大,从而导致学习率变慢或者无法学习。 梯度归一化是通过限制权重更新的最大步长来解决这个问题的。具体而言,当更新权重时,梯度归一化会将梯度的大小限制在一个合理的范围内,从而保
阅读全文
摘要:数据标注作为人工智能发展道路上的基石,是人工智能发展的重要环节。数据标注的过程是通过人工贴标签的方式,为机器提供可学习的样本数据,最终使机器可以自主识别数据。在深度学习模型的测试过程中,高质量的数据标注往往能更好地提高模型训练的质量。 数据标注类型主要包括图像标注、文本标注、语音标注和3D点云标注四
阅读全文
摘要:0.首次运行常见错误 刚拿到代码可以运行train.py文件看看,一般都会出现这个错误: OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That i
阅读全文
摘要:每次自己写神经网络的时候,总是在参考Yolo系列的代码,其中,第五版代码写的最为清晰的同时,也为可视化编程提供了新思路。最近也是一直在写一个可视化编程的操作界面,这里也对YOLOv5中的一些代码思路做一下总结。 除了本文,同时推荐其他相关博文: YOLOv5代码阅读笔记: https://blog.
阅读全文
摘要:前言 今天用到了PyTorch里的CosineAnnealingLR,也就是用余弦函数进行学习率的衰减。 下面讲讲定义CosineAnnealingLR这个类的对象时输入的几个参数是什么,代码示例就不放了。 正文 torch.optim.lr_scheduler.CosineAnnealingLR(
阅读全文
摘要:GridSearch和CV,即网格搜索和交叉验证 网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法 为何使用:超参数选择不恰当,就会出现欠拟合或者过拟合的问题 内容: 网格搜索,搜索的是参数,即在指定的参数范围内,按步长依次调整参数,利用调整的参数训练学习器,从所有的参数中找到在验证集上
阅读全文
摘要:原理 训练神经网络的一个重要 trick 是 warm up,它被广泛应用在各种模型的训练中。它的命名大概是类比了我们参加体育锻炼前的热身运动。warm up 通过操作训练初始阶段的 learning rate,可以使模型参数更快地收敛,并达到更高的精度。 众所周知,learning rate 如果
阅读全文