- 博客(19)
- 收藏
- 关注
原创 C++ 内存分析工具
1、维护一个内存操作链表,当有内存申请操作时,将其加入此链表中,当有释放操作时,从申请操作从链表中移除。如果要释放的内存操作没有在链表中找到对应操作,则说明是释放了多次。仿照操作系统对进程内存操作的处理,在用户态下维护一个地址空间映射,此方法要求对进程地址空间的处理有较深的理解。可以看成生成了valReport文件,查看其内容,可以看其指出了具体代码未释放内存的行数,分配的内存大小等其他信息。从左到右依次是:执行程序名,调用函数时机器码中的地址信息,申请/释放, 申请到的地址信息,申请到的地址大小。
2023-07-04 09:47:22
317
原创 Python-Pdb-调试
1)终端使用 python -m pdb ./xxx.py 来启动2)在需要调试的位置前添加 import pdb;pdb.set_trace() 语句。
2023-07-01 20:22:38
914
原创 NCNN-编译_引用_源码结构
.bin: 存储了对应模型中部分层的计算需求参数(如:卷积层的权重、偏置信息等),每个数据缓存区按32位对齐。数据缓存区有三种可能:flag数据类型标志位,raw_data原始数据 和 padding数据填充。*.param: 描述神经网络的结构,包括层名称,层输入输出信息,层参数信息等。详细注释参看其他文章。
2023-06-11 22:07:54
267
原创 NCNN-DataReader
路径:src/datareader.h 和 src/datareader.cpp使用不同的方式读取数据,代码比较简单,都是对库函数的简单封装。
2023-06-11 16:16:44
174
原创 NCNN-Option_Paramdict
路径:src/Option.h 和 src/Option.cpp, src/paramdict.h 和 src/paramdict.cppOption是一个简单的配置类,Paramdic是网络层的配置参数,不同层有不同配置参数。
2023-06-11 15:40:04
364
原创 NCNN-Blob_Layer
路径:src/blob.h 和 src/blob.cpp, src/layer.h 和 src/layer.cppBlob结构简单,源码也很短, Layer包括层的名称,参数等,层的输入输出节点信息,层的执行流程。
2023-06-11 14:48:58
240
原创 ONNX学习笔记
一种表示深度学习模型的开放格式,一套独立于环境和平台的标准格式。ONNX文件存储了神经网络模型的权重和模型的结构信息、网络中各层的输入输出等一些信息。
2023-06-01 16:37:12
464
原创 OpenCV_YUV图片处理
OpenCV读取图片时默认都是BGR,一般需要使用cv::cvtColor转为RGB,但有些情况下需要使用YUV格式,YUV格式比较多,OpenCV并没有提供所有的转换方法,但是可以自己实现。主要使用的还是YUV420_NV12格式。
2023-05-31 12:30:38
1674
1
原创 OnnxRuntime编译
(注:网上有教程说可以通过修改.git/config文件来解决中断的问题,尝试之后还是经常会断,可能是我没修改对,可参考: https://zhuanlan.zhihu.com/p/411887386)define Minimal_Build 用来较少一些非必要的函数,但是仅支持ORT模型文件,即需要先使用官方提供给python脚本来将ONNX文件转为ORT模型文件。其中.ort文件用于模型推导,因为最小的编译的onnxruntime仅支持ort模型文件,不再支持onnx文件。得到四个文件,两两对应。
2023-05-27 15:00:36
2821
1
原创 OpenCV编译
注:在windows环境下,visual studio 要想指定编译版本为Release,需要在构建阶段使用–config Release指令,否则即使在CMakeList.txt中添加了set(CMAKE_BUILD_TYPE “Release”)依旧不会生效。下载源码,可以根据README文档的指令,设定CMake参数来指定扩展模块的位置,进而进行编译,但是也可以直接将所需模块的文件夹拷贝至源码下的modules目录下,简单一点。,选择一个合适的版本,点击Sources进行下载和解压。
2023-05-26 15:11:04
1220
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人