自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (16)
  • 收藏
  • 关注

原创 【嵌入式】Linux程序调试工具使用整理

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。可让被调试的程序在你所指定的调置的断点处停下来当程序被停下来看,可以检查此时你的程序中所发生的事动态的改变你程序的执行环境。

2023-10-13 11:16:19 420

原创 【高性能计算】Linux 系统中提供CPU性能分析工具整理

首先在后台启动一个dd命令,让它持续运行一段时间,然后开启perf record,记录一秒钟内cpu都运行了多少个cpu-cycles,也就是时间(同时使能-g,就会一并记录运行的函数以及调用关系),再利用perf script命令将perf.data转成perf.unfold,最后利用FlameGraph工具将其转换成一个perf.svg,这是一个图形文件,用浏览器打开后会得到这样图记录着函数调用关系及其cpu-cycles(时间)占比,就像一缕缕升起的火苗,所以被称之为火焰图。

2023-10-13 10:51:01 2261

原创 【高性能计算】TVM使用TE手动优化矩阵乘法算法解析与代码解读

TE 的设计是作为更复杂的算法的基础,可以搜索潜在的优化。本教程提供了一个 TVM 张量表达(TE)工作流程的演练,使用了一个矢量添加和一个矩阵乘法的例子。通过一系列的操作来描述你的计算。描述我们要如何计算使用调度原语。编译到我们想要的目标函数。可以选择保存该函数以便以后加载。

2023-02-27 20:40:31 948 1

原创 【嵌入式】gcov/lcov/gcovr代码覆盖率交叉编译使用解析

gcov是一个测试代码覆盖率的程序,正确地使用它搭配GCC可以分析、帮助你将代码写得更高效。帮助你优化程序。类似于一个profiling tool,使用gcov或者gprof,可以收集到一些基础的性能统计数据。每一行代码执行的频度每个代码文件中实际被执行到的行数每一个代码块执行使用的时间gcov创建一个logfile叫做 源文件名称.gcxx (这里的源文件名称指的是.c或者.cc文件的文件名),表示的是这个 源文件.c 中每一行所被执行的次数。这些文件可以配合gprof使用。

2023-02-08 15:26:27 5418 2

原创 【高性能计算】为什么内存需要8字节或16字节对齐

解决内存不断变慢问题的一个方法是在更宽的总线上访问内存,而不是一次访问一个字节

2023-01-17 16:35:15 1334

原创 【高性能计算】NCNN源码解析笔记

layer->load_model(mb),我们指定layer其实是解析完模型网络结构的具体的layer,比如卷积Convolution,也就是这个调用其实调用的是layer的子类Convolution层的load_model()函数。在modelbin.cpp中load的实现就很简单了,根据多态的load传入不同的参数,声明一维、二维或三维的Mat,然后把从xxx.bin中解析出的数据放入Mat返回回去就行了。benchmark:一些常见模型的模型文件,如mobilenet,resnet,vgg等。

2022-09-30 15:41:52 1507 1

原创 【AI系统】一文讲完多线程计算

【代码】【高性能计算】C++多线程计算与线程池。

2022-09-21 09:41:12 1054

原创 【高性能计算】内存结构与优化理论

内存结构与优化理论。

2022-09-20 16:56:40 408

原创 【Python脚本】显示试验可视化对比进行拼接

加载实验中可视化的图片后,对不同方法进行对比,对多个图像进行横向拼接,保存图片进行对比。代码如下

2022-06-02 20:07:26 180

原创 【C/C++】cmake的使用教程

cmake 主要是对 CMakeLists.txt 文件进行编写CMAKE_MINIMUM_REQUIRED(VERSION 2.6)set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) PROJECT(HELLO) # 把当前目录下所有源代码文件和头文件加入列表变量 SRC_LISTAUX_SOURCE_DIRECTORY(. SRC_LIST)# 也可以使用set命令新建变量来存放需要的源文件建立列表变量s

2022-05-09 21:14:39 472

原创 【高性能计算】英特尔oneAPI—英特尔异构统一编程接口初识及其深度学习应用

英特尔oneAPI-英特尔异构统一编程与接口初识1 高性能计算的今天高性能计算(High performance computing,HPC) 通常使用不同的设备、处理器进行计算。HPC的市场增长逾加迅速,在云计算、大数据、AI等领域大放异彩。如今,全球芯片短缺似乎无法避免,而高性能计算需求愈加旺盛,随着深度学习等需要高性能算力的模型快速发展,硬件价格的上涨、计算能力的限制、模型设计的日益发展,让有限的设备发挥高性能的计算能力,成为无法避免的问题与挑战。2 oneAPI的生正逢时one 代表统

2022-05-06 19:46:04 3841 4

原创 【深度学习】图像基础与神经网络及其应用

1 应用交通运输是新型基础设施与传统基础设施融合发展的重要领域,而智能交通是交通运输行业发展的主要方向之一。国家已经将“交通强国”列入国家战略,十三届全国人大四次会议通过《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》,指出发展智慧交通、自动驾驶和车路协同的出行服务,这将很大程度上为智能交通的建设速度和建设质量提供保障。锁定“碳达峰”,智慧交通刻不容缓。ADAS作为自动驾驶的基础系统,是实现智慧交通的关键技术之一,其提升汽车主动安全性可以有效减少交通事故的发生和驾驶人员的伤

2022-05-04 19:04:22 2028

原创 【数据集】KITTI raw 数据集获取方法

【数据集/爱数据】KITTI raw 数据集获取方法「爱数据」 提供以下下载方式:迅雷极速下载脚本自动下载具体如下迅雷下载https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_26_calib.ziphttps://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_09_26_drive_0001/2011_09_26_drive_0001_sync.z

2022-03-14 20:53:59 2013 3

原创 【高性能计算】CUDA编程之OpenCV的应用(教程与代码-4)

imread命令将返回以蓝色、绿色和红色(BGR格式)开头的三个通道处理视频的main函数中需要做的第一件事是创建VideoCapture对象。 GPUCUDA模块中的函数都定义在cv::cuda命名空间中,将设备上配置给图像数据用的显存块作为其参数。gettickcount函数返回启动系统后经过的时间(以毫秒为单位)使用具有CUDA的opencv进行阈值滤波#include <iostream>#include "opencv2/opencv.hpp"int main (in.

2022-03-06 14:53:39 4089

原创 【高性能计算】CUDA编程之性能测试与流的概念(教程与代码-3)

4 CUDA高级概念的使用4.1 性能测试与报错处理研究表明:如果块数量是GPU的流多处理器数量的两倍,则会给出最佳性能,不过,块和线程的数量和具体的算法实现有关。块中的线程数量应当被设定等于设备属性中每个块所能支持的最大线程数量,但实际上这些数值只是作为一种基本的准则来说的。常见的内核执行有3个瓶颈:卡在计算瓶颈上,卡在访存上和卡在延迟掩盖上。具体显卡上通过Profiler分析。哪种资源先达到瓶颈,就减少这种资源的使用(计算或者访存),而增加另外一种,并非一味地增加计算,或者减少访存。跨步式

2022-03-04 20:42:33 900

原创 【高性能计算】CUDA编程之线程存储与原子操作(教程与代码-2)

3 线程、同步、存储器3.1 线程与存储tid=blockIdx.x(当前块的ID)*blockDim.x(当前块里面的线程数量)+threadIdx.x(当前线程在块中的ID)gridDim.x*blockDim.x来计算,前者代表了本次启动的块的数量,而后者代表了每个块里面的线程数量,然后每次while循环,tid变量加上这个值,向后偏移以得到下个任务的索引所有线程都有一个寄存器堆,它是最快的。共享内存只能被块中的线程访问,但比全局内存块。全局内存是最慢的,但可以被所有的块访问。常量和纹

2022-02-25 13:09:01 892

原创 【高性能计算】CUDA编程之环境配置与小试牛刀(教程与代码-1)

前言最近在学习linux环境下的CUDA编程,力求实现AI算法加速应用,整理些许笔记如下,代码经过调试,可以跑通。基础环境为mac本地,通过vscode远程控制ubuntu的开发板。1 CUDA开发环境环境配置Mac检查clang,检查所使用的mac是否自带了clang,敲命令行:clang -v // or clang --versionMacOS为了照顾用户习惯,也可以执行gcc命令,但MacOS10.12以后系统不自带gcc。如果没有的话则去安装,敲命令行:xcode-sele

2022-02-23 21:13:27 1427

原创 【PyTorch】多卡训练/混合精度/分布式训练之踩坑指北

【pytorch】多卡训练/混合精度/分布式训练之踩坑指北1. 混合精度1.1 目的训练网络的基本上都是在N卡上面执行的,数据集比较大时,训练网络会耗费大量的时间。由于我们需要使用反向传播来更新具有细微变化的权重,因而我们在训练网络的过程中通常会选用FP32类型的数据和权重。混合精度训练,即当你使用N卡训练你的网络时,混合精度会在内存中用FP16做储存和乘法从而加速计算,用FP32做累加避免舍入误差。它的优势就是可以使你的训练时间减少一半左右。它的缺陷是只能在支持FP16操作的一些特定类型的显卡上

2021-12-20 18:06:07 6485 2

原创 【数据集】光流常见数据集下载教程

光流常见数据集下载教程注意:以下均需科学上网,shitFlyingChairs地址:https://lmb.informatik.uni-freiburg.de/resources/datasets/FlyingChairs.en.html#flyingchairs注意:“Flying chairs” train-validation split (1 - train, 2 - validation)这个文件下载需要使用wgetwget https://lmb.informatik.uni-

2021-12-08 16:46:22 5690 3

原创 【Python脚本】绘制常见激活函数代码

import matplotlib.pyplot as pltimport numpy as npimport mathdef elu(x,alpha=1): a = x[x>0] b = alpha*(math.e**(x[x<0])-1) result=np.concatenate((b,a),axis=0) return resultdef relu(x): if x >= 0: return x else

2021-11-17 11:31:07 1431

原创 【C++】数据类型大小以及常见的ASCII码值

8 bit 比特 = 1 byte 字节变量首字母只能是 下划线 或者 字母,其他为下划线、字母、数字变量不能是关键字命名不要用拼音,不要用单个英文单词代码如下int main(){ cout << "数据类型字节数字" << endl; cout << "char = " << sizeof(char) << endl; cout << "bool = " << sizeof(bool) <&l

2021-10-27 11:25:39 521

原创 【Zotero】文献管理软件抓去中文文献引用

https://github.com/l0o0/translators_CN抓取知网等论文下载CNKI.js复制至transtlator

2021-10-15 10:24:11 1026

原创 【OpenCV】特征匹配+Homography找目标

特征匹配+Homography找目标我们之前使用了查询图像,找到其中的一些特征点,我们取另外一个训练图像,找到里面的特征,我们找到它们中间最匹配的。简单说就是我们在一组图像里找一个目标的某个部分的位置。我们可以使用一个calib3d模块里的函数,cv2.findHomography().如果我们传了两个图像里的点集合,它会找到那个目标的透视转换。然后我们可以使用cv2.perspectiveTransform()来找目标,它需要至少4个正确的点来找变换。我们看过可能会有一些匹配是的错误而影响结果。哟啊

2021-07-02 21:57:04 985

原创 【职业规划】民生银行提前批笔试算法岗提前批笔试复盘总结

题目构成:30道选择问题2道编程题2问答题选择题:主要是关于编程一些很课本的知识点,包括c++,python,java;还有数据库知识,tcp三次握手,简单的编程算法推理等;(很多知识点我觉得出题人没有针对性,只是泛泛的题库抽题的感觉)编程题:1.学生分数排名,类似力扣178. 分数排名,难度中等,编写一个 SQL 查询来实现分数排名包含三科成绩,按照总分排名2.简单交互界面输入1,则判断后续输入的行数输入q,则退出循环输入~问答题:1.分布式系统组件和功能2.数据库查

2021-06-26 20:44:53 630

原创 【Python脚本】项目文件目录下的加载路径

先上示例:import osimport sys__dir__ = os.path.dirname(os.path.abspath(__file__))sys.path.insert(0, __dir__)解释一下:1.os.path.abspath():os.path.abspath(__file__) 功能: 获取当前脚本的完整路径注意:os.path.abspath(file)返回的是脚本的绝对路径,即setting.py文件的绝对路径。2.os.path.dirname():

2021-06-15 15:05:12 1052 5

原创 【PaperRead】无监督图像分类技术

无监督图像分类技术1.基于深度学习参考论文:A survey on Semi-, Self- and Unsupervised Techniques in Image Classification1.1 目标leverage unlabeled data in numerous ways:semi-supervisedself-supervisedweakly-supervised or metric learningmakes the training with few lab

2021-05-24 17:48:24 1699

原创 【Python脚本】多个json文件合并为一个

root_dir = './' out_sds = './data_all.sds' paths = os.listdir(root_dir) weibos = ['weibo1.json','weibo2.json','weibo3.json','weibo4.json','weibo5.json'] count = 0 #记录数据总条数 with open(out_sds,"w+") as f: for path in paths: ...

2021-05-17 11:40:51 1442

原创 【Pytorch】要求每个batch为相同的size

最近一个实验想多个size的sample送入网络中,但是每个batch要求size大小一致PyTorch中的DataLoader为了并行计算,要求batch内的图像矩阵必须有相同的size,但是却没有要求不同的batch之间必须是相同的size。你可以自定义一个sampler,让每个batch内部的图片的size尽量接近,然后再在collate_fn函数里面稍微resize一下(比如按batch内最大的图片尺寸进行resize),就可以实现不同size的图片的并行训练了。...

2021-04-28 14:51:56 3278 1

原创 【Python脚本】手动过滤图片数据样本的自动化操作

可以通过键盘快速操作import cv2import osimport argparseimport numpy as np from tqdm import tqdmimport shutilimport randomimport globimport jsonimport sysimport ttyimport termiosdef parse_arg(): """ Parse command line input parameters """

2021-04-12 11:37:31 169

原创 【Python脚本】多进程代码模板

from tqdm import tqdmfrom multiprocessing import Queue, Processdef split_task_for_workers(records, num_worker): """ 给每个worker分配要处理的数据 """ splits = {} for i_worker in range(num_worker): splits[i_worker] = [] for i_data i.

2021-03-24 17:36:29 287

原创 【Python脚本】检查并创建文件夹

def check_and_make_dir(dir_path): if os.path.exists(dir_path): print("{} already exists!!!".format(dir_path)) #exit() else: os.makedirs(dir_path) assert os.path.exists(dir_path), dir_pathcheck_and_make_dir(save_dir

2021-03-23 11:05:43 407

原创 【Python脚本】常用的json读取文件代码

话不多说,markimport jsondef load_json_items(json_path): # 多个dict with open(json_path, "r") as f: json_items = [json.loads(s) for s in f.readlines()] return json_itemsdef save_json_items(json_path, json_items): with open(json_path, "

2021-03-22 16:05:20 409

原创 【Linux】jetson agx xavier 安装环境

先卸载原有的OpenCV(不管原来装没装都卸一下,一行命令也不费劲):sudo apt-get purge libopencv*输入下面的代码进行安装:git clone https://github.com/jetsonhacks/buildOpenCVXaviercd buildOpenCVXaviergit checkout v1.0./buildOpenCV.sh然后就是漫长的等待,中间可能还要输入几次密码安装好就可以用了。...

2020-07-27 11:59:02 662

原创 【职业规划】LeetCode简单题

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶:你能不将整数转为字符串来解决这个问题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.

2020-07-26 10:02:29 218

原创 【职业规划】编程之美系列1

1-1#include <iostream>#include "windows.h"#include "stdlib.h"#include "math.h"#pragma execution_character_set("utf-8")#define GetCPUTickCount() _rdtsc()int main(){ const int samping_count = 200; const int total_amplitude = 300;

2020-07-23 10:31:13 224

原创 【Linux】ubuntu18.04安装ROS避坑指南

最近需要学习ROS操作系统,决定安装在ubuntu上,但是诸多原因导致安装出现各种问题,先总结如下:先上官方安装教程!官方教程何其重要!ROS安装1.操作系统的选择在前在ubuntu16上安装,出现很多很多问题,现在回想应该是因为网络的原因。之后在deepin15安装,也失败,应该还是网络原因。在新发布的deepin20也安装失败,原因是ROS还不支持这个系统。现在在ubuntu18尝试安装,成功。2.换源由于国内的各种原因,这里不仅要换软件包的源,ROS的源也要换掉。ubuntu18换

2020-06-21 10:30:23 2541 2

原创 【Linux】ROS系统相关问题与解决

rosdep init 或者rosdep update 连接错误的解决办法如果提示的是ERROR: unable to process source https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/xxxxx 之类的错误,同时保证自己机器可以上百度的前提下,此时可能是因为raw.githubusercontent.com网站被墙了。解决办法是修改hosts文件,添加这个网站的ip地址#打开hosts文件sudo gedit

2020-06-20 10:46:47 432

原创 【Linux】ROS机器人操作系统的安装与使用

1.ubuntu1)简介> Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu基于Debian发行版和Gnome桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity。从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。UBUNTU

2020-05-26 15:28:50 3000 1

原创 【SLAM】视觉里程计的入门实践

1.典型特征1)前言在SLAM系统问题中,根据经典的框架,分为:前端、后端、回环、建图四大部分。所谓前端,就是视觉里程计的部分,视觉里程计又称前端。是视觉构建中,前端的作用就是把图像的信息处理为相关后续可以使用的计算向量,就是通过图像得出相机的运动信息,为后续计算提供可能。> 图像处理中,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。图像特征点在基于特征点的图像匹配算法中有着十分重要的作用。图像特征点能够反映图像本质特征,能够标识图像中目标物体。通过特征

2020-05-26 15:25:54 1018

原创 【SLAM】对极几何学习与实践

一、对极约束1.前言问:对极约束是用来干嘛的?什么是对极约束?答:对于已经知道的图像2D点,通过若干点来匹配得出相机的运动情况,什么是对极约束呢,接下来我会介绍一下。如上图所示,可以简单的了解了什么是对极约束。对极约束是一种约束条件,是在我们不知道三维点P的真实空间三维位置的时候,通过相关的几何关系将三维P点在第二帧的图像上有可能的投影位置在约束条件下为一条直线上(就是极线)。然后,通过相关特征匹配,我们确定两个三维点p2与p1一样,都是空间点P的投影。2.约束我们通过相关计算,经过相机

2020-05-26 15:23:24 997 1

STM32F10X固件安装包较低版本1.0.56.pack

STM32F10X固件安装包较低版本1.0.56.pack

2019-07-30

智能加湿器完美运行程序代码带说明.zip

该程序为51单片机控制加湿器继电器,通过1602显示DHT11温度湿度的应该程序,带有手动按键功能,报警功能和提示音等,带管教说明。经过测试,完美运行。

2019-06-02

Labview串口读写.vi

Labview串口读写,实现串口的读写功能,与单片机51,stm32,串口仿真等实现数据上传。

2019-04-20

ds18b20+打印工程代码stm32

ds18b20+打印工程代码stm32

2019-01-15

rs232串口通信万能工程代码模板stm32

rs232串口通信万能工程代码模板stm32

2019-01-15

pwm呼吸灯stm32工程代码

pwm呼吸灯stm32工程代码

2019-01-15

数码管显示stm32调试工程代码

数码管显示stm32调试工程代码

2019-01-15

最全pid控制算法的C语言实现

最全pid控制算法的C语言实现,pid实现的经典算法大集合,基本都有了,有代码直接用

2019-01-10

满意pid控制设计理论与方法

满意pid控制设计理论与方法,受用的论文,建议看一看,会有更深的理解

2019-01-10

pid算法原理及调整规律

pid算法原理及调整规律,超级详细讲解pid算法的书籍,醍醐,受用

2019-01-10

ov670摄像头模块资料代码书籍说明书stm32

ov670摄像头模块资料代码书籍说明书stm32

2019-01-10

mpu6050stm32程序驱动程序工程代码

mpu6050stm32程序驱动程序工程代码

2019-01-10

超声波测距stm32程序工程代码

超声波测距stm32程序工程代码

2019-01-10

万能300简历+信纸100

万能300简历+信纸100

2019-01-10

500个超全会声会影滤镜遮罩

500个超全会声会影滤镜遮罩,会声会影适用,相当全的

2018-12-25

空空如也

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

TA关注的人

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