- 博客(423)
- 资源 (3)
- 问答 (5)
- 收藏
- 关注
原创 计算机体系结构之指令体系结构
指令集系统结构(Instruction Set Architecture ISA)最根本的区别: 在于处理器内部数据的存储类型不同。 存储类型:堆栈、累加器或一组寄存器。操作数可以显式指定或者隐含指定。 (1)堆栈系统结构中操作数隐含地位于栈顶 (2)累加器系统结构中的一个隐含操作数就是累加器。 (3)通用寄存器结构系统中只能明确地指定操作数,不是寄存器就是存储器地址。不同的指令集系统结构的示意图,箭头指示操作数是输入还是ALU运算的结果,或者既是输入也是结果。灰度较轻表示输入,较重表示结果:
2025-04-13 21:14:59
1112
原创 计算机体系结构之量化设计与分析基础
计算机系统结构的原始定义:由程序员所看见到的计算机的属性,即慨念性结构和功能特性,以区分数据流动和控制逻辑设计的组成及物理实现。计算机系统结构(现代定义):是在满足功能、性能和价格目标的条件下,设计、选择和互连硬件部件构成计算机。其系统结构包括:指令系统设计组成(Organization):计算机设计方面的高层次CPU内部结构、存储器、I/O系统、多处理器、网络硬件: 计算机的具体实现技术详细逻辑设计、封装、冷却系统、板级设计,功耗等响应时间(Response time)
2025-04-13 21:09:23
716
原创 算法分析与设计之近似算法
近似算法(Approximation Algorithm)是一类用于求解优化问题的算法,特别是对于那些难以精确求解的大规模问题。对于许多复杂的 NP-hard 问题,寻找精确解可能是不可行的,因为计算复杂度可能过高,甚至是不可计算的。在这种情况下,近似算法提供了一种有效的替代方案,能够在合理的时间内找到一个“足够好的”解,虽然这个解可能不是最优解。
2025-02-11 18:45:27
915
原创 算法分析与设计之NP问题
NP问题(Nondeterministic Polynomial-time problem) 是计算复杂性理论中的一个重要概念,属于计算复杂度类的核心内容。简单来说,NP问题是指那些能够在多项式时间内由非确定性图灵机解决的问题,或者可以在多项式时间内验证其解是否正确的问题。
2025-01-16 20:31:56
1031
原创 算法分析与设计之网络流
网络流(Network Flow) 是图论中的一个经典问题,广泛应用于计算机网络、运输、资源调度等领域。它主要研究如何在网络中传递流量,使得资源得到有效分配,并且满足特定的约束条件。网络流问题通常涉及到一个带有容量约束的有向图,其中每条边都有一个容量限制,表示在某一单位时间内可以通过的流量。网络流的目标是找到最大可能流量的分配方案,或者在某些特定条件下找到一个最优的流量分配。
2025-01-16 20:22:57
716
原创 算法分析与设计之动态规划算法
动态规划(Dynamic Programming,DP)是一种用于解决优化问题的算法技术。它通过将问题分解成更小的子问题,解决这些子问题并将其结果存储起来,避免重复计算,从而提高计算效率。动态规划的核心思想是将原问题分解为子问题,先解决子问题,再用它们的结果来构建原问题的解。
2025-01-15 22:17:15
1081
原创 算法分析与设计之贪心算法
贪心算法是一种基于贪心策略的优化算法,通过一系列的选择得到问题的解,,这种启发式的策略并不能总能获得最优解,通常这种算法对于解决一些最优化问题非常有效,尤其是那些可以通过局部最优解来达到全局最优解的问题。对于一个具体的问题,怎么知道是否可用贪心算法解决此问题,以及能否得到问题的最优解呢?这类问题一般具有两个重要的性质:和。是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。
2025-01-15 21:58:06
1556
原创 算法分析与设计之分治算法
分治算法(divide and conquer)的核心思想:分而治之 ,即将原问题划分成 个规模较小,并且结构与原问题相似的独立子问题,递归地解决这些子问题,然后再合并其结果,就得到原问题的解。
2024-12-13 21:13:18
833
原创 ncnn之resnet图像分类网络模型部署
以R通道为例,原始图片的像素值是从0到255,所以像素值归一化即像x/255,减去均值再除以标准差就是==(x/255-0.485)/0.299==,把255乘下去也就是==(x-0.485×255)/255×0.299==。打开resnet18.param可以看到resnet18的结构,如上图所示,其中像Convolution,ReLU,Pooling,Split,BinaryOp都是一个算子也就是layer。可以看出输出了三个类别263,264,151,可以对imageneg类别中查找分别对应的标签。
2024-09-01 09:51:41
1498
原创 ncnn之yolov5(7.0版本)目标检测pnnx部署
支持python的首选pip,否则就源码编译。ncnn导出路线有以下选择,一般常选用从pt文件或者torchscrip文件导出通过pnnx导出。
2024-08-31 21:25:50
2751
原创 NCNN入门之编译与安装
ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行, 开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如:QQ,Qzone,微信,天天 P 图等。功能概述支持卷积神经网络,支持多输入和多分支结构,可计算部分分支无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架。
2024-08-31 09:10:15
1940
原创 自制深度学习推理框架之表达式层的设计与实现
在 PNNX 中,Expression 类**用于表示和处理计算图中的算子或节点的表达式**。这些表达式通常涉及张量之间的运算、函数调用、以及其他数学或逻辑操作。
2024-08-30 19:50:25
1471
1
原创 自制深度学习推理框架之卷积和池化算子的设计与实现
池化算子和卷积算子是神经网络中的常见操作,本文将介绍其具体的计算,并了解卷积的加速计算Im2col算法。
2024-08-30 18:18:29
1804
原创 自制深度学习推理框架之计算图设计
计算图(Computational Graph)是一种用于表示数学运算和数据流的图结构,在深度学习中,它用于描述神经网络中的操作及其依赖关系。节点:表示操作(如加法、乘法、激活函数等)或变量(如输入、权重、偏置等)。边:表示数据的流动,通常是张量(Tensor)在节点间传递。
2024-08-16 17:33:04
1617
原创 自制深度学习推理框架之Tensor模板类的设计与实现
张量(Tensor)是一个多维数组的通用化概念,在数学和计算科学中被广泛使用,特别是在机器学习、物理学和工程学等领域。它是标量(0维张量)、向量(1维张量)和矩阵(2维张量)的一般化,可以扩展到更高的维度。Tensor可以看作是一个具有任意维数的多维数组。张量的维数,即张量的轴的数量。0维张量是标量,1维张量是向量,2维张量是矩阵,依此类推。每个维度的长度。形状决定了张量在每个维度上包含的元素数量。张量中的元素类型,如整型、浮点型等。
2024-08-16 16:52:10
1084
原创 C++多线程
在 C++11 之前,多线程编程主要依赖于操作系统提供的 API,如 POSIX 线程(pthread)库。而从 C++11 开始,标准库引入了一组新的线程库,提供了更简洁和跨平台的多线程支持。C++11 标准引入了 头文件,使得多线程编程更加简洁和跨平台。新标准库提供了创建和管理线程、同步数据的工具。
2024-07-24 22:24:22
946
原创 Linux多线程C/C++
在 Linux 中,多线程编程可以显著提高应用程序的性能和响应能力。多线程允许程序在多个线程中并行执行,从而更好地利用多核处理器。Linux 中的多线程编程主要依赖于 POSIX 线程(pthread)库。这个库提供了创建、同步和管理线程的各种函数。使用 头文件可以实现多线程应用。
2024-07-24 21:39:25
1736
2
原创 深度学习语义分割算法之基础知识
一般在计算机视觉领域分割任务主要分为语义分割(Semantic Segmentation)实例分割(Instance Segmentation)全景分割(Panoramic Segmentation)这三大类。
2024-06-25 19:42:12
1491
5
原创 深度学习目标检测算法之RetinaNet算法
目标检测算法RetinaNet网络原理同时介绍了FPN特征金字塔和Focal Loss损失函数!
2024-03-27 21:31:01
11847
2
原创 深度学习目标检测算法之Faster R-CNN算法
目标检测是当前计算机视觉领域内研究的一个热点,与图像分类不一样的是,目标检测不仅要准确地识别出图像中目标的类别,还要准确的定位该目标的位置,并用边界框把目标框起来。基于深度学习的目标检测算法可以分为两类:二阶算法(Two Stage)和一阶算法(One Stage)二阶算法:先生成区域候选框,再通过卷积神经网络进行分类和回归修正。常见算法有 RCNN、SPPNet、Fast RCNN,Faster RCNN 和 RFCN 等。
2024-03-25 16:57:18
10101
原创 CMake之构建跨平台项目的强大工具
本来在学习TensorRT的时候就想记录一下CMake的知识点的,但是当时由于临近期末各科作业有多一直拖动了现在哈哈哈,最近ROS中也用到了CMake决定整理一下常用的指令。CMake 是一个项目构建工具,并且是跨平台的。
2024-02-06 21:05:12
1810
11
原创 ROS入门之通信机制及常用API
ROS的通信架构是ROS的灵魂,也是整个ROS正常运行的关键所在。ROS通信架构包括各种数据的处理,进程的运行,消息的传递等等。基于发布/订阅的话题通信基于客户端/服务器的服务通信基于RPC的参数服务器,每个通信方式都有自己的特点。这里主要记录了通信架构的基础通信方式和相关概念、各种通信常用API以及其他常用API。在ROS通信协议中,数据载体是通信中的核心组成部分。ROS通过std_msgs库封装了一些原生的数据类型,如等。然而,这些数据类型一般只包含一个data字段,结构相对简单。
2024-02-04 19:57:03
1582
原创 基于深度学习的多功能人脸识别系统
这个工程是机器视觉的课程设计作业涉及OpenCV图像处理、DNN网络模型部署、Mqtt阿里云连接以及SMTP邮件发送等几个知识点,以上基于Qt(C++)和OpenCV实现的,趁着寒假简单记录一下开发过程哈哈哈!
2024-02-03 10:44:40
1929
5
原创 ROS2入门之节点与指令
ROS(Robot Operating System)是一个开源的机器人操作系统框架,最初由Willow Garage公司于2007年发起。ROS提供了一套工具和库,用于构建和开发机器人应用程序。其特点包括基于消息传递的中间件、通信模型、工具集以及开源的性质。ROS的通信机制采用发布-订阅模型和服务调用,使得不同组件(节点)能够实现信息交流。ROS在学术界和工业界都得到广泛应用,但在大规模系统中可能存在通信效率和实时性方面的挑战。ROS 2是ROS的下一代版本,旨在解决ROS的一些限制和缺点。
2024-01-11 20:50:38
3918
原创 TensorRT之LeNet5部署(onnx方式)
本文记录一下TensorRT部署流程,上一篇使用wts文件构造网络结构,这篇会使用ONNX构造网络。
2023-12-03 13:50:46
492
2
原创 TensorRT之LeNet5部署(wts方式)
零基础入门学习TensorRT部署深度学习网络,本文记录一下TensorRT部署流程,参考了网上很多例程,可能有的代码是旧版本的,但是这并不影响的,这里主要是使用API的方式构建网络。
2023-11-28 14:41:29
717
原创 Python进阶之闭包和装饰器
一般来说闭包这个概念在很多语言中都有涉及,本文主要谈谈python中的闭包定义和相关用法以及装饰器。Python中使用闭包主要是在进行函数式开发时使用,而装饰器(语法糖)在闭包的基础上为函数添加额外的功能,并且在不改变原函数代码的情况下。
2023-11-05 23:20:07
280
2
原创 Python进阶之迭代器
迭代器生成器装饰器。这里给大家先介绍迭代器相关的知识。迭代:通常从一个对象中依次取出数据,这个过程叫做遍历,也称为**迭代(**重复执行某一段代码块,并将每一次迭代得到的结果作为下一次迭代的初始值)。可迭代对象是指该对象可以被用于for循环,例如:集合,列表,元组,字典,字符串,迭代器等。直接作用于for循环的对象统称为可迭代对象(Iterable)那么在代码层面如何定义一个可迭代对象呢?在python中如果一个对象实现了__iter__方法,则该对象可以称之为可迭代对象。
2023-10-15 22:29:55
636
3
原创 Pytorch之MobileViT图像分类
MobileViT是一种基于架构的轻量级视觉模型,旨在适用于移动设备和嵌入式系统。ViT是一种非常成功的深度学习模型,用于图像分类和其他计算机视觉任务,但通常需要大量的计算资源和参数。MobileViT的目标是在保持高性能的同时,减少模型的大小和计算需求,以便在移动设备上运行,据作者介绍,这是第一次基于轻量级CNN网络性能的轻量级ViT工作,性能SOTA。性能优于MobileNetV3、CrossviT等网络。
2023-10-13 13:42:06
6210
12
原创 Pytorch之RepVGG图像分类
RepVGG是一个简单的网络结构,它通过堆叠来构建整个网络,在2021 年发布在CVPR的一篇论文Making VGG-style ConvNets Great Again提出来的,使用structural re-parameterization(结构重参数化)的方式让类VGG的架构重新获得了更好的性能和更快的速度。RepVGG核心思想是:通过结构重参数化思想,让训练网络的多路结构(多分支模型训练时——性能高)转换为推理网络的单路结构(模型推理时——速度快、省内存)),
2023-10-13 13:40:20
900
原创 Pytorch之ConvNeXt图像分类
CNN自1989年以来一直存在,当时第一个多层CNN,称为ConvNet,由Yann LeCun开发。该模型可以执行视觉认知任务,例如识别手写数字。1998年,LeCun开发了一种改进的ConvNet模型,称为LeNet。由于其在光学识别任务中的高精度,LeNet在发明后不久就被工业使用。从那时起,CNN一直是工业界和学术界最成功的机器学习模型之一。下图显示了 CNN 生命周期中架构发展的简要时间表,从 1989 年一直到 2020 年,
2023-10-12 17:29:53
3751
2
YOLOv5:高效实时目标检测的新巅峰
2023-09-20
OpenCV YOLOv4:下一代目标检测算法的革命性突破
2023-09-19
OpenCV yolov2-tiny 目标检测
2023-09-18
OpenCV C++ YOLOv3目标检测
2023-09-17
OpenCV Goturn目标追踪
2023-09-14
OpenCV 年龄和性别预测
2023-09-14
OpenCV FCN图像分割
2023-09-12
OpenCV MobileNet-SSD目标检测
2023-09-12
OpenCV4-CUDA
2023-09-12
OpenCV SSD目标检测(C++)
2023-09-12
GoogLeNet图像分类
2023-09-11
qlabel显示视频流问题
2022-08-14
神经网络中用到迭代器的作用
2022-02-11
Intel (R) HD Graphics 支持神经网络的加速吗
2022-01-28
LCD1602显示问题
2021-12-08
python 文件排版,怎么控制写入在对应文件的位置(要写吐了,真是服了)
2021-10-28
链表空指针问题,temp为什么会出现可能是空指针
2021-10-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人