
深度学习
文章平均质量分 74
工头阿乐
实践是检验真理的唯一标准。
展开
-
卷积神经网络(CNN)可视化网站汇总
汇总几个卷积神经网络(CNN)动画和可视化的网址:https://poloclub.github.io/cnn-explainer/直观的交互式工具,解释卷积神经网络的基本原理。https://playground.tensorflow.org/谷歌推出的深度学习交互式平台,虽然主要是全连接网络,但适合学习基础概念。http://cs.stanford.edu/people/karpathy/convnetjs/在线训练CNN模型,并实时可视化卷积、池化等过程。https://www.cs.ryerson.原创 2025-04-11 10:52:58 · 697 阅读 · 0 评论 -
[环境报错] libcublas.so.11: undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11
例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据。原创 2025-03-31 14:04:32 · 279 阅读 · 0 评论 -
Ubuntu20.04安装OpenVINO环境以及YOLOv8 C++部署测试
OpenVINO是英特尔针对自家硬件平台开发的一套深度学习工具库,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能。OpenVINO™工具包是用于快速开发应用程序和解决方案的综合工具包,可解决各种任务,包括模拟人类视觉,自动语音识别,自然语言处理,推荐系统等。该工具包基于最新一代的人工神经网络,包括卷积神经网络(CNN),循环和基于注意力的网络,可在英特尔®硬件上扩展计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云的高性能,人工智能和深度学习推理来加速应用程序。原创 2025-03-28 16:54:55 · 1125 阅读 · 0 评论 -
yolo模型train.py文件训练参数详解
手把手调参。原创 2025-03-20 14:26:36 · 943 阅读 · 0 评论 -
yolo模型coco数据集详解
instances_train2017.json和instances_val2017.json文件均分为五大部分,这五部分对应的关键字分别为info、licenses、images、annotations、categories。info"description": string类型"url": string类型"version": string类型"year": int类型"contributor": string类型"date_created": string类型licenses {原创 2025-03-13 11:18:43 · 330 阅读 · 0 评论 -
远程调试Python脚本之ptvsd
有时候需要远程调试Python脚本,怎么办呢…以下这段代码用于远程调试 Python 脚本,特别是通过 Visual Studio Code(VS Code)的远程调试功能。它会在指定的服务器 IP 和端口上等待调试器的连接。# 检查是否提供了服务器 IP 和端口# 远程调试 - 参见 https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script# 打印等待调试器连接的消息。原创 2025-02-11 09:50:29 · 308 阅读 · 0 评论 -
关于YOLOv9训练结果详解
本篇介绍使用YOLOV9模型训练以及训练数据之后我们需要一些评判标准来告诉我们所训练的效果究竟如何,关于yolov9的一些简单说明,主要是txt文件、训练结果分析等的相关资料。原创 2024-12-12 18:20:59 · 1130 阅读 · 0 评论 -
yolov9目标检测报错AttributeError: ‘list‘ object has no attribute ‘device‘
main(opt)这行代码错误,应该是照抄了yolov5的代码改成以下代码,问题解决,完美解决。原创 2024-12-10 16:24:57 · 720 阅读 · 0 评论 -
YOLOv9目标检测模型的使用教程与部署
完全使用卷积结构进行构建,没有使用Transformer的结构,比带Transformer结构的RT-DETR、YOLOv8报告的性能都要好。基于MS COCO数据集的模型参数配置目前官方只提供以上的YOLOv9-C和YOLOv9-E模型。原创 2024-11-18 19:02:46 · 1213 阅读 · 0 评论 -
非极大值抑制NMS详解(Non Maximum Suppression)
非极大值抑制广泛应用在目标检测,目标跟踪,边缘检测。原创 2024-11-13 15:28:07 · 835 阅读 · 0 评论 -
onnx模型动态输入形状转静态输入形状
早期tf生成的模型,因为是静态图,定义模型时输入的是tf.placeholder ,导出的pb 或都saved model,总是动态,至少batch size 这一维是动态,即[None,H,W,3],H,W有具体值;如果是支持多尺度的输入的话,那输入形状是[None,None,None,3]。以上None部分,也可能是用户常常自定义的一个名称。在pytorch导出onnx时,可以设置是使事使用dynamic,dynamic的价值也就是可以变输入。但在部分边端芯片上部署模型时,通常是必须固定形状的。原创 2024-11-13 10:42:38 · 396 阅读 · 0 评论 -
MNIST数据集下载与保存为图片格式
解压后,使用以下脚本导出图片。导出的png格式图片保存在。原创 2024-11-06 16:10:08 · 442 阅读 · 0 评论 -
模型量化之min-max对称量化算法实现详解
Tengine 是 OpenAILab 开源的优秀端侧深度学习推理框架,其核心主要由 C 语言实现,包裹的功能代码嵌套了 C++。量化是推理加速必不可少的优化环节,成熟的推理框架一般会把量化模块剥离出来形成独立的一套工具,如 Tengine、NCNN、昇腾、寒武纪都这么做,这主要是因为量化过程和硬件非强相关,解耦开来能干更多的事。min-max 和 kl 量化算法是硬件厂商适配推理引擎的基础和标配, 其中 kl 量化深受用户喜爱,如英伟达的 TensorRT 也正是采用了 kl 量化策略;原创 2024-10-28 17:52:19 · 1670 阅读 · 0 评论 -
多模态开源大模型CogVLM2的部署和使用
CogVLM2 是由清华大学团队发布的新一代开源模型系列。2024年5月24日,发布了Int4版本模型,只需16GB显存即可进行推理。2024年5月20日,发布了基于llama3-8b的CogVLM2,性能与GPT-4V相当或更优。原创 2024-09-27 15:50:18 · 858 阅读 · 0 评论 -
windows系统搭建OCR半自动标注工具PaddleOCR
PaddleOCR是一个基于飞桨开发的OCR(Optical Character Recognition,光学字符识别)系统。其技术体系包括文字检测、文字识别、文本方向检测和图像处理等模块。原创 2024-04-09 15:04:35 · 2514 阅读 · 0 评论 -
基于Pytorch搭建分布式训练环境
随着近几年大模型的问世,传统的单机单卡模式已经无法满足超大模型进行训练的要求,如何更好地、更轻松地利用多个 GPU 资源进行模型训练成为了人工智能领域的热门话题。我们今天为大家带来的这篇文章详细介绍了一种名为 DDP(Distributed Data Parallel)的并行训练技术,作者认为这项技术既高效又易于实现。(1) DDP 的核心思想是将模型和数据复制到多个 GPU 上并行训练,然后汇总平均梯度。原创 2024-03-08 17:02:02 · 2345 阅读 · 0 评论 -
KL散度和交叉熵的应用介绍
KL散度(Kullback-Leibler Divergence)和交叉熵(Cross Entropy)是在机器学习中广泛使用的概念。这两者都用于比较两个概率分布之间的相似性,但在一些方面,它们也有所不同。本文将对KL散度和交叉熵的详细解释和比较。在本文中,我们介绍了KL散度和交叉熵这两个概念,并比较了它们之间的异同。KL散度用于比较两个概率分布之间的差异,而交叉熵用于衡量模型预测和真实标签之间的差异。尽管它们有一定的联系,但它们在使用和应用上还是有所区别。原创 2024-03-07 17:06:59 · 1125 阅读 · 0 评论 -
通过实验验证GAP、GMP、FC性能表现
简单来说,就是在卷积层之后,用GAP替代FC全连接层。有两个有点:一是GAP在特征图与最终的分类间转换更加简单自然;二是不像FC层需要大量训练调优的参数,降低了空间参数会使模型更加健壮,抗过拟合效果更佳。我们再用更直观的图像来看GAP的工作原理:假设卷积层的最后输出是h × w × d 的三维特征图,具体大小为6 × 6 × 3,经过GAP转换后,变成了大小为 1 × 1 × 3 的输出值,也就是每一层 h × w 会被平均化成一个值。原创 2024-02-29 11:23:57 · 1516 阅读 · 0 评论 -
如何查看onnx网络结构和参数
https://github.com/DefTruth/lite.ai.toolkithttps://www.zhihu.com/question/386526462原创 2023-10-19 17:26:55 · 825 阅读 · 0 评论 -
Retinaface 人脸检测及数据集介绍
数据集介绍WIDER FACE 数据集是一个人脸检测基准数据集,其中图像选自公开可用的WIDER 数据集。我们选择了 32,203张图像并这些采集的图像中共标记了393,703 个人脸,在尺度、姿势和遮挡方面具有高度可变性,如样本图像中所示。WIDER FACE 数据集基于 61 个事件类进行组织。对于每个事件类,我们随机选择 40%/10%/50% 的数据作为训练、验证和测试集。我们采用与PASCAL VOC 数据集相同的评估指标。类似于MALF和加州理工学院数据集。原创 2023-07-20 12:06:20 · 1015 阅读 · 0 评论 -
NVIDIA Deep Learning Accelerator (DLA) 输入输出的几种张量格式
DLA_LINEAR 是 NVIDIA Deep Learning Accelerator (DLA) 所支持的一种内存组织方式,它是一种行优先存储的连续内存块格式,用于存储卷积层和全连接层的输入输出数据。在 DLA_LINEAR 格式中,每个元素都是一个定点数,可以是 8 位或 16 位,具体取决于网络的精度要求。在 DLA_LINEAR 格式中,一维数组中的每个元素都是一个定点数,代表了卷积核或全连接层的一个输入或输出通道的值。原创 2023-07-14 21:37:31 · 1031 阅读 · 0 评论 -
TextFuseNet:具有更丰富融合特征的场景文本检测
自然场景中任意形状文本的检测是一个极具挑战性的问题任务。不像现有的文本检测方法都是基于有限的特征表示,本文提出了一种新的文本检测框架TextFuseNet,以探索利用更丰富的特征融合进行文本检测。更具体地说,我们提出从字符、单词和全局三个层次的特征表示来感知文本,然后引入一种新的文本表示融合技术来实现鲁棒的任意文本检测。多层次特征表示可以在保持文本整体语义的同时,通过将文本分解为单个字符来精确地描述文本。原创 2023-07-06 15:56:22 · 401 阅读 · 0 评论 -
深度学习-目标检测之边界框bbox坐标转换公式汇总
可以转换以下三种格式的输入数据 list,numpy,tensor,维度可以从0维到2维, 也就是shape为:(4,) (3, 4) torch.Size([4]) torch.Size([3, 4])的边界框数据。尝试着写了一个可以转换任何维度的任意格式的bbox函数。原创 2023-07-02 21:34:10 · 1303 阅读 · 0 评论 -
深度学习之神经网络量化理解
刚开始接触神经网络,对量化是2年前那会,用NCNN和TVM在树莓派上部署一个简单的SSD网络。那个时候使用的量化脚本是参考于TensorRT和NCNN的PTQ量化(训练后量化)模式,使用交叉熵的方式对模型进行量化,最终在树莓派3B+上部署一个简单的分类模型(识别剪刀石头布静态手势)。这是那会的一篇文章,略显稚嫩哈哈:一步一步解读神经网络编译器TVM(二)——利用TVM完成C++端的部署转眼间过了这么久啦,神经网络量化应用已经完全实现大面积落地了、相比之前成熟多了!原创 2023-04-29 22:09:04 · 2272 阅读 · 1 评论 -
polygraphy深度学习模型调试器使用教程
Polygraphy在我进行模型精度检测和模型推理速度的过程中都有用到,因此在这做一个简单的介绍。使用多种后端运行推理计算,包括 TensorRT, onnxruntime, TensorFlow;比较不同后端的逐层计算结果;由模型生成 TensorRT 引擎并序列化为.plan;查看模型网络的逐层信息;修改 Onnx 模型,如提取子图,计算图化简;分析 Onnx 转 TensorRT 失败原因,将原计算图中可以 / 不可以转 TensorRT 的子图分割保存;原创 2023-04-14 16:45:01 · 3076 阅读 · 0 评论 -
pth模型文件转为onnx格式
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。原创 2023-04-14 14:52:09 · 10211 阅读 · 0 评论 -
CUDA效率优化之CUDA Graph的使用
GPU 架构的性能随着每一代的更新而不断提高。现代 GPU 每个操作(如kernel运行或内存复制)所花费的时间现在以微秒为单位。但是,将每个操作提交给 GPU 也会产生一些开销——也是微秒级的。实际的应用程序中经常要执行大量的 GPU 操作:典型模式涉及许多迭代(或时间步),每个步骤中有多个操作。如果这些操作中的每一个都单独提交到 GPU 启动并独立计算,那么提交启动开销汇总在一起可能导致明显的整体性能下降。CUDA Graphs 将整个计算流程定义为一个图而不是单个操作的列表。原创 2023-04-12 17:45:56 · 2314 阅读 · 0 评论 -
通过阿里云函数计算解决ChatGPT API的调用问题
自2022年11月30日 OpenAI 发布 ChatGPT 以来,虽然时有唱衰的声音出现,但在OpenAI不断推陈出新,陆续发布了OpenAPI、GPT-4、ChatGPT Plugins之后,似乎让大家看到了一个聊天机器人往操作系统入口进军的升纬之路。ChatGPT能被认为是操作系统级别的入口平台,那么必然会催生各行各业应用的重新入局。对此,作为一名开发者来说,面对这样的变革,应该尽早的去了解与实践,在蓝海里更容易找到一份自己的位置。目前DD知道的就有不少小伙伴在基于其API做一些出海的应用。原创 2023-04-11 20:57:48 · 9100 阅读 · 0 评论 -
PyTorch C++系列教程2:使用自定义数据集
在上一篇文章中,我们讨论了如何使用 PyTorch C++ API 实现 VGG-16 来识别 MNIST 数据集。这篇文章我们讨论一下如何用 C++ API 使用自定义数据集。在下一篇教程中,我们将介绍如何在 CNN 中使用自定义的 data loader。原创 2023-04-04 20:38:19 · 436 阅读 · 0 评论 -
PyTorch C++系列教程1:用 VGG-16 识别 MNIST
本文讲解如何用 PyTorch C 实现 VGG-16 来识别 MNIST 数据集。完整代码请参考:参考资料。原创 2023-04-04 20:11:24 · 559 阅读 · 0 评论 -
模型部署入门教程汇总
OpenMMLab 的算法如何部署?是很多社区用户的困惑。而模型部署工具箱 MMDeploy 的开源,强势打通了从算法模型到应用程序这 “最后一公里”!原创 2023-04-03 20:10:06 · 510 阅读 · 0 评论 -
人脸情绪识别开源代码、模型以及说明文档
各个模型我们存放在百度云盘 https://pan.baidu.com/s/1mM-APWoLV5P3nvrzmG–Jg 提取码 1gyh。我们将上述八个模型的结果进行集成,最终生成的文件放在prediction_result下面的result.csv文件中。上述8个模型的预测结果统一放在user_data/tmp_data里面,下面使用集成方法对上述八个模型的结果进行整合。是你训练得到模型的名字,如果你自己训练了其中的一些模型,请将对应的名称修改为训练得到模型的名称。因为是训练八个模型,分别是。原创 2023-03-31 10:38:28 · 921 阅读 · 0 评论 -
PyTorch框架训练的几种模型区别
在PyTorch中,.pt、.pth和.pth.tar都是用于保存训练好的模型的文件格式,它们之间的主要区别如下:.pt文件是PyTorch 1.6及以上版本中引入的新的模型文件格式,它可以保存整个PyTorch模型,包括模型结构、模型参数以及优化器状态等信息。.pt文件是一个二进制文件,可以通过torch.save()函数来保存模型,以及通过torch.load()函数来加载模型。.pth文件是PyTorch旧版本中使用的模型文件格式,它只保存了模型参数,没有保存模型结构和其他相关信息。原创 2023-03-29 15:42:13 · 10131 阅读 · 0 评论 -
NVIDIA监控工具nvtop使用方法
其它相关《NVIDIA查看CPU、内存、GPU使用情况》原创 2022-12-14 14:54:17 · 2592 阅读 · 0 评论 -
CUDA编程网格(Grid)和线程块(Block)和线程(Thread)的关系
CUDA中每一个线程都有一个唯一的标识ID—ThreadIdx,这个ID随着Grid和Block的划分方式的不同而变化,这里给出Grid和Block不同划分方式下线程索引ID的计算公式。1、 grid划分成1维,block划分为1维。2、 grid划分成1维,block划分为2维。3、 grid划分成1维,block划分为3维。6、 grid划分成2维,block划分为3维。8、 grid划分成3维,block划分为2维。9、 grid划分成3维,block划分为3维。原创 2022-06-23 13:44:58 · 2087 阅读 · 0 评论 -
EGLStream详解
视频流的数据量巨大,如果要在不同的进程间传输视频流就必须考虑一些数据传输的底层问题,比如尽量不要做拷贝。以及互斥问题,不能一个程序还没把一张图片读完,共享的内存就被改变了。EGLStream就提供了这样一种功能,支持多个进程间进行无拷贝的视频流传输。EGLStream主要原理是设置了producer和consumer。producer负责把图片放入到EGLStream流中,consumer主要是把图片从流上取出来。流是一系列顺序执行的命令。所以一个进程可以作为上一个命令的consumer,同时又是下一原创 2022-03-20 17:24:40 · 1070 阅读 · 0 评论 -
PyTorch训练模型时RuntimeError: CUDA out of memory. Tried to allocate 2.24 GiB (GPU 0; 1.83 GiB total capa
【代码】PyTorch训练模型时RuntimeError: CUDA out of memory. Tried to allocate 2.24 GiB (GPU 0;原创 2023-03-26 15:08:57 · 653 阅读 · 0 评论 -
PyTorch训练模型出现RuntimeError: Unable to find a valid cuDNN algorithm to run convolution问题
PyTorch训练模型出现RuntimeError: Unable to find a valid cuDNN algorithm to run convolution问题。原创 2023-03-26 10:45:26 · 881 阅读 · 0 评论 -
PyTorch训练模型时出现RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED报错
PyTorch训练模型时出现RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED报错。原创 2023-03-26 10:32:07 · 953 阅读 · 0 评论 -
DLA模型不支持Flatten层的修改方法
在模型部署的时候遇到Nvidia DLA不支持的层,见下文:原ONNX模型中Flatten层中ATTRIBUTES的axis=1,type:int64, 见下图:下面是一个使用ONNX模型中的Reshape层替代Flatten层的示例代码:在上面的代码中,我们使用了helper.make_node函数来创建一个Reshape节点,并将其输入张量设置为原模型中Flatten层的输入张量,输出张量设置为原模型中Flatten层的输出张量。在Reshape节点的参数中,我们将shape设置为[0, -1],其原创 2023-03-24 10:07:52 · 331 阅读 · 0 评论