编译选项引发的代码异常

摘要: 1.问题 最近在调用darknet动态库的时候,遇到了一个奇怪的问题,库里面的内容无法传出,但是在库里打印出的结果是正常的,经过仔细排查,发现是由于我们在调用这个libdarknet.a文件编译时候没有添加 DGPU选项,导致地址出现偏移所致。 2.举例 为了将表述得更清楚,写一个简单的代码来还原问 阅读全文
posted @ 2019-11-02 11:32 算法特调 阅读(238) 评论(0) 推荐(0)

ncnn源码分析-004-代码流程总结

摘要: 0.调用实例 先看一个调用实例,顺着调用流程探寻ncnn内部具体实现细节。 1.blob结构 在blob的构造函数中初始化producer= 1 2.layer + layer进行前向传播时,根据bottoms索引值找到bottom数据,作为forward的输入,计算结果存入tops对应的blob里 阅读全文
posted @ 2019-10-16 17:06 算法特调 阅读(1549) 评论(0) 推荐(0)

ncnn源码分析-003-net

摘要: 1.结构信息 net是ncnn的核心部分,起着组织整个框架结构的作用,捋顺net的结构,基本上对ncnn的代码框架也就有一个大概的了解了。首先看一下net的类结构信息。 2.forward_layer + forwar_layer有两个主要输入参数,分别是layer_index和blob_mats 阅读全文
posted @ 2019-10-14 20:39 算法特调 阅读(1053) 评论(0) 推荐(0)

ncnn源码分析-002-layer

摘要: 1.类结构 load_param和load_model两个函数除在layer中出现意外,还是net类结构里的成员函数,只是输入的参数类型不同,net类中通过FILE 加载,将参数转换为ParamDict结构,然后调用当前layer的成员函数 来解析param文件中的参数到具体的层结构成员变量中,实现 阅读全文
posted @ 2019-10-14 20:36 算法特调 阅读(529) 评论(0) 推荐(0)

ncnn源码分析-001-blob

摘要: ncnn也使用了类似caffe中的blob作为最基本的数据结构来存储计算过程中的各种数据。 1.blob结构体   由blob类结构可以看出blob类本身不存放具体的计算数据,只负责关联blob和相应层(该blob是哪个层的输出,哪个层的输入) 真正的blob数据存放在blob_ 阅读全文
posted @ 2019-10-14 20:35 算法特调 阅读(649) 评论(0) 推荐(0)