随笔分类 -  pytorch

摘要:1、分布式训练报错This error indicates that your module has parameters that were not used in producing loss A:1.使用下面代码打印所有需要计算梯度的参数,确认没有问题 2.如果有问题,修改问题,如果没有问题, 阅读全文 »
posted @ 2022-09-19 11:33 哈哈哈喽喽喽 阅读(18) 评论(0) 推荐(0) 编辑
摘要:利用图文大模型给caption数据打bbox伪标签扩展数据,进而训练开集检测模型 1、动机 开集检测,在大规模caption数据集上预训练的网络有很强的开放分类能力,所以需要使用caption数据,但是caption数据没有box,所有怎么自动化生成caption的box信息 2、方法 2.1、伪b 阅读全文 »
posted @ 2022-08-12 11:04 哈哈哈喽喽喽 阅读(375) 评论(0) 推荐(0) 编辑
摘要:1、loss不收敛 1、数据是否有问题,label是不是有问题 2、查看参数及梯度值,可能存在问题:梯度值为0或者太小(变量的值只保留五位小数) 3、参数所在的类,是否加入了optimal的优化参数序列中(不然梯度虽然回传了,但优化器并不会对你的参数产生反应) 如果是一个模型类的列表: 请不要用li 阅读全文 »
posted @ 2022-07-18 11:45 哈哈哈喽喽喽 阅读(224) 评论(0) 推荐(0) 编辑
摘要:#1. SGD ##1.1 weight_decay 既不是为了提高精确度也不是提高收敛速度,目的是防止过拟合. 损失函数中,weight decay是放在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度,所以weight decay的作用是调节模型复杂度对损失函数的 阅读全文 »
posted @ 2022-04-21 22:27 哈哈哈喽喽喽 阅读(134) 评论(0) 推荐(0) 编辑
摘要:单机单卡 1.判断卡存在 torch.cuda.is_available() 2.数据拷贝到GPU data.cuda() 3.模型拷贝到GPU model.cuda() 4.加载的时候,需要map_location参数设置加载到哪个GPU torch.load(path, map_location 阅读全文 »
posted @ 2022-04-01 21:43 哈哈哈喽喽喽 阅读(2184) 评论(0) 推荐(0) 编辑
摘要:1、add_argument和parse_known_args比较 add_argument只接受定义的参数,非定义的报错; parse_known_args接受非定义不会报错,会存在数组中; 建议使用第1种 import argparse parse = argparse.ArgumentPars 阅读全文 »
posted @ 2022-03-31 22:29 哈哈哈喽喽喽 阅读(58) 评论(0) 推荐(0) 编辑
摘要:https://cloud.tencent.com/developer/article/1741626 https://cloud.tencent.com/developer/article/1660961 BCELoss是Binary CrossEntropyLoss的缩写,BCELoss Cro 阅读全文 »
posted @ 2021-10-30 22:03 哈哈哈喽喽喽 阅读(59) 评论(0) 推荐(0) 编辑
摘要:1、梯度裁剪原理(http://blog.csdn.net/qq_29340857/article/details/70574528) 既然在BP过程中会产生梯度消失/爆炸(就是偏导无限接近0,导致长时记忆无法更新),那么最简单粗暴的方法,设定阈值,当梯度小于/大于阈值时,更新的梯度为阈值,如下图所 阅读全文 »
posted @ 2021-10-22 16:06 哈哈哈喽喽喽 阅读(759) 评论(0) 推荐(0) 编辑
摘要:https://zhuanlan.zhihu.com/p/375224982 梯度缩放 如果特定op的正向传递具有浮点16输入,则该op的反向传递将产生浮点16梯度。具有小幅度的梯度值可能无法在浮点16中表示。这些值将刷新为零(“下溢”),因此相应参数的更新将丢失。 为了防止下溢,"梯度缩放"将网络 阅读全文 »
posted @ 2021-10-22 15:30 哈哈哈喽喽喽 阅读(3542) 评论(0) 推荐(0) 编辑
摘要:一、weight decay(权值衰减)的使用既不是为了提高你所说的收敛精确度也不是为了提高收敛速度,其最终目的是防止过拟合。在损失函数中,weight decay是放在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度,所以weight decay的作用是调节模型复杂 阅读全文 »
posted @ 2021-10-22 11:38 哈哈哈喽喽喽 阅读(1392) 评论(0) 推荐(0) 编辑
摘要:torch.flip(input, dims) → Tensor 翻转dims数组中的维度 Parameters input (Tensor) – the input tensor. dims (a list or tuple) – axis to flip on 例子: import torch 阅读全文 »
posted @ 2021-10-22 10:11 哈哈哈喽喽喽 阅读(1190) 评论(0) 推荐(0) 编辑
摘要:1、背景介绍 在pytorch的多卡训练中,通常有两种方式,一种是单机多卡模式(存在一个节点,通过torch.nn.DataParallel(model)实现),一种是多机多卡模式(存在一个节点或者多个节点,通过torch.nn.parallel.DistributedDataParallel(mo 阅读全文 »
posted @ 2021-10-21 15:54 哈哈哈喽喽喽 阅读(1616) 评论(0) 推荐(0) 编辑
摘要:1、torch.nn.AdaptiveMaxPool2d/ADAPTIVEAVGPOOL2D 官方给出的例子: target output size of 5x7 m = nn.AdaptiveMaxPool2d((5,7)) input = torch.randn(1, 64, 8, 9) out 阅读全文 »
posted @ 2021-09-08 11:10 哈哈哈喽喽喽 阅读(95) 评论(0) 推荐(0) 编辑
摘要:https://pytorch.org/docs/stable/generated/torch.optim.SGD.html?highlight=sgd#torch.optim.SGD、 其中weight_decay 参数作用是在SGD中增加的l2的惩罚项 阅读全文 »
posted @ 2021-08-31 21:18 哈哈哈喽喽喽 阅读(187) 评论(0) 推荐(0) 编辑
摘要:#结论:适用于输入和网络结构不变的场景,加速训练使用# #一般和定义net之后设置 一起使用net = torch.nn.DataParallel(net)# 大家在训练深度学习模型的时候,经常会使用 GPU 来加速网络的训练。但是说起 torch.backends.cudnn.benchmark 阅读全文 »
posted @ 2021-08-31 20:21 哈哈哈喽喽喽 阅读(270) 评论(0) 推荐(0) 编辑
摘要:官方给出的例子: target output size of 5x7 m = nn.AdaptiveMaxPool2d((5,7)) input = torch.randn(1, 64, 8, 9) output = m(input) output.size() torch.Size([1, 64, 阅读全文 »
posted @ 2021-08-02 15:59 哈哈哈喽喽喽 阅读(988) 评论(0) 推荐(0) 编辑
摘要:结论: torch.max(),不指定dim参数,返回输入张量中所有数据的最大值; 如果指定dim参数,则返回按照指定维度的最大值和各最大值对应的位置 torch.argmax(),不指定dim,然后输入张量中所有数据最大值位置(按照张量被拉伸为1为向量算); 如果指定dim,返回指定维度的最大值位 阅读全文 »
posted @ 2021-07-28 17:10 哈哈哈喽喽喽 阅读(407) 评论(0) 推荐(0) 编辑
摘要:** 结论 torch.repeat: 输入张量的从后往前的后面维度对应按照repeat中大小进行repeat操作(所以 输入张量维度>= repeat维度)。 假设输入张量为(a,b,c),repeat(x,y),则为b维度repeat x倍,c维度repeat y倍;最终输出维度为(a, bx, 阅读全文 »
posted @ 2021-07-28 11:12 哈哈哈喽喽喽 阅读(2343) 评论(0) 推荐(0) 编辑
摘要:结论 torch.stack ,类似并联,结果是在相应的维度会增加一维; 所以要求每个tensor大小相等 torch.cat 类似串联,结果是在相应的维度值会增加,所以要求扩展的维度大小相等 1.torch.stack l = [] for i in range(0,3): x = torch.r 阅读全文 »
posted @ 2021-07-27 20:27 哈哈哈喽喽喽 阅读(233) 评论(0) 推荐(0) 编辑
摘要:tensor.repeat和torch.repeat_interleave tensor.repeat() a = torch.tensor([[1,2],[3,4]]) a.repeat((2,1)) 表示在行的维度复制2遍,列维度不变,结果为tensor([[1, 2], [3, 4],[1, 阅读全文 »
posted @ 2021-05-19 23:22 哈哈哈喽喽喽 阅读(43) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示