自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小鹏AI

AI技术分享

  • 博客(355)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 一种创新的白细胞检测方法:多级特征融合与变形自注意力DETR(MFDS-DETR)

作者的创新模型使用高级特征作为权重来过滤低级特征,将过滤后的特征与高级特征融合,从而显著增强模型检测效果。在标准的医院血液检查中,传统的流程需要医生通过显微镜手动从患者的血液显微图像中分离白细胞,然后通过自动白细胞分类器对分离的白细胞进行分类,以确定血样中不同类型白细胞的数量和体积,从而帮助疾病诊断。在随后的比较实验部分,作者将作者专门设计的MFDS-DETR模型与其他先进的白细胞目标检测模型进行了对比,使用的数据集有三个,分别是WBCDD、LISC和ALL-IDB,以证明作者模型的有效性和泛化能力。

2024-01-08 10:03:46 1745 1

原创 ModernTCN:用于一般时间序列分析的现代纯卷积结构(附代码)

然而,作者发现采用上图(b)的结构构建的模型效果也不是特别好,这是因为这个现代卷积结构中并没有专门为时间序列设计的一些特殊的东西,一个重要的就是如何建模跨变量依赖性。因此,作者采用了两个组卷积,其中一个组卷积的 Group 数为 M(表示每 D 个通道构成一个组,因此用来建模通道间关系),另一个组卷积的 Group 数为 D(表示每 M 个变量构成一个组,因此用来建模变量间关系)。,也就是多变量时间序列中变量之间的关系。,希望用 DWConv 来建模时间上的关系,但又不希望它参与到通道间和变量间的建模上。

2023-12-21 10:17:04 1442 8

原创 人脸识别:X2-SoftMax

作为最简单的基于分类的损失函数,softmax损失可以压缩同一类别的人脸特征,同时分离不同类别的人脸特征,同时完成分类任务。CosFace和ArcFace之间的区别在于对数函数,对数函数的不同导致不同的角边界,类别间的角边界会影响特征提取。对于CosFace,由于其在余弦空间中应用了一个固定的边界,两个类别之间的角边界不再是一个固定值,而是随着类别权重之间的角度变化而变化。一类是成对损失(例如对比损失,三元损失,N对损失),另一类是基于分类的损失(例如softmax损失,CosFace,ArcFace)。

2023-12-20 11:14:31 1004

原创 Total Variation loss

图像上的一点点噪声可能就会对复原的结果产生非常大的影响,很多复原算法都会放大噪声。因此需要在最优化问题的模型中添加一些正则项来保持图像的光滑性,图片中相邻像素值的差异可以通过降低TV loss来一定程度上解决,比如降噪,对抗checkerboard等等。受噪声污染的图像的总变分比无噪图像的总变分明显的大,最小化TV理论上就可以最小化噪声。总变分定义为梯度幅值的积分。即:求每一个像素和横向下一个像素的差的平方,加上纵向下一个像素的差的平方。

2023-08-02 14:00:18 649

原创 (一) CUDA介绍

事实上,每个线程块都可以在 GPU 中任何一个可用的多处理器上以任意顺序进行调度,并发或顺序执行,这样一个编译后的 CUDA 程序就可以在任意数量的多处理器上执行,而且只有运行时系统需要知道物理多处理器的数量。相比较其他计算设备,如 FPGA,也是非常节能的,但其提供了比 GPU 少得多的编程灵活性。2006年11月,NVIDIA 推出了 CUDA,这是一个通用的并行计算平台和编程模型,利用 NVIDIA 图形处理器中的并行计算引擎,以比 CPU 更有效的方式解决许多复杂的计算问题。

2023-07-26 20:45:41 735

原创 Python处理Linux文件命令

【代码】Python处理Linux文件命令。

2023-07-10 11:38:41 443

原创 COCO数据集格式总结(COCO提供与模型输出需提供的JSON格式)

标注信息是使用 JSON 存储的,为此,在使用COCO数据集前,需要了解原始数据集的JSON格式。COCO提供的JSON格式(包含检测和分割)结果文件需提供的JSON格式(目标检测任务)结果文件需提供的JSON格式(目标分割任务)结果文件需提供的JSON格式。结果文件需提供的JSON格式。结果文件需提供的JSON格式。结果文件需提供的JSON格式。COCO提供的JSON格式。COCO提供的JSON格式。COCO提供的JSON格式。COCO提供的JSON格式。

2023-07-03 18:30:00 2832 1

原创 硬软件全栈开发工具梳理推荐(稚晖君)

Fusion 360 既支持参数化建模又支持T-spline设计 个人用免费(良心软件)GPU服务器:Kaggle、Vast.ai、Featurize、矩池云、腾讯云CVM。Autodesk Eagle 开源硬件社区流行 好上手 转换开源项目的文件。Rider C#的IDE 配合Unity使用 作为外部编辑器来用。云服务器:腾讯云、UCloud、硅云、华为云、阿里云。AnyTXT 全文搜索工具,速度极快,基本秒出结果。Everything 本地文件名搜索软件里的天花板。

2023-06-02 10:27:18 501

原创 解决No module named ’torch._six‘问题

最近升级的pytorch的版本,升级到了2.0。本人也尝试了将pytorch1.10版本下的。文件拷贝到pytorch2.0下,无果。,pytorch2.0 没有。

2023-05-30 14:45:59 25456 12

原创 MLC LLM:将大模型运行在手机端的部署工具

MLC LLM依赖于开源生态系统,更具体地说,是 TVM Unity,这是 TVM 项目中一个令人兴奋的最新发展,它支持 Python 优先的交互式 MLC 开发体验,使我们能够轻松地用 Python 编写新的优化,并逐步将我们的应用带到感兴趣的环境中。利用优化,如融合量化内核,一流的动态形状支持和不同的 GPU 后端。提供了一个轻量级的基于 C + + 的示例 CLI 应用程序,它展示了如何包装已编译的构件和必要的预/后处理,这将有望澄清工作流程,以便将它们嵌入到本地应用程序中。

2023-05-01 13:46:18 3636 1

原创 OpenCL、CUDA 与C++ AMP之间,开发者该如何选择

如果你只需要在Nvidia的GPU卡上进行异构编程,并且非常看重性能的话,CUDA应该是第一选择:在Nvidia的强力支持下,CUDA在Nvidia硬件上的性能一直保持领先,许多学术研究表明OpenCL与CUDA的性能相差不大,在一部分应用中CUDA的性能稍微好于OpenCL。作为第一个异构计算的开放标准,OpenCL已经得到了包括Intel,AMD,Nvidia,IBM,Oracle,ARM,Apple,Redhat等众多软硬件厂商的大力支持。其实从编程语言的发展来看,易编程性往往比性能更加重要。

2023-04-23 20:00:00 779

原创 Solving Oscillation Problem in Post-Training Quantization Through a Theoretical Perspective

小的模块能力会加剧量化误差的累积效应,使损耗迅速增加,而大的模块能力则会减少累积量化误差,使损耗减少。尽管取得了显著的成果,但海量的数据需求和高昂的计算成本阻碍了DNN的普遍部署,尤其是在资源受限的设备上。其次,如果两个相邻的模块的拓扑是同结构的,如果后面的模块容量足够大,则产生的损耗将减小,反之会加剧。如果两个模块具有相同数量的卷积层,并且所有相关联的卷积层具有相同的超参数,则它们被称为等效的。作者提出,如果两个相邻模块相等的条件下,量化误差的累积会导致损失的增加,但是这种情况很难满足。

2023-04-23 19:30:00 271

原创 FastViT: A Fast Hybrid Vision Transformer using Structural Reparameterization

在移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍。在移动设备和 ImageNet 数据集上的精度相同的前提下,FastViT 比 CMT 快3.5倍,比 EfficientNet 快4.9倍,比 ConvNeXt 快1.9倍。值得注意的是,每个 Stage 中的 FFN 使用的并不是传统的 FFN 架构,而是带有大核 7×7 卷积的 ConvFFN 架构。

2023-04-18 19:30:00 703

原创 第五天 CUDA Runtime API

Runtime API 使用 cuDevicePrimaryCtxRetain 为每个设备设置 context,不再手动管理 context,并且不提供直接管理 context 的 API(可 Driver API 管理,通常不需要)第一个需要 context 的 API 调用时,会创建 context 并进行 context 关联,和设置当前 context,调用 cuDevicePrimaryCtxRetain 实现;主要知识点是核函数的使用、线程束布局、内存模型、流的使用。

2023-04-17 09:37:57 307

原创 第四天 cuda高效的内存分配(含代码)

如果使用统一地址空间,通过cudaHostAlloc()分配的页锁定主机内存会默认cudaHostAllocPortable,此时指针可以直接在内核函数使用,而无需像页锁定内存那样先通过cudaHostGetDevicePointer()函数获取设备指针。通过CUDA接口分配的主机内存或者任何使用统一地址空间的设备分配的设备内存都可以使用cudaPointerGetAttributes()的指针来确定地址。此时通过CUDA API分配的所有主机内存和所有受支持设备上开辟的设备内存都在此虚拟地址范围内。

2023-03-20 23:45:00 896

原创 C++ 开发规范(持续更新)

若使用形如sscanf之类的函数时,在处理字符串输入时应当通过%10s这样的方式来严格限制字符串长度,同时确保字符串末尾有\0。不应直接使用legacy的字符串拷贝、输入函数,如strcpy、strcat、sprintf、wcscpy、mbscpy等。如果环境允许,应当使用其_s安全版本替代,或者使用n版本函数(如:snprintf,vsnprintf)一些需要注意的函数,例如strncpy和_snprintf是不安全的。这些函数的特征是:可以输出一长串字符串,而不限制长度。但更早期的版本中,MSVC的。

2023-03-09 23:45:00 273

原创 第三天 CUDA Context (含代码)

对ctxA使用cuCtxPushCurrent()和cuCtxCreate()都相当于将ctxA放在栈顶(让他成为current context)它表示执行某些任务(例如 CUDA 计算、图形、H.264 编码等)共同需要和实例化的所有状态(数据、变量、条件等)GPU中的Context相当于CPU的Program,一块GPU上可以有多个Context,但他们之间是相互间隔的。context类似于CPU上的进程,管理由Driver层分配的资源的生命周期。Context上下文是设备与特定进程相关联的所有状态。

2023-03-09 23:45:00 1111

原创 第二天 用宏检查cuda初始化(含代码)

采用宏定义可以在每次调用API前都检查初始化。CUDA driver需要做显式的初始化。,否则其他API都会返回。

2023-03-07 23:45:00 187

原创 第一天 初识CUDA和显卡(含代码)

nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。CUDA Driver与CUDA Runtime相比更偏底层,就意味着Driver API有着更灵活的控制,也伴随着更复杂的编程。CUDA有两个主要的API:runtime(运行时) API和driver API, 这两个API都有对应的CUDA版本。注意:nvcc不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。

2023-03-06 23:45:00 2629

原创 排查GPU无进程但显存占用

找到对应进程ID并删除。

2023-03-02 23:45:00 530

原创 追溯ChatGPT

text-davinci-003 恢复了(但仍然比code-davinci-002差)一些在text-davinci-002 中丢失的部分上下文学习能力(大概是因为它在微调的时候混入了语言建模) 并进一步改进了零样本能力(得益于RLHF)。详实的回应:text-davinci-003 的生成通常比 text-davinci-002长。Code-davinci-002 是基础模型,text-davinci-002 是指令微调 code-davinci-002 的产物(见 OpenAI 的文档)。

2023-03-01 23:45:00 3184

原创 Module _sysconfigdata_x86_64_conda_linux_gnu not found

【代码】Module _sysconfigdata_x86_64_conda_linux_gnu not found。

2023-02-23 16:30:22 752

原创 BatchNorm与LayerNorm的比较

直接把VIT中的LN替换成BN,容易训练不收敛,原因是FFN没有被Normalized,所以还要在FFN block里面的两层之间插一个BN层。BN和LN在实现上的区别仅仅是:BN是对batch的维度去做归一化,也就是针对不同样本的同一特征做操作。测试集可能出现比训练集更长的句子,所以对于后面位置的step,是没有训练的统计量使用的。由于不同句子的同一位置的分布大概率是不同的,所以应用BN来约束是没意义的。BN是对batch的维度去做归一化,也就是针对不同样本的同一特征做操作。

2023-02-23 10:12:08 507

原创 Probabilistic Volumetric Fusion for Dense Monocular SLAM

如果没有我们的深度不确定性,产生的网格是有噪音的,而且有人工痕迹,而该方法产生了一个准确的三维网格,人工痕迹明显减少。与之前的方法不同的是,这些方法要么使用临时的深度过滤器,要么从RGB-D相机的传感器模型中估计深度的不确定性。di是我们要计算深度的像素周围的低分辨率反深度图中一个像素的反深度(用一个3×3的窗口来采样相邻的深度值)其中wi是公式中用于反深度加样的相同权重,σ 是要计算的像素周围的低分辨率反深度图中一个像素的反深度的方差。得到的深度估计值对每个像素来说都是通过以下方式给出的。

2023-01-19 10:06:50 994

原创 ESPNet: 自动驾驶领域轻量级分割模型

基于深度可分离空洞卷积以及分组point-wise卷积改进ESP模块,提出了EESP(Extremely Efficient Spatial Pyramid)模块。ESPNet是用于语义分割的轻量级网络,主要思想基于传统卷积模块设计,提出一种高效空间金字塔卷积模块(ESP Module)该模块包含point-wise卷积和空洞卷积金字塔,有助于减小模型运算量和内存、功率消耗,以提高在终端设备上的适用性。修改深度可分离空洞卷积为stride=2的版本。空洞卷积金字塔使用K组空洞卷积的同时下采样得到低维特征。

2023-01-19 09:44:54 1185

原创 比YOLOv8还要强的YOLOv6 v3.0

YOLOv6-M比YOLOv5-M指标高4.6%、速度相当,比YOLOX-M、PPYOLOE-M指标高3.1%、1.0%且速度更快。除了比YOLOv5-L更高更快外,YOLOv6-L比YOLOX-L、PPYOLOE-L分别高3.1%、1.4%且速度相当。相比YOLOv5-N、YOLOv7-Tiny,YOLOv6-N指标分别提升9.5%、4.2%,同时具有最佳速度。相比YOLOX-S、PPYOLOE-S、YOLOv6-S指标分别提升3.5%、0.9%且速度更快。

2023-01-18 16:14:20 3133 1

原创 总结 62 种在深度学习中的数据增强方式

此外,它表明传统的数据增强技术使 RL 算法能够在基于像素的控制和基于状态的控制方面胜过复杂的 SOTA 任务。从上图可以明显的看出,基于 SA 的数据增强方式可以将形状保留下来,但样式(包括颜色、纹理和对比度)是随机的。基于特征空间的数据增强首先将图像转换为嵌入或表示,然后对图像的嵌入执行数据增强,最后再向大家介绍下这部分内容。这是第一个非常详细地分别处理图像的内容和样式特征的工作,并且它在流行的基准数据集上显示出令人印象深刻的性能。

2023-01-16 15:24:07 6137

原创 聊聊Pytorch2.0的新特性

看提速,提升没有超一倍,相比TensorRT(TensorRT优化的话,一般都是2-6倍左右,当然要算FP16)除了r50,我也试了下dla结构的模型,其中with_dcn是带了自定义cuda实现的pytorch-dcn算子。Pytorch2.0的版本,可能Dynamo会成为主要的模型的parser替代。之后Pytorch转trt、转tvm、转乱七八槽一切也会慢慢往这个上头靠。优化级别还是差些的,性能肯定不是极致,更不如纯手工优化后的。一行代码就能优化你的模型,优化后的模型和往常使用方式一样。

2023-01-12 16:44:27 1270 1

原创 IEEE | DSConv: Efficient Convolution Operator

原始卷积张量的大小为 (cho, chi, k, k),其中 cho 是下一层的通道数,chi 是当前层中的通道,k是内核的宽度和高度。它可以很容易地替换到标准神经网络架构中,并实现更低的内存使用和更高的计算速度。这个想法是内核移位器的每个值都用于移位 VQK 的 BLK 深度值的值。DSConv 的总体目标是通过使用量化和分布偏移来模拟卷积层的行为。通过在 VQK 中仅存储整数值来实现更低的内存使用和更高的速度。这个组件的目的是改变 VQK 的分布以试图模仿原始卷积核的分布。

2023-01-11 10:18:26 1114

原创 CVPR-2019 | Deep High-Resolution Representation Learning for Human Pose Estimation

通过优于两个基准数据集 (COCO keypoint检测数据集和MPII人类姿势数据集) 的姿势估计结果,从经验上证明了本文的网络的有效性。实验目标:MPII (顶部) 和COCO (底部) 数据集中的一些示例图像的定性结果: 包含视点和外观变化,遮挡,多个人和常见的成像伪影。人体姿态估计,从特征图的多通道中,采取不同的关键节点,然后使用神经网络,进行关键节点的检测。这是一篇 2019 年的文章,回头看,从高到低的分辨率的提取问题,U-Net++ 就做过。2、采用并行的、不同尺度的上下交互的特征融合模块。

2023-01-10 11:23:14 195

原创 解读YOLOv8的改进模块

q是label,正样本时候q为bbox和gt的IoU,负样本时候q=0,当为正样本时候其实没有采用FL,而是普通的BCE,只不过多了一个自适应IoU加权,用于突出主样本。从上边的公式可以看出来,t 可以同时控制分类得分和IoU 的优化来实现 Task-Alignment,可以引导网络动态的关注于高质量的Anchor。DFL的含义是以交叉熵的形式去优化与标签y最接近的一左一右2个位置的概率,从而让网络更快的聚焦到目标位置的邻近区域的分布;

2023-01-10 10:39:57 2300 2

原创 C++ 解析内联函数

不能包含复杂的结构控制语句例如while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)它如果认为函数不复杂,能在调用点展开,就会真正内联,并不是说声明了内联就会内联,声明内联只是一个建议而已。如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上inline,否则就认为不是内联的。定义在类中的成员函数缺省都是内联的,如果在类定义时就在类内给出函数定义,那当然最好。inline函数仅仅是一个对编译器的建议,所以最后能否真正内联,看编译器的意思。

2023-01-04 15:21:04 111

原创 TensorFlow2.0实战:Cats vs Dogs

这意味着在训练过程中,我们只会训练新添加到顶部的网络层,而在网络底部的权重值不会发生变化。一旦我们执行了数据划分,我们就开始计算训练样本数量,然后调用辅助函数来为训练准备数据。我们一旦创建了这些模型,我们就需要修改这些模型顶部的网络层,使之适用于我们的具体问题。由于我们只训练了顶部的几层网络,而不是整个网络,所以训练这三个模型只用了几个小时。在我们开始整个训练过程之前,让我们思考一下,这些模型的大部头其实已经被训练过了。在这之后,我们需要做的仅仅是实例化这个类的对象,然后载入数据即可。

2023-01-04 11:38:26 902

原创 Tensorflow网络模型分析梳理

看一个简单例子,假设我们需要在训练好的VGG网络使用图,并且修改最后一层,将输出改为2,用于fine-tuning新数据。第四个和第五个参数是我们重复的每一层的卷积核数量和大小,第五个就是scope,可用于指定这一层的变量的范围。关于冻结部分层的做法:我们只需要在指定优化器的时候,将我们需要训练的层的变量作为。第一个参数是我们的输入,第二个参数是我们重复的次数,第三个则是我们要用的层。的意义是忽略那些在定义的模型结构中可能存在的而在预训练模型中没有的变量。

2023-01-04 10:57:47 704

原创 AFDet: Anchor Free One Stage 3D Object Detection

在推理阶段,使用最大池化和and操作来寻找在CenterNet之后的预测heatmap中的峰值,这比基于iou的NMS更快、更有效。在这项工作中,作者提出了一种具有简单后处理的Anchor-Free和无NMS的单阶段端到端点云3D目标检测器(AFDet)首先,它用于消除由pillar化过程引起的误差,在pillar化过程中,将浮动目标中心分配给BEV中的整数pillar位置。使用L1损失直接回归z值。在作者的实验中,使用PointPillars将整个点云编码为鸟瞰图(BEV)中的伪图像或类似图像的特征图。

2022-12-13 10:31:14 478 1

原创 C语言 基本数据结构实现

本文包含数据结构的实现如下顺序表定义顺序表初始化顺序表,建立顺序表,判断是否为空,求顺序表长度,遍历操作...

2022-12-04 23:59:00 817 2

原创 卡尔曼滤波 C语言实现

【代码】卡尔曼滤波 C语言实现。

2022-12-01 16:25:23 1640

原创 Vim 常用命令记录

Vim 中可以使用 对 和 , 和 , 和 进行匹配查找当光标位于其中一个符号上时按下 ,光标会跳到与之匹配的另外一个符号上注意: 和 后面都可以跟一个 用以在新标签页中打开指定文件,还可以在 后面加一个数字,指出新标签页在列表中的位置(从 0 开始)。

2022-11-30 09:52:18 1238

原创 C语言 深度探究C语言中的字符串

C 语言没有单独的字符串类型,字符串被当作字符数组,即char类型的数组。比如,字符串“Hello”是当作数组处理的。编译器会给数组分配一段连续内存,所有字符储存在相邻的内存单元之中。在字符串结尾,C 语言会自动添加一个全是二进制0的字节,写作\0字符,表示字符串结束。字符\0不同于字符0,前者的 ASCII 码是0(二进制形式00000000),后者的 ASCII 码是48(二进制形式00110000)。所以,字符串“Hello”实际储存的数组是。所有字符串的最后一个字符,都是\0。

2022-11-29 00:43:38 691

原创 C语言 深度探究C语言中的变量说明符

C 语言允许声明变量的时候,加上一些特定的说明符(specifier),为编译器提供变量行为的额外信息。它的主要作用是帮助编译器优化代码,有时会对程序行为产生影响。

2022-11-29 00:41:09 531

sift特征检测算法源码(Python版)

SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果。

2020-05-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除