C++内存分析之core文件调试指南
[TOC]
概述查看断点12345678910(gdb) bt#0 000007fa1fef385f7 in raise () from /lib64/libc.so.6#1 0x00007fa1fef39ce8 in abort () from /lib64/libc.so.6#2 0x00007fa1fef78317 in __libc_message () from /lib64/libc.so.6#3 0x00007fa1fef7e184 in malloc_printerr () from /lib64/libc.so.6#4 0x00007fa1fef818e7 in _int_malloc () from /lib64/libc.so.6#5 0x00007fa1fef828dc in malloc () from /lib64/libc.so.6#6 0x000000000043a147 in CMemPool::frealloc (ud=0x0, ptr=0x0, osize=0, nsize=64, p=0x1a8a450) at MemPool.h: ...
cmake学习之add_subdirectory指令
[TOC]
文章参考:https://blog.csdn.net/weixin_39258979/article/details/115133517
概述语法基础1add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
一共有三个参数,后两个是可选参数
source_dir 源代码目录
指定一个包含CMakeLists.txt和代码文件所在的目录,该目录可以是绝对路径,也可以是相对路径,对于后者相对路径的起点是CMAKE_CURRENT_SOURCE_DIR。此外,如果子目录再次包含的CMakeLists.txt,则将继续处理里层的CMakeLists.txt,而不是继续处理当前源代码。
binary_dir 二进制代码目录(其实就是cmake命令输出文件)
这个目录是可选的,如果指定,cmake命令执行后的输出文件将会存放在此处,若没有指定,默认情况等于source_dir没有进行相对路径计算前的路径,也就是CMAKE_BINARY_DIR。
EXCLUDE_FROM_ALL标记
这个标志是可选的,如果传 ...
cmake学习之判断操作系统版本
[TOC]
概述cmake中判断操作系统平台有两种方法:
使用CMAKE_SYSTEM_NAME进行判断
123456789101112# =================================== 编译系统相关的变量配置选项 =================================if (CMAKE_SYSTEM_NAME MATCHES "Linux") set(HOST_OS "linux")elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") set(HOST_OS "windows")elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") set(HOST_OS "FreeBSD")elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") set(HOST_OS "osx") ...
cmake学习之判断操作系统版本
[TOC]
概述集成GTest框架在C++工程的third_party里面新建gtest目录
下载源码:https://github.com/google/googletest/releases
现在最新的版本是v1.11.0
下载源码完成之后,进行编译gtest
123456(base) wangzhijiang@FreweniBaiduMacBook2 ~/03.ProgramSpace/15.CLang/01.WorkSpace/NyxCLang/AliceVisionAbility/third_party/gtest/v1.11.0/src/googlete(base) wangzhijiang@FreweniBaiduMacBook2 ~/03.ProgramSpace/15.CLang/01.WorkSpace/NyxCLang/AliceVisionAbility/third_party/gtest/v1.11.0/src/googletest-release-1.11.0 main ±✚ mkdir gtest-build(base) wan ...
cmake学习之判断操作系统版本
[TOC]
概述集成步骤将Flatbuffer集成到我们的项目中
123456789101112131415161718192021222324if (BUILD_FLAT_BUFFERS_LIB) # 官网文档 # https://google.github.io/flatbuffers/flatbuffers_guide_building.html set(FLAT_BUFFERS_NAME flatbuffers) # 设置FlatBuffers的名称 set(FLAT_BUFFERS_VERSION v22.10.26) # 设置FlatBuffers的版本号 set(FLAT_BUFFERS_BASE_DIR ${LIB_DIR}/${FLAT_BUFFERS_NAME}/${FLAT_BUFFERS_VERSION}) # 设置flatbuffers的根目录 # 如下表示使用FLAT_BUFFERS源码进行编译 # 保证FlatBuffers 和项目的其余部分之间使 ...
cmake学习之判断操作系统版本
[TOC]
概述文件结构基础数据类型:
8 bit: byte ubyte bool
16 bit: short ushort
32 bit: int uint float
64 bit: long ulong double
复杂数据类型:
数组 (用中括号表示 [type]). 不支持嵌套数组,可以用 table 实现
字符串 string, 支持 UTF-8 或者 7-bit ASCII. 对于其他编码可以用数组 [byte] 或者 [ubyte] 表示。
Struct 只支持基本类型或者嵌套 Struct
Table 类似 Struct,但是可以支持任何类型
structs对象structs 和 table 非常相似,只是 structs 没有任何字段是可选的(所以也没有默认值),字段可能不会被添加或被弃用。结构可能只包含标量或其他结构。如果确定以后不会进行任何更改(如 Vec3 示例中非常明显),请将其用于简单对象。structs 使用的内存少于 table,并且访问速度更快(它们总是以串联方式存储在其父对象中,并且不使用虚拟表)。
structs 不提供前向& ...
cmake学习之判断操作系统版本
[TOC]
概述12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849(base) ntoaarch64-gdb Icp Icp.1.core GNU gdb (GDB) 8.2.1 [qnx710 r1522] (STABLE)Copyright (C) 2018 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Type "show copying" and "show warranty" for details. ...
使用ONNX Python API创建和修改ONNX模型
[TOC]
文章转自:https://leimao.github.io/blog/ONNX-Python-API/
概述Open Neural Network Exchange (ONNX)是一种表示机器学习模型的开放标准格式。ONNX是使用最广泛的机器学习模型格式,得到了在许多框架和工具中实现过它的合作伙伴社区的支持。
在这篇博文中,我想讨论如何使用ONNX Python API创建和修改ONNX模型。
ONNX数据结构ONNX模型使用Protocol Buffers表示。具体地说,整个模型信息是使用onnix .proto编码的
描述神经网络的主要ONNX协议缓冲区有ModelProto, GraphProto, NodeProto, TensorProto, ValueInfoProto。
Key ONNX Protos
Description
ModelProto
It contains model description and GraphProto.
GraphProto
It contains the node information, node init ...
PyTorch框架介绍
[TOC]
概述文章参考:https://zhuanlan.zhihu.com/p/447011426
文章参考:https://zhuanlan.zhihu.com/p/80733307
PyTorch 是最新的深度学习框架之一,由 Facebook 的团队开发,并于 2017 年在 GitHub 上开源。有关其开发的更多信息请参阅论文《PyTorch 中的自动微分》。
PyTorch 很简洁、易于使用、支持动态计算图而且内存使用很高效,因此越来越受欢迎。接下来还会更详细地介绍。
02.PyTorch环境搭建
[TOC]
概述文章参考:https://pytorch.org/
文章参考:https://pytorch123.com/FirstSection/InstallIutorial/#12
安装教程安装网址:https://pytorch.org/get-started/locally/
12# MPS acceleration is available on MacOS 12.3+pip3 install torch torchvision torchaudio
安装CPU版本略
安装GPU版本略
测试环境输出结果如下,表明环境安装成功:
12345678910111213141516from __future__ import print_functionimport torchdef print_hi(name): # 在下面的代码行中使用断点来调试脚本。 print(f'Hi, {name}') # 按 Ctrl+F8 切换断点。# 按间距中的绿色按钮以运行脚本。if __name__ == '__main__& ...