首页 > 编程知识 正文

examples of,cholesky分解r语言代码

时间:2023-05-05 12:56:02 阅读:111789 作者:1964

上一篇: ncnn坑记录安卓studio打包APK

下一篇: ncnn填空题记录八:将自己训练的模型打包到APK中导入安卓端运行

# include ' net.h ' # include algorithm # include opencv2/core/core.HPP # include opencv2/highgui/highgui.HPP # inccore inchg includevectorstaticintdetect _ squeeze net (const cv :3360 matbgr,STD 33603360 vectorfloatcls _ scores ) {//fdllNet //thencnnmodel https://github.com/ni hui/ncnn-assets/tree/master/models//负载模型网络结构squeeze net.load _ param //将图像转换为ncnn格式,并重置为227*227。 接下来的4个参数是原始图像的w,h。 缩放后的w,h//也可以像PIXEL_RGB2GRAY、RGB2BGR那样进行BGR的变换。 如果模型输入为BGR,则pixel如果模型输入为RGB,则pixel _ bgr2rgbncnn 33603360 matin=ncnn 33603360 mat 33603360 from _ pixels _ resize (bgbnn //将图像规范化in.substract _ mean _ normalize (mean _ vals,0 ); //extractorncnn :3360 extractor ex=squeeze net.create _ extractor (; //设置线程数,然后单击//ex.set_num_threads(4; //设置执行器是否使用轻量模式//ex.set_light_mode(true ); 输入//,将图像放入网络,进行前向推理,将' data '作为自己网络的输入名称ex.input('data ),in ); ncnn:Mat out; //取出输出,将“prob”更改为网络的输出名称ex.extract('prob )、out; //printf (输出); //out的值转换为cls_scores,并返回不同类别的得分cls_scores.resize(out.w ); for(intj=0; j out.w; j({cls_Scores[j]=out[j]; }返回0; } staticintprint _ topk (const STD 3360: vectorfloatcls _ scores,int topk )//partialsorttopkwithindexintsize=cls pair vec.resize(size ); for(intI=0; i size; I ) vec [ I ]=STD :3360 make _ pair (cls _ scores [ I ],I ); //一些排序算法是第一个float STD 33603360 partial _ sort (vec.begin )、vec,只要topk的迭代器//greator返回当前向量中的开始元素按降序排列i topk; I ) { float score=vec[i].first; int index=vec[i].second; frintf(stderr,' %d=%fn ',index,score ); }返回0; }//argv有两个参数,argv[0]指向程序中可执行文件的文件名,arg[1]指向imagepathintmain(intargc,char** argv ) AIF=2) fprintf(stderr,' Usage: %s [imagepath]n ',argv[0] ); 返回- 1; } const char* imagepath=argv[1]; cv : matm=cv :3360 im read (image path,1 ); //cv读取的图像为空if(m.empty () fprintf ) stderr、' cv3360:imread%sfailed(n )、imagepath ); 返回- 1; //定义STD :3360 vectorfloatcls _ scores以存储最终每个类别的分数; //调用推理函数detect_squeezenet(m,cls_scores ); //打印top 3打印_ topk (cls _ scores,3 ); 返回0; } pytorch图像归一化处理:

transform=transforms.com pose ([ transforms.to tensor ] ),transforms.normalize (mean=[ 0.5,0.5,0.5 ],STD=[

NNN图像归一化函数

const float mean_vals[3]={127.5f、127.5f、127.5f}; constfloatnorm _ vals [3]={ 1.0/127.5,1.0/127.5,1.0/127.5 }; in.substract _ mean _ normalize (mean _ vals,norm_vals ); ncnn不进行积极的归一化,substract_mean_normalize的操作为(x-mean_vals ) * std_vals

在上面的代码块中,naom _ vals=0,https://github.com/Tencent/ncnn/blob/13 d 12da 245 e 515031 d 35455 a 68701 b 254870 a 760/src/blob

见https://blog.csdn.net/m0 _ 37844017/article/details/107941588

pytorch:(x/255-mean )/STDncnn: ) x-mean_vals ) * std_vals 两式等价,式转换为:

将pytorch:(x-255*mean )/(255 * std )从、中得到的pytorch模型转换为ncnn模型时,在图像归一化时使用substract_mean_normalize函数

mean _ vals=255 * means TD _ vals=1/(255 * STD )验证:

pytorch的transforms.Normalize取值

如果mean=[ 0.5,0.5,0.5 ],STD=[ 0.5,0.5,0.5 ],则ncnn的substract_mean_normalize取值。

假设mean _ vals={ 127.5,127.5,127.5 },norm _ vals={1/255/0.5,1/255/0.5 }图像的像素点的值为100

pytorch : (100/255-0.5 (- 0.215686 ncnn : ) 100-127.5 ) ) * (1/255/0.5 )-0.215686提供了py torch的常见演示

if ' coco ' in args.dataset : mean _ vals=[ 0.471,0.448,0.408 ] STD _ vals=[ 0.234,0.239,0.242 ] elif ' imageger

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。