Effective STL - 04 - Algorithms Algorithms条款30:确保目标区间足够大123456789101112131415vector<int> v = {0, 1, 2, 3, 4, 5, 6, 7};cout << v << endl;// 对于使用区间的函数, 注意预先分配空间vector<int> v2;v2.reserve(v.size());tran 2024-03-17 Effective STL #C++ #STL #Algorithms
Effective STL - 03 - Iterator Iterator条款26:尽量用iterator代替const_iterator,reverse_iterator和const_reverse_iterator graph A[iterator] --> B[const_iterator] A[iterator] --> C[reverse_iterator] C[reverse_iterator] --> D[const_ 2024-03-17 Effective STL #C++ #STL #Iterator
Effective STL - 02 - Vector and String Vector and String条款13:尽量使用vector和string来代替动态分配的数组无论何时,你发现你自己准备动态分配一个数组(也就是,企图写“new T[…]”),你应该首先考虑使用一个vector或一个string。 坦白地说,我想到了一个(也是唯一一个)用vector或string代替动态分配数组会出现的问题,而且它只关系到string。很多string实现在后台使用了引用计数 2024-03-17 Effective STL #C++ #STL #Vector #String
Effective STL - 01 - Containers Containers条款 1 仔细选择你的容器 vector是一种可以默认使用的序列类型,当很频繁地对序列中部进行插入和删除时应该用list,当大部分插入和删除发生在序列的头或尾时可以选择deque这种数据结构 连续内存容器(也叫做基于数组的容器)在一个或多个(动态分配)的内存块中保存它们的元素。如果一个新元素被查入或者已存元素被删除,其他在同一个内存块的元素就必须向上或者向下移动来为新元素提 2024-03-17 Effective STL #C++ #STL #Effective STL #Containers
使用zerotier实现免费上网 原理本文提到的操作需要使用一台机器进行中转,这个机器可以是服务器,也可以是自己工位上的 Windows 机器。同时,这个机器上还必须打开了 Clash、V2Ray、SSR 之类的代理,并拥有一个端口号。 基本原理:假设我们在宿舍有一台笔记本,称为 Alice,简称为 A;在工位上有一台电脑,称为 Bob,简称为 B。A 只能访问校园网的网站,例如 csu.edu.cn;B 能够访问互联网,例如 b 2024-03-14
Caffe2 中 float32 与 float16 的转换 generated by Copilot and translated by DeepL 这段 C++ 代码是一个名为 cpu_float2half_rn 的函数,用于将单精度浮点数(32 位)转换为半精度浮点数(16 位)。该函数将浮点数作为参数,并返回一个 float16 对象。转换过程涉及多个步骤,包括处理 NaN 和无穷大等特殊情况,从输入中提取符号、指数和尾数,以及四舍五入到最接近的偶 2024-03-12
ORT 模型部署 Deploy ORT modelonnxruntime-inference-examples/mobilenet.ipynb at main · microsoft/onnxruntime-inference-examples 详细记录YOLACT实例分割ncnn实现 真正部署模型,不应该把后处理包括在模型推理中,这会影响模型在GPU上的部署,性能也不一定会好。这里的后处理,不 2024-03-12
MNN GPU float16 使用原理 我观察到 MNN 在使用 GPU OpenCL 时,会默认使用 float16 的格式,导致模型评测时时间不同,如图。因此查看了 MNN 的源码,发现了一些有趣的东西。 MNN 使用 MNN::BackendConfig::Precision_Low 时,会根据 GPU 的实际情况判断是否使用 float16 的数据格式。代码随附。 当导出的模型可以使用 float32 或者 float16 保 2024-03-11