由于最近项目需要用到NCNN,发现用起来还是非常舒适的,纯c++代码,忍不住看了看源码,顺便做做笔记,实际就是在源码上做了些注释。由于代码较多,这里只记录比较重要的部分。 构造函数 /* 创建一个Mat elemsize: float32/ int32: 4; float16: 2; int8/uint8: 1; empty: 0 elempack: 表示一个数据包
往期文章: 闪电侠的右手:【NCNN源码解读】Mat类(一) 闪电侠的右手:【NCNN源码解读】Mat(二)Normalize 闪电侠的右手:【NCNN源码解读】Mat(三)Mat Pixel 闪电侠的右手:VS2017 NCNN QT5 vulkan 搭建应用并打包 闪电侠的右手:【NCNN源码解读】Layer类(一) ...
【ncnn】源码阅读理解(四)——squeeze配置文件解读 split层没有参数 ncnn中 squeeze net 配置参数详解一 split层是没有参数的 split层出来两个分支,两个分支分别经过一个conv33+relu和 一个conv11+relu,每个分支的输出通道数为64 然后经过一个concat层,输出通道数为64 + 64。同时也可以通过concat后的convolution...
下面对NCNN的Normalize源码介绍 void Mat::substract_mean_normalize(const float* mean_vals, const float* norm_vals) { Layer* op; if (mean_vals && !norm_vals) { // substract mean only 只对Mat做减均值的操作 // 创建一个偏置层 op = create_layer(LayerType::Bias); // 创建参数字典,...
在之前的文章里,简单的介绍了NCNN的Mat类的源码。最近因为身体原因拖更一段时间,生活实属不易,但学习还是要继续,毕竟要努力做卷王 Layer类通过 layer layer_type layer_shader_type 三个文件做了大体的说明,l…
除了from_pixels高级API以外,还有from_pixels_resize、from_pixels_roi、from_pixels_roi_resize。源码对于每一个高级API都提供了两个重载版本,区别在于是否有参数stride,一般情况我们使用不带stride版本的即可,因为会根据通道数自动设置好stride的大小。