- 博客(4)
- 收藏
- 关注
原创 ResNet18推理踩坑记录
ResNet18推理踩坑记录 本文记录了将pytorch的resnet18预训练模型使用C进行前向推理的踩坑过程,主要工作是对接软件部分训练出来的浮点权重,使用C模拟网络的运行情况,并做16位均匀量化。 一.单独读取权重文件数据:局部变量过大导致程序崩溃 分析: 二进制文件读写的代码中使用了函数内的数组作为存储的缓冲区,属于局部变量,存放在栈上, 而栈的默认大小为1M,若定义过大的局部变量则会导致栈溢出, 后果包括但不限于程序崩溃,无关变量被改写等。 解决办法: 1.增大栈大小。 2.使用堆内存。 3.使用
2021-08-24 22:27:04
1233
原创 C_review_2
C语言回顾(二) 1.从一个简单程序初探C #include <stdio.h> //头文件:包含诸多变量与函数的声明,这些是编译时需要的信息 int main() //main函数:程序的开端 { int num=0; //变量定义及初始化 //变量即容器,存储信息的地方,其内容可以被改变,变量的名称需要有意义,这样容易令人理解 scanf("%d",&num); //向用户请求输入 printf(“num is %d\n”); //向终端输出 /
2020-12-11 20:35:18
198
原创 C_review_1
C语言回顾(一) 1.对编程的理解 编程不是在与计算机交谈,我们写的每一行代码都是在告诉计算机如何一步步地完成一件事情,至于如何让计算机把事情完成的快,完成的好,就是算法的优劣体现。 2.写代码前的工作 拿到一个问题,立马开始编写代码,这种做法在遇到简单问题时还能奏效,长期以来只会让思维简单化。下面结合经典书籍《C Primer Plus》中的编程七步,说说我的理解。 明确问题的最终目标 拿到问题先分析最终要达到什么效果,以这个效果发散开来 设计实现方案 编程三段式:需要什么输入,将会产生什么输出,
2020-12-11 20:34:45
173
原创 verilog复习与vhdl入门
verilog复习与vhdl入门 1.Verilog回顾 基本结构 verilog以module为单位,module的基本结构: (1)模块声明(内含端口定义),如: module ( input wire clk, input wire rst_n, output reg q ); … endmodule (2)内部信号定义,内部参数定义,如: reg [7:0] cnt; parameter IDLE = 3‘b001;
2020-12-11 20:33:35
725
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅