亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pisvm-predict.c

?? 支持向量分類算法在linux操作系統下的是實現
?? C
字號:
#include <stdio.h>#include <ctype.h>#include <stdlib.h>#include <string.h>#include <mpi.h>#include "svm.h"char* line;int max_line_len = 1024;Xfloat *x;int *nz_x;int max_nr_attr = 64;struct svm_model* model;int predict_probability=0;// Determines the number of input patterns.int num_patterns(FILE *input){  int l=0;  char c;  do {    c = getc(input);    if(c=='\n')      ++l;  } while(c!=EOF);  rewind(input);  return l;}void setup_range(int *range_low, int *range_up, int total_sz, int size){  int local_sz = total_sz/size;  int idx_up = local_sz;  int idx_low = 0;  if(total_sz != 0)    {      for(int i=0; i<size-1; ++i)	{	  range_low[i] = idx_low;	  range_up[i] = idx_up;	  idx_low = idx_up;	  idx_up = idx_low + local_sz + 1;	}      range_low[size-1] = idx_low; range_up[size-1]=total_sz;    }  else    {      for(int i=0; i<size; ++i)	{	  range_low[i] = 0;	  range_up[i] = 0;	}    }}void predict_parallel(FILE *input, FILE *output, int l, MPI_Comm comm){  int rank, size;  MPI_Comm_size(comm, &size);  MPI_Comm_rank(comm, &rank);  // Determine local range  int l_low_loc, l_up_loc;  int local_l = 0;  int correct = 0; int other_correct;  int total = 0;  int ierr = 0;  double error = 0; double other_error;  double sumv = 0, sumy = 0, sumvv = 0, sumyy = 0, sumvy = 0;  double other_sumv = 0, other_sumy = 0, other_sumvv = 0, other_sumyy = 0;  double other_sumvy = 0;  int svm_type=svm_get_svm_type(model);  int nr_class=svm_get_nr_class(model);  double *prob_estimates=NULL;  double *v;  double target;  int j,k,jj;  int *l_up = (int *) malloc(size*sizeof(int));  int *l_low = (int *) malloc(size*sizeof(int));  setup_range(l_low, l_up, l, size);  l_low_loc = l_low[rank];  l_up_loc = l_up[rank];  local_l = l_up_loc - l_low_loc;  v = (double *) malloc((local_l+(size-1))*sizeof(double));  if(predict_probability)    {      if(!(svm_type==NU_SVR || svm_type==EPSILON_SVR))	{	  prob_estimates = (double *) malloc(((local_l+(size-1))*nr_class)*					     sizeof(double));	}    }  k=0;  while(1)    {      int i = 0;      int c;      if (fscanf(input,"%lf",&target)==EOF)	break;      while(1)	{	  if(i>=max_nr_attr-1)	// need one more for index = -1	    {	      max_nr_attr *= 2;	      x = (Xfloat *) realloc(x,max_nr_attr*sizeof(double));	      nz_x = (int *) realloc(nz_x,max_nr_attr*sizeof(int));	    }	  do {	    c = getc(input);	    if(c=='\n' || c==EOF) goto out2;	  } while(isspace(c));	  ungetc(c,input);	  //	  fscanf(input,"%d:%lf",&nz_x[i],&x[i]);	  fscanf(input,"%d:%f",&nz_x[i],&x[i]);	  --nz_x[i]; // we need zero based indices	  ++i;	}	    out2:      if(l_low_loc <= total && total < l_up_loc)	{	  if (predict_probability && (svm_type==C_SVC || svm_type==NU_SVC))	    {	      v[k] = svm_predict_probability(model, x, nz_x, i,					     &prob_estimates[k*nr_class]);	    }	  else	    {	      v[k] = svm_predict(model, x, nz_x, i);	    }	  if(v[k] == target)	    ++correct;	  error += (v[k]-target)*(v[k]-target);	  sumv += v[k];	  sumy += target;	  sumvv += v[k]*v[k];	  sumyy += target*target;	  sumvy += v[k]*target;	  ++k;	}      ++total;    }  // Send all predictions to first processor, first processor  // writes output file  if(rank == 0)    {      if(predict_probability)	{	  if (svm_type==NU_SVR || svm_type==EPSILON_SVR)	    {	      printf("Prob. model for test data: target value = predicted");	      printf("value + z,\nz: Laplace distribution e^(-|z|/sigma)/");	      printf("2sigma),sigma=%g\n",svm_get_svr_probability(model));	    }	  else	    {	      int *labels=(int *) malloc(nr_class*sizeof(int));	      svm_get_labels(model,labels);	      fprintf(output,"labels");			      for(j=0;j<nr_class;j++)		fprintf(output," %d",labels[j]);	      fprintf(output,"\n");	      free(labels);	    }	}      for(k=0; k<local_l; ++k)	if (predict_probability && (svm_type==C_SVC || svm_type==NU_SVC))	  {	    fprintf(output,"%g ",v[k]);	    for(j=0;j<nr_class;j++)	      fprintf(output,"%g ",prob_estimates[k*nr_class+j]);	    fprintf(output,"\n");	  }	else	  {	    fprintf(output,"%g\n",v[k]);	  }      for(j=1; j<size; ++j){	MPI_Status stat;	ierr = MPI_Recv(v, l_up[j]-l_low[j], MPI_DOUBLE, 			j, 0, comm, &stat);	ierr = MPI_Recv(&other_correct, 1, MPI_INT, j, 0, comm, &stat);	correct += other_correct;	ierr = MPI_Recv(&other_sumv, 1, MPI_DOUBLE, j, 0, comm, &stat);	sumv += other_sumv;	ierr = MPI_Recv(&other_sumy, 1, MPI_DOUBLE, j, 0, comm, &stat);	sumy += other_sumy;	ierr = MPI_Recv(&other_sumvy, 1, MPI_DOUBLE, j, 0, comm, &stat);	sumvy += other_sumvy;	ierr = MPI_Recv(&other_sumvv, 1, MPI_DOUBLE, j, 0, comm, &stat);	sumvv += other_sumvv;	ierr = MPI_Recv(&other_sumyy, 1, MPI_DOUBLE, j, 0, comm, &stat);	sumyy += other_sumyy;	ierr = MPI_Recv(&other_error, 1, MPI_DOUBLE, j, 0, comm, &stat);	error += other_error;	if (predict_probability && (svm_type==C_SVC || svm_type==NU_SVC))	  {	    ierr = MPI_Recv(prob_estimates, (l_up[j]-l_low[j])*nr_class, 			    MPI_DOUBLE, j, 0, comm, &stat);	    for(k=0; k<l_up[j]-l_low[j]; ++k)	      {		fprintf(output,"%g ",v[k]);		for(jj=0;jj<nr_class;jj++)		  fprintf(output,"%g ",prob_estimates[k*nr_class+jj]);		fprintf(output,"\n");	      }	  }	else	  {	    for(k=0; k<l_up[j]-l_low[j]; ++k)	      {		fprintf(output,"%g\n",v[k]);	      }	  }      }      printf("Accuracy = %g%% (%d/%d) (classification)\n",	     (double)correct/total*100,correct,total);      printf("Mean squared error = %g (regression)\n",error/total);      printf("Squared correlation coefficient = %g (regression)\n",	     ((total*sumvy-sumv*sumy)*(total*sumvy-sumv*sumy))/	     ((total*sumvv-sumv*sumv)*(total*sumyy-sumy*sumy))	     );    } // if(rank == 0)  else    {      ierr = MPI_Send(v, local_l, MPI_DOUBLE, 0, 0, comm);      ierr = MPI_Send(&correct, 1, MPI_INT, 0, 0, comm);      ierr = MPI_Send(&sumv, 1, MPI_DOUBLE, 0, 0, comm);      ierr = MPI_Send(&sumy, 1, MPI_DOUBLE, 0, 0, comm);      ierr = MPI_Send(&sumvy, 1, MPI_DOUBLE, 0, 0, comm);      ierr = MPI_Send(&sumvv, 1, MPI_DOUBLE, 0, 0, comm);      ierr = MPI_Send(&sumyy, 1, MPI_DOUBLE, 0, 0, comm);      ierr = MPI_Send(&error, 1, MPI_DOUBLE, 0, 0, comm);      if (predict_probability && (svm_type==C_SVC || svm_type==NU_SVC))	{	  ierr = MPI_Send(prob_estimates, local_l*nr_class, 			  MPI_DOUBLE, 0, 0, comm);	}    }  if(predict_probability)    {      free(prob_estimates);    }  free(v);  free(l_up);  free(l_low);}void exit_with_help(){  printf(	 "Usage: svm-predict [options] test_file model_file output_file\n"	 "options:\n"	 "-b probability_estimates: whether to predict probability estimates, 0 or 1 (default 0); one-class SVM not supported yet\n"	 );  exit(1);}int main(int argc, char **argv){  FILE *input, *output;  int i;  MPI_Init(&argc, &argv);  // parse options  for(i=1;i<argc;i++)    {      if(argv[i][0] != '-') break;      ++i;      switch(argv[i-1][1])	{	case 'b':	  predict_probability = atoi(argv[i]);	  break;	default:	  fprintf(stderr,"unknown option\n");	  exit_with_help();	}    }  if(i>=argc)    exit_with_help();	  input = fopen(argv[i],"r");  if(input == NULL)    {      fprintf(stderr,"can't open input file %s\n",argv[i]);      exit(1);    }  output = fopen(argv[i+2],"w");  if(output == NULL)    {      fprintf(stderr,"can't open output file %s\n",argv[i+2]);      exit(1);    }  if((model=svm_load_model(argv[i+1]))==0)    {      fprintf(stderr,"can't open model file %s\n",argv[i+1]);      exit(1);    }	  line = (char *) malloc(max_line_len*sizeof(char));  x = (Xfloat *) malloc(max_nr_attr*sizeof(Xfloat));  nz_x = (int *) malloc(max_nr_attr*sizeof(int));  if(predict_probability)    if(svm_check_probability_model(model)==0)      {	fprintf(stderr,"model does not support probabiliy estimates\n");	predict_probability=0;      }  int l = num_patterns(input);  //  predict(input,output,l);  predict_parallel(input, output, l, MPI_COMM_WORLD);  svm_destroy_model(model);  free(line);  free(x);  free(nz_x);  fclose(input);  fclose(output);  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99在线精品视频| 在线不卡的av| 欧美老人xxxx18| 久久影院午夜论| 最新不卡av在线| 喷水一区二区三区| 91视频免费观看| www亚洲一区| 天堂成人免费av电影一区| 国产91精品入口| 欧美一区二区三区精品| 麻豆精品一二三| 欧美性生活影院| 国产精品午夜春色av| 美女视频一区在线观看| 色综合天天天天做夜夜夜夜做| 日韩一区二区影院| 一二三四区精品视频| 风间由美一区二区av101| 日韩欧美国产精品| 午夜激情久久久| 色诱视频网站一区| 中文成人综合网| 免费人成精品欧美精品 | 在线观看视频欧美| 久久久久久久久久久久久女国产乱 | 亚洲麻豆国产自偷在线| 国产成人亚洲精品青草天美| 日韩精品在线一区二区| 日本成人在线不卡视频| 欧美性受xxxx黑人xyx| 亚洲色图制服诱惑| 99久久久精品| 亚洲欧美日韩中文播放 | 日本精品视频一区二区| 成人免费一区二区三区视频| 国产成人亚洲精品狼色在线| 国产日韩一级二级三级| 国产一区二区网址| 国产三级精品三级在线专区| 国产河南妇女毛片精品久久久| 久久综合给合久久狠狠狠97色69| 麻豆视频观看网址久久| 久久女同性恋中文字幕| 国产寡妇亲子伦一区二区| 国产女人aaa级久久久级| 成人深夜福利app| 亚洲区小说区图片区qvod| 在线观看视频一区二区 | 久久69国产一区二区蜜臀| 日韩三区在线观看| 国产一区二区三区黄视频 | 欧美三级在线看| 三级一区在线视频先锋| 日韩你懂的电影在线观看| 精久久久久久久久久久| 国产人伦精品一区二区| 91蜜桃视频在线| 亚洲成av人影院| 精品国产乱码久久久久久1区2区 | 天堂蜜桃一区二区三区| 欧美精品一区二区在线观看| 成人免费三级在线| 一区二区三区在线视频观看58| 在线不卡的av| 成人免费高清在线| 一区二区三区成人在线视频| 欧美一区二区三区四区久久| 国产激情一区二区三区| 一区二区三区四区av| 欧美一区二区成人6969| 国产盗摄一区二区三区| 亚洲国产成人av网| 久久久久久久久久看片| 在线亚洲欧美专区二区| 精品一区二区久久| 一区二区三区四区高清精品免费观看 | 亚洲欧洲日韩在线| 69堂成人精品免费视频| 国产精品一品二品| 日韩一区精品视频| 亚洲免费观看高清在线观看| 精品久久久久99| 欧洲精品中文字幕| 国产69精品一区二区亚洲孕妇| 亚洲一区二区三区自拍| 国产欧美一区二区在线观看| 欧美精品成人一区二区三区四区| 成人午夜视频在线观看| 蜜桃视频一区二区三区 | 亚洲777理论| 亚洲色图视频网| 国产亚洲一本大道中文在线| 91.麻豆视频| 色狠狠桃花综合| 国产成人av一区| 久久草av在线| 亚洲国产日韩av| 国产精品第四页| 久久品道一品道久久精品| 99精品热视频| 成人一区二区三区| 日本午夜一本久久久综合| 亚洲欧洲三级电影| 久久免费看少妇高潮| 精品污污网站免费看| 亚洲黄色在线视频| 自拍偷拍国产精品| 精品国产麻豆免费人成网站| 欧美性xxxxx极品少妇| 丁香另类激情小说| 激情欧美日韩一区二区| 麻豆成人久久精品二区三区红 | 成人av小说网| 日韩中文字幕av电影| 国产精品入口麻豆九色| 精品少妇一区二区三区在线播放| 在线观看国产91| 99re66热这里只有精品3直播| 国产资源精品在线观看| 亚洲欧洲99久久| 亚洲日本va午夜在线电影| 国产日产精品一区| 久久久久久久久久久电影| 欧美电影免费观看高清完整版在| 欧美午夜免费电影| 高清国产一区二区三区| 成人免费av资源| 成人小视频在线观看| 成人免费毛片片v| 成人午夜精品一区二区三区| 国产成人在线观看免费网站| 日本不卡123| 美女视频网站黄色亚洲| 美女免费视频一区二区| 久久精品国产久精国产爱| 麻豆91免费看| 秋霞成人午夜伦在线观看| 国产一区二区在线看| 国产一区二区伦理| 国产精品一区二区免费不卡 | 国产亚洲精久久久久久| 久久九九影视网| 久久人人爽人人爽| 最新不卡av在线| 国产不卡在线一区| 97精品国产露脸对白| 91黄色小视频| 欧美久久久久久久久久| 久久久99久久精品欧美| 中文子幕无线码一区tr| 亚洲色图20p| 婷婷一区二区三区| 精品一区二区三区免费观看 | 美女在线观看视频一区二区| 韩国成人福利片在线播放| 国产大陆亚洲精品国产| 97aⅴ精品视频一二三区| 欧美性xxxxx极品少妇| 精品蜜桃在线看| 国产精品欧美极品| 亚洲国产精品人人做人人爽| 极品瑜伽女神91| 成人精品国产免费网站| 欧美日韩国产中文| 精品成人佐山爱一区二区| 国产精品午夜电影| 五月激情综合网| 国产成人在线观看| 色婷婷久久一区二区三区麻豆| 久久综合999| 亚洲色图一区二区三区| 美女视频一区在线观看| 99精品一区二区| 欧美一区中文字幕| 亚洲综合在线视频| 精品一区二区免费在线观看| 色视频成人在线观看免| 精品国产免费久久 | 亚洲午夜久久久久久久久久久| 日韩电影在线看| 99久久久久久| 精品成人免费观看| 夜夜嗨av一区二区三区网页| 国产成人免费视频一区| 欧美精品丝袜中出| 中文字幕一区二| 久久国产精品99久久人人澡| 99精品热视频| 日韩美一区二区三区| 亚洲一级片在线观看| 成人精品高清在线| 欧美va亚洲va国产综合| 亚洲一区二区精品视频| 国产精品一区免费在线观看| 制服丝袜国产精品| 亚洲午夜久久久久久久久久久| 91在线精品一区二区| 国产日产欧产精品推荐色| 老司机精品视频一区二区三区|