深度学习
文章平均质量分 71
ywfwyht
这个作者很懒,什么都没留下…
展开
-
python setup.py develop运行报错解决办法
解决办法:指定一个新的安装路径。原创 2023-12-20 10:21:53 · 1148 阅读 · 0 评论 -
Error: loaded state dict contains a parameter group that doesn’t match the size of optimizer’s group
在这个示例中,我们检查了 optimizer 的 state_dict 和 checkpoint 的 state_dict 尺寸是否匹配。如果它们匹配,我们就可以使用。来加载 optimizer 的 state_dict。否则,我们打印一个错误信息来指示尺寸不匹配。您需要根据您的实际场景来修改示例代码。这个错误通常是由于加载的模型权重和当前模型的结构不一致导致的。通过手动去除偏差参数后,我们可以成功地进行优化。通过对比可以发现,模型的权重中没有。,而优化器中的参数组却包含了。原创 2023-11-24 16:09:57 · 2443 阅读 · 0 评论 -
pytorch中常见loss函数归纳(二分类、多分类、检测、分割、回归)
PyTorch中的loss函数源码通常可以在torch.nn.functional模块中找到。这些函数接受模型的输出和真实标签作为输入,并计算出模型预测的误差,从而帮助优化器调整模型参数。二分类任务只有两个类别,如判断一张图片是猫还是狗。常用的损失函数有:(1)BCELoss(Binary Cross Entropy Loss):二分类交叉熵损失函数,适合输出为概率值的情况。原创 2023-11-15 17:27:15 · 4309 阅读 · 0 评论 -
OHEM在线难例挖掘原理及在代码中应用
在传统的训练过程中,模型会在训练集中遇到大量易于分类的样本,而只有少量的难以分类的样本。在以上代码中,我们首先定义了一个交叉熵损失函数,然后在每个batch的训练过程中,按照损失值从大到小排序,并选择损失值排名前50%的样本作为难例样本。具体来说,OHEM在每个batch的训练中选择一定数量(通常为batch size的1/2)的难例样本,这些难例样本的损失函数被优先考虑。因此,模型会更加关注难以分类的样本,在训练过程中逐渐学会处理难例样本的能力,提高模型的泛化性能。在代码中,我们首先定义了模型,并使用。原创 2023-11-08 16:26:44 · 495 阅读 · 0 评论 -
基于关键点的车道线检测
以下是提供的几种基于关键点的车道线检测方案思路,并不代表具体的任务方案。原创 2023-11-01 14:39:03 · 1558 阅读 · 11 评论 -
自适应卷积和可变形卷积区别
两种方法的效果和速度并没有绝对的优劣之分,而是取决于具体的应用场景和模型架构。一般来说,自适应卷积比可变形卷积更容易优化,因为它只需要学习卷积核的形状和大小,而不需要学习采样和偏移。但是,在处理高度变形目标时,可变形卷积通常比自适应卷积效果更好。自适应卷积和可变形卷积都是对传统卷积进行改进,以解决传统卷积在处理变形目标时的不足。原创 2023-10-30 15:50:57 · 942 阅读 · 0 评论 -
分类任务中softmax+argmax和直接argmax得到的结果有什么异同?
从输出结果可以看出,softmax+argmax和argmax的结果是一样的,但是softmax+argmax得到的结果是归一化后的概率值。因为矩阵中的每个值都大于0,因此softmax不会改变矩阵中元素的相对大小。在实际应用中,softmax可能会对结果产生影响并产生不同的输出。原创 2023-08-31 10:59:09 · 781 阅读 · 0 评论 -
实现PyTorch/ONNX自定义节点操作的TensorRT部署
这样,我们就获得了带有自定义操作的ONNX模型。原创 2023-05-29 22:27:17 · 1473 阅读 · 1 评论 -
ONNX模型修改为自定义节点
首先,需要将ONNX模型中的节点修改为自定义节点。要实现这一点,您需要了解自定义节点的定义和如何在ONNX中使用它们。ONNX定义了一个自定义运算符的接口,您可以使用该接口定义自己的运算符,并将其编译为ONNX模型可以识别的格式。具体步骤如下:定义自定义节点的运算符:您需要将自定义节点定义为一个具有输入和输出的函数。函数应该遵循ONNX规范中定义的接口。编写生成自定义节点的代码:您需要编写代码来生成ONNX模型中的自定义节点。生成代码通常基于ONNX运算符定义,使用您定义的自定义节点。原创 2023-05-27 12:59:26 · 1661 阅读 · 0 评论 -
RANSAC原理及二次/三次多项式曲线拟合
RANSAC(RANdom SAmple Consensus)是一种经典的模型拟合算法,用于从一组杂乱的数据中找出最佳的模型。它的基本思想是随机选取一定数量的数据点,使用这些数据点来拟合模型,然后将所有数据点带入模型中,统计符合模型的数据点数量,如果符合数量超过阈值,则认为这些数据点符合这个模型,即它们是局内点(inlier)。重复以上过程,多次迭代之后,找到的最佳模型是拟合最优的模型,符合该模型的数据点就是局内点。RANSAC算法通常用于处理含有噪声或者异常数据的拟合问题,例如点云配准、图像匹配等问题。原创 2023-05-27 12:49:50 · 4915 阅读 · 5 评论 -
PyTorch修改为自定义节点
要将网络修改为自定义节点,需要在该节点上实现新的操作。在 PyTorch 中,可以使用torch.onnx模块来导出 PyTorch 模型的 ONNX 格式,因此我们需要修改函数来实现新的操作。首先,创建一个新的OpSchema对象,该对象定义了新操作的名称、输入和输出张量等属性。然后,可以定义函数来实现新操作的计算。在上面的示例中,我们首先使用装饰器创建了MyCustomOp类,并实现了forward和symbolic函数,这些函数定义了新操作的计算方式和 ONNX 格式的表示方法。然后,我们使用。原创 2023-05-27 12:40:18 · 1852 阅读 · 0 评论 -
TensorRT API将多个engine文件及plugin合并为一个engine文件
在代码示例中,我们使用两个IRuntime实例加载两个engine文件,获取其中的输入和输出张量,并创建一个新的engine文件。然后,我们使用IBuilder创建一个新的网络,并将两个engine文件的输入和输出张量添加到新的网络中。代码会创建一个新的engine,该engine从两个输入绑定开始,然后遍历两个engine的所有层,将它们复制到新的engine中,最后以两个输出绑定结束。使用TensorRT API获取两个engine文件的输入和输出张量名称,并创建一个新的engine文件。原创 2023-05-27 22:00:57 · 1396 阅读 · 0 评论 -
PyTorch C++ API 实现ResNet34 网络
这是一个基于 PyTorch C++ API 实现的简单示例,欢迎参考。原创 2023-05-26 20:57:39 · 270 阅读 · 0 评论 -
pytorch:余弦退火学习策略和warmup
深度学习中的“warmup”是指在模型训练的初始阶段,逐渐增加学习率的过程。它的作用主要有以下几个方面:加速模型收敛:在训练开始时,学习率通常设置得较小,这样可以保证模型在初始阶段不会过度拟合,同时也减少了训练过程中的震荡。但是,如果学习率过低,模型训练的速度会较慢。通过warmup,可以在训练开始时逐渐增加学习率,加速模型的收敛过程。提高模型的泛化能力:研究表明,在训练的早期阶段,模型更容易被错误的样本所干扰。原创 2023-05-26 19:56:42 · 1627 阅读 · 5 评论 -
optimizer.zero_grad(), loss.backward(), optimizer.step()的理解及使用
这三个函数的作用是将梯度归零(optimizer.zero_grad()),然后反向传播计算得到每个参数的梯度值(loss.backward()),最后通过梯度下降执行一步参数更新(optimizer.step())。简单的说就是进来一个batch的数据,先将梯度归零,计算一次梯度,更新一次网络。另外一种:将**optimizer.zero_grad()放在optimizer.step()**后面,即梯度累加。获取loss:输入图像和标签,通过infer计算得到预测值,计算损失函数;原创 2023-02-13 21:08:13 · 5029 阅读 · 2 评论 -
(论文阅读)K-Lane Lidar Lane Dataset and Benchmark for Urban Roads and Highways
车道线检测是自动驾驶的一个关键功能。随着近年来深度学习的发展及相机车道线数据集和基准的发布,相机车道线检测网络(CLDNs)得到了显著的发展。CLDNs所依赖的相机图像往往在消失线附近有畸变,并且倾向于在低光照条件下工作。这与激光雷达车道检测网络(Lidar lane detection networks, LLDNs)相比,后者可以直接从鸟瞰视图(BEV)上提取车道线进行运动规划,并在各种光照条件下稳健运行。然而,LLDNs尚未得到积极的研究,由于缺乏大型公共激光雷达车道线数据集。原创 2023-02-07 10:00:25 · 1103 阅读 · 0 评论 -
nn.Conv1d、nn.Conv2d、nn.Linear
nn.Conv1d作用在第二个维度位置channel,nn.Linear作用在第三个维度位置in_features,对于一个XXX,若要在两者之间进行等价计算,需要进行tensor.permute,重新排列维度轴秩序。length],3维tensor,而nn.Linear输入的是一个[batch, *, in_features],可变形状tensor,在进行等价计算时务必保证nn.Linear输入tensor为三维。nn.Linear速度比 nn.Conv1d, kernel_size=1速度更快。原创 2023-01-16 13:23:39 · 1864 阅读 · 0 评论 -
CBAM(Convolutional Block Attention Module)卷积注意力模块用法及代码实现
通道注意力机制(Channel Attention Module)是将特征图在通道维度不变,压缩空间维度,得到一个一维矢量后再进行操作。1的大小,然后经过两层共享全连接层(shared MLP)中,它先将通道数压缩为原来的1/r(Reduction,减少率)倍,再扩张到原通道数,再将这两个输出进行elementwise逐元素相加操作,经过sigmoid激活,最终即可获得通道注意力模块的特征图。在空间注意力模块中,是将通道注意力模块输出的特征图作为输入对通道进行压缩。该模块关注的是目标的位置信息。原创 2022-12-14 15:19:15 · 3619 阅读 · 1 评论 -
visdom可视化loss曲线等在训练代码中应用
visdom可视化loss曲线等在训练代码中应用原创 2022-11-17 09:46:47 · 537 阅读 · 0 评论 -
python实现tensorrt推理
python实现tensoort的推理原创 2022-09-23 10:49:06 · 2139 阅读 · 5 评论 -
onnx 转 tensorrt 的几种方法
onnx转tensoorrt的几种方法总结原创 2022-09-23 10:30:32 · 1893 阅读 · 0 评论 -
pytorch模型转onnx模型及onnxruntime框架推理
pytorch模型转onnx模型及onnxruntime框架推理原创 2022-09-20 17:32:12 · 517 阅读 · 0 评论 -
损失函数:DiceLoss与Dice系数
Dice系数,是一种集合相似度度量函数,通常用于计算两个样本点的相似度(值范围为[0, 1])。用于分割问题,分割最好时为1,最差为0。及用于解决样本不均衡的问题,但不稳定,容易出现梯度爆炸.......原创 2022-08-31 20:15:47 · 4413 阅读 · 4 评论 -
损失函数:交叉熵损失torch.nn.CrossEntropyLoss
交叉熵主要是用来判定实际输出(概率)与期望输出(概率)的接近程度。也就是交叉熵的值越小,两个概率分布就越接近。假设概率分布p为期望输出,概率分布q为实际输出。原创 2022-08-31 17:01:22 · 3783 阅读 · 3 评论 -
DistributedDataParallel(DDP)分布式单机多GPUS训练
pytorch官方链接使用过程中总结大概需要以下几步:1、设置local_rank及device(启动器开启后,会将当前进程的(其实就是 GPU的)index 通过参数传递给python环境local_rank参数中);2、初始化分布式环境、进程间通信;3、DDP包装model;4、采样器包装dataset5、数据输入to.(device)或者.cuda()6、用torch.distributed.launch启动(其他方式不作分享).........原创 2022-07-12 16:25:33 · 1630 阅读 · 0 评论 -
conda虚拟环境安装配置mmdeploy
文章目录CUDA 11.1编译 MMDeploy 库安装 MMDeploy 的 Model Converter设置环境变量模型转换调用 MMDeploy SDK python API,输入上述模型转换产生的sdk model路径,图像,得到检测结果第一个参数是模型转换命令中 --work-dir选项的值需要读取自己路径下的图片https://zhuanlan.zhihu.com/p/484842986https://mmdeploy.readthedocs.io/zh_CN/latest/build/l原创 2022-04-12 16:44:32 · 1306 阅读 · 11 评论 -
mmdeploy之安装配置及pointpillar模型转换及推理
文章目录mmdeploy安装mmdeploy安装参考官方教程:官方文档git clone -b master https://github.com/open-mmlab/mmdeploy.git cd mmdeploygit submodule update --init --recursive依赖PyTorch:conda install pytorch==1.8.0 torchvision==0.9.0 cudatoolkit=11.1 -c pytorch -c conda-forg原创 2022-04-08 13:07:33 · 2327 阅读 · 18 评论 -
mmdetection3d之pointpillar训练配置
文章目录官方文档Train训练集路径设置单GPU训练多GPU训练官方文档官网:https://mmdetection3d.readthedocs.io/zh_CN/latest/1_exist_data_model.htmlTrain训练集路径设置需要指定自己存放数据的目录,以kitti数据集为例,需要修改kitti-3d-3class.py, hv_pointpillars_secfpnn_6x8_160e_kitti-3d-3class.py,两个文件的data_rootT路径单GPU训原创 2022-03-24 11:29:03 · 2796 阅读 · 5 评论