4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
查看源码: vlfeat-0.9.7.tar.gz_ikmeans_lloyd.tc - VerySource
来自 : www.verysource.com/code/344359 发布时间:2021-03-25
**@fileikmeans_lloyd.tc **@authorBrianFulkerson **@authorAndreaVedaldi **@briefIntegerK-Means-LLoydAlgorithm-Definition **/ /*AUTORIGHTS Copyright(C)2007-09AndreaVedaldiandBrianFulkerson ThisfileispartofVLFeat,availableinthetermsoftheGNU GeneralPublicLicenseversion2. /**@internal **@briefHelperfunctiontoinitializeafilterforLloydalgorithm ** **@paramffilter. **/ staticvoid vl_ikm_init_lloyd(VlIKMFilt*f) {} /**@internal **@briefLLoydalgorithm **@paramfIKMquantizer. **@paramdataTrainingdata. **@paramNNumberoftraningdata. **/ staticint vl_ikm_train_lloyd(VlIKMFilt*f,vl_uint8const*data,intN) intiter,i,j,k, K=f- K, M=f- M, err=0; vl_ikm_acc*centers=f- centers; vl_uint*asgn=vl_malloc(sizeof(vl_uint)*N); vl_uint*counts=vl_malloc(sizeof(vl_uint)*N); for(iter=0;1;++iter){ vl_booldone=1; /*--------------------------------------------------------------- *Calc.assignments *------------------------------------------------------------*/ for(j=0;j N;++j){ vl_ikm_accbest_dist=0; vl_uintbest=(vl_uint)-1; for(k=0;k K;++k){ vl_ikm_accdist=0; /*computedistancewiththiscenter*/ for(i=0;i M;++i){ vl_ikm_accdelta= data[j*M+i]-centers[k*M+i]; dist+=delta*delta; } /*comparewithcurrentbest*/ if(best==(vl_uint)-1||dist best_dist){ best=k; best_dist=dist; } } if(asgn[j]!=best){ asgn[j]=best; done=0; } } /*stoppingcondition*/ if(done||iter==f- max_niters)break; /*----------------------------------------------------------------- *Calc.centers *--------------------------------------------------------------*/ /*re-computecenters*/ memset(centers,0,sizeof(vl_int32)*M*K); memset(counts,0,sizeof(vl_int32)*K); for(j=0;j N;++j){ intthis_center=asgn[j]; ++counts[this_center]; for(i=0;i M;++i) centers[this_center*M+i]+=data[j*M+i]; } for(k=0;k K;++k){ vl_int32n=counts[k]; if(n 0xffffff){ err=1; } if(n 0){ for(i=0;i M;++i) centers[k*M+i]/=n; }else{ /* Ifnodataareassignedtothecenter,itisnotchanged withrespecttothepreviousiteration,sowedonotdoanything. */ } } } vl_free(counts); vl_free(asgn); returnerr;

本文链接: http://wslloyd.immuno-online.com/view-756182.html

发布于 : 2021-03-25 阅读(0)