python数学建模算法,python数据模型和算法

  python数学建模算法,python数据模型和算法

  想实现一个图片数据的输入,然后输出一个特征结结果,一下写法对吗?

  (同Internationalorganizations)国际组织处理模型(简历:Mat img,向量V1)

  {

  const int img _ width=96/*图像尺寸*/

  const int img _ height=112

  const int img _ channels=3;/*图像量化通道*/

  const int input _ index=0;//节点名预处理器/sub

  if (img.cols!=img_width img.rows!=img_height) /*如果图像的大小和定义的不一样,则进行重新设置大小*/

  {

  cv:resize(img,img,cv:Size(img_width,img_height),(0,0),(0,0),cv:INTER _ LINEAR);

  }

  FILE* fp=fopen(model_path, Rb );/*加载模型*/

  if (fp==NULL)

  {

  printf(fopen %s失败!\n ,型号_路径);

  return-1;

  }

  fseek(fp,0,SEEK _ END);/*标记复调钢琴从文件头开始到文件末尾*/

  int model _ len=ftell(FP);/*获取复调钢琴从头到尾的文件长度*/

  void * model=malloc(model _ len);/*动态申请内存*/

  fseek(fp,0,SEEK _ SET);/*把文件指针指向文件的开始*/

  if (model_len!=fread(model,1,model_len,fp)) /*读取的长度不等于模型长度,则释放*/

  {

  printf(fread %s失败!\n ,型号_路径);

  免费(模特);

  return-1;

  }

  /*开始推理*/

  rknn _输入输入[1];/*模型的一个输入,用来作为参数传入给rknn_inputs_set函数*/

  rknn _输出输出[1];/*模型的一个输出,用来作为参数传入给rknn_outputs_get函数*/

  rknn _ tensor _ attr outputs _ attr[1];/*模型的辩论歌属性*/

  int ret=0;/*返回值*/

  rknn _ context CTX=0;/* rknn _上下文对象(无符号龙龙类型)*/

  printf(rknn_init .\ n’);

  ret=rknn_init(ctx,model,model_len,RKNN _ FLAG _ PRIOR _ MEDIUM);/*1、初始化rknn _上下文对象,优先级中*/

  if (ret 0)

  {

  printf(rknn_init失败!ret=%d\n ,ret);

  转到错误;

  }

  printf(rknn查询输入输出编号. \ n );

  rknn _ input _ output _ num io _ num/*2、获取投入和输出的个数*/

  ret=rknn_query(ctx,RKNN_QUERY_IN_OUT_NUM,io_num,sizeof(io _ NUM));

  printf(输入号:%d输出号:%d\n ,io_num.n _输入,io _ num。n _ output);

  if (ret 0)

  {

  printf(rknn查询输入输出失败!ret=%d\n ,ret);

  转到错误;

  }

  printf(rknn查询输入属性. \ n );

  rknn _ tensor _ attr input _ attrs[1];/*3、获取输入属性,输入输出数量n输入为输入个数*/

  memset(input_attrs,0,sizeof(input_attrs)).

  int I;

  for(I=0;I 1;我)

  {

  输入属性.index=I;

  ret=rknn_query(ctx,RKNN_QUERY_INPUT_ATTR,(input_attrs[0]),sizeof(RKNN _ tensor _ attr);

  printf(输入数据类型:%d \n ,input_attrs[0].类型);

  printf(输入数据fmt :%d \n ,input_attrs[0].fmt);

  if (ret 0)

  {

  printf(rknn_query失败!ret=%d\n ,ret);

  转到错误;

  }

  }

  printf(rknn查询输出属性. \ n );

  rknn _ tensor _ attr output _ attrs[1];/*4、获取输出属性,io _编号。n _输出为输出个数*/

  memset(output_attrs,0,sizeof(output _ attrs));

  for(I=0;I 1;我)

  {

  输出_属性[我].index=I;

  ret=rknn_query(ctx,RKNN_QUERY_OUTPUT_ATTR,(output_attrs[0]),sizeof(RKNN _ tensor _ attr);

  printf(输出数据类型:%d \n ,output_attrs[0].类型);

  if (ret 0)

  {

  printf(rknn_query失败!ret=%d\n ,ret);

  转到错误;

  }

  }

  printf(rknn输入集. \ n );

  rknn _ input inputs _ set[1];/*5、对输入进行设置*/

  输入_设置[0]。索引=输入_索引;/*rknn模型的输入节点的索引*/

  输入_设置[0]。img.data/*cpu可以访问的缓冲器指针,一般是指向由照相机产生的图像数据*/

  输入_设置[0]。size=img _ width * img _ height * img _ channels;/*为缓冲器的大小*/

  输入_设置[0]。pass _ through=false/*输入数据直通模式选择,假的是输入属性于rknn _查询查询得到的投入属性不一致

  图雷是输入属性于rknn _查询查询得到的投入属性一致*/

  输入_设置[0]。type=RKNN _ TENSOR _ UINT8/*为缓冲器的数据类型*/

  输入_设置[0]。fmt=RKNN _张量_ NHWC;/*数据格式*/

  ret=rknn_inputs_set(ctx,1,inputs _ set);

  if (ret 0)

  {

  printf(rknn_input_set失败!ret=%d\n ,ret);

  转到错误;

  }

  printf(rknn运行. \ n );

  ret=rknn_run(ctx,NULL);/*6、进行推理操作*/

  if (ret 0)

  {

  printf(rknn_run失败!ret=%d\n ,ret);

  转到错误;

  }

  printf(rknn获取输出. \ n );

  rknn _ output outputs _ get[1];/*7、获取输出结果*/

  memset(outputs_get,0,sizeof(outputs _ get));

  for(I=0;I 1;我)

  {

  outputs_get[i].want _ float=true/*输出数据格式,真的为浮点32,假为原始格式*/

  outputs_get[i].is _ prealloc=false/*内存分配,真的为程序员分配,假的为近邻自动分配*/

  }

  ret=rknn_outputs_get(ctx,io_num.n_output,outputs_get,NULL);

  float * ftype

  char * sprintfBuf

  ftype=static _ cast(outputs _ get-buf);

  char stringBuf[128];

  文件* fpout

  fpout=fopen(outputResult.txt , w );

  for(I=0;I(outputs _ get-size/4);我)

  {

  v1。push _ back(ftype[I]);

  sprintf(sprintfBuf, %f\n ,ftype[I]);

  fwrite(sprintfBuf,strlen(sprintfBuf),1,FP out);

  }

  rknn_outputs_release(ctx,1,outputs _ get);/*8、释放由rknn_outputs_get获取的产出*/

  免费(模特);

  错误:

  如果(ctx)

  {

  rknn _ destroy(CTX);

  }

  如果(型号)

  {

  免费(模特);

  }

  中频(fp)

  {

  fclose(FP);

  }

  返回0;

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: