news 2026/5/1 7:53:04

exp的内容阅读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
exp的内容阅读

导入 还有高手 BaseExp

super().__init__()

模型配置 数据加载配置 输入尺寸 变换尺寸 train_ann和val_ann是训练使用的标注文件

degrees 随机旋转角度范围 translate随机平移比例 scale缩放范围 mscale mosaic里的缩放范围,在使用mosaic拼图时,控制四张图各自的缩放比例 shear 错切变换角度,让图像产生斜拉的几何变形 perspective 透视变换强度 enable_mixup 意思是两张图按比例叠加+bbox合并

这些数据增强的具体的步骤看下面是定义在哪个类中,就是在哪个类中实现的 去找这个类所在的代码文件就知道 这个操作具体是如何实现的了

训练配置 预热epoch 是5 最大是300 预热的学习率是0?这个后面应该会改 每个图像的学习率是 0.01/64 final_lr = basic_lr_per_img × total_batch_size
scheduler是啥 学习率调度器 控制学习率随epoch怎么变化的策略 无数据增强的epoch是15,那就是最后15个epoch无数据增强 最小的学习率比例 最小lr=初始lr*0.5防止lr衰减到0 ema是啥? 权重衰减是干啥的 momentum是干啥的 动量 更新方向不仅只看当前梯度还要看过去梯度 昨天就有一个 0.9 0.1的比例 每10个step打印一次 推理是10个epoch/ 获得代码文件名字作为输出的exp_name

测试的输入图像的大小 测试的配置0.001 置信度阈值 貌似说的是在追踪阶段进行处理 nmsthre nms阈值 去重标准 多个框框住同一个目标 只保留一个

yolox.models导入这三个类 我定义的一个函数init_yolo 输入M M应该是一个模型 M.modules 就是模型里的所有子模块 对于每一层?如果 isinatance(m,nn.batchnorm2d)为真?设置eps 和 momentum (不知道eps)是啥

这个依附斯洛 然后如果getattr 这个函数不知道哪里来的 里面的参数是这些 不是none的话 设置输入通道?和backnone head self.model就有了 然后不知道apply这个是如何引出的 哪里有这个函数 然后Head.initialize这个函数在哪里弄得 这两步骤都经过啥了 给这个model干啥了 然后最后return model

model.modules 会遍历所有模块

instance(m,nn.batchnorm2d)层 只筛选 二维 batchnorm层

getattr是python内置函数 apply是pytorch的nn.module放啊

看sampler和dataloader跟前面看那个差不多 不看了 看下面这个random_resize

def random_resize(self, data_loader, epoch, rank, is_distributed):#数据加载\epoch\rank 是否分布式训练
tensor = torch.LongTensor(2).cuda() 创建一个长度为2的Tensor 放在GPU上 作用是在多进程之间同步输入尺寸 tensor[0] height。tensor[1] width

if rank == 0:# 只让rank0来做这个 随机只能发生一次
size_factor = self.input_size[1] * 1.0 / self.input_size[0] 计算宽高比例 这是前面的self.input_size
size = random.randint(*self.random_size) *self.random_size 将这个范围解包为两个独立的参数 在这个范围之间 生成一个数字
size = (int(32 * size), 32 * int(size * size_factor)) 32乘以这个数字 到 这个数字乘以宽高比例再乘以32 size在这个范围内 这是高度 和 宽度
tensor[0] = size[0]#tensor[0]是第一个 数字 高
tensor[1] = size[1]# tensor[1]是第二个 数字

if is_distributed: #如果分布式训练 后面的进程要和前面的进程保持一致 主进程将生成的tensor 发送给其他GPU进程
dist.barrier()
dist.broadcast(tensor, 0)

input_size = data_loader.change_input_dim(
multiple=(tensor[0].item(), tensor[1].item()), random_range=None
)#使用这个固定的尺寸
return input_size

#每n个interation变一次

#然后下面对于优化器的定义

def get_optimizer(self, batch_size):
if "optimizer" not in self.__dict__:#不在这个里面,意思是还没创建 仅仅是创建一次
if self.warmup_epochs > 0:#设置warmup_epoch大于0 我记得貌似是5 lr
lr = self.warmup_lr
else:#不然按照这个
lr = self.basic_lr_per_img * batch_size

pg0, pg1, pg2 = [], [], [] # optimizer parameter groups#设置三个列表

for k, v in self.model.named_modules():
if hasattr(v, "bias") and isinstance(v.bias, nn.Parameter):
pg2.append(v.bias) # biases
if isinstance(v, nn.BatchNorm2d) or "bn" in k:
pg0.append(v.weight) # no decay
elif hasattr(v, "weight") and isinstance(v.weight, nn.Parameter):
pg1.append(v.weight) # apply decay

optimizer = torch.optim.SGD(
pg0, lr=lr, momentum=self.momentum, nesterov=True
)
optimizer.add_param_group(
{"params": pg1, "weight_decay": self.weight_decay}
) # add pg1 with weight_decay
optimizer.add_param_group({"params": pg2})
self.optimizer = optimizer

不想看了 先这样吧

反正就是各个部分写一个代码 然后组合起来去调用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:55:11

11、500 用户办公室网络配置与实现指南

500 用户办公室网络配置与实现指南 1. 引言 Abmas 公司业务蒸蒸日上,在 Mr. Meany 的推动下,公司不断发展壮大。得益于 Christine 的辛勤工作,公司网络持续扩展。最近,公司聘请了 Stanley Soroka 担任信息系统经理,他在处理 Samba 方面能力出众,与 Christine 配合默契。…

作者头像 李华
网站建设 2026/5/1 6:54:43

Dify集成ComfyUI实现AI图像生成全流程实践

Dify集成ComfyUI实现AI图像生成全流程实践 在内容创作需求爆发式增长的今天,企业对高质量视觉素材的需求远超传统设计团队的产能。一张精准表达语义、风格统一且可批量生成的AI图像,可能只需要一句话描述:“赛博朋克风格的城市夜景&#xff…

作者头像 李华
网站建设 2026/4/29 9:47:59

23、活动目录、Kerberos 与安全:Samba 技术深度剖析

活动目录、Kerberos 与安全:Samba 技术深度剖析 1. 任务概述 在相关工作场景中,Bob 认可了 Stan 的建议,并聘请专业服务来解决问题。任务要求以合理且技术化的方式回答所提出的各项问题,同时需保持客观,避免情绪化表达,并提供有力的支持依据。 2. Samba - 3 的综合分析…

作者头像 李华
网站建设 2026/4/13 19:21:14

28、技术干货与开源许可知识整合

技术干货与开源许可知识整合 1. LDAP Account Manager(LAM)相关 LAM 是一款实用的管理工具,但它也有一些可能会让用户感到困扰的地方。例如,LAM 不允许创建包含大写字符或空格的 Windows 用户和组账户,尽管底层的 UNIX/Linux 操作系统处理这些字符可能并无问题。由于在默…

作者头像 李华
网站建设 2026/4/27 19:50:48

Toggle Sidebar1172 Panda and PP Milk

#include<iostream> using namespace std; int weight[10010]; int milk1[10010]; int milk2[10010]; int main(){ int n; cin>>n; for(int i0;i<n;i){ cin>>weight[i]; } int former,latter; //处理左侧熊猫 milk1[…

作者头像 李华
网站建设 2026/4/20 14:24:18

DBeaver配置达梦数据库连接

我的DBeaver23.1.2没有系统配置的达梦数据库驱动&#xff0c;需要自己创建 1、达梦官网下载驱动 产品下载 - 武汉达梦数据库股份有限公司 下载解压 2、DBeaver配置达梦驱动 打开DBeaver【数据库】-【驱动管理器】 新建&#xff0c;然后开始编辑 类名&#xff1a;dm.jdbc.dr…

作者头像 李华