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

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

?? pfsals_svmtrain.c

?? 嶄新矢量機SVM源碼
?? C
字號:
#include "mex.h"
#include "math.h"
#include <time.h>


// compute the absolute maximum and the corresponding index
double absmax(double *gradvec, int n, int *gradindex)
{
	double maxvalue;
	int i;
	maxvalue  = fabs(gradvec[0]);
	*gradindex = 0;
	for (i=1;i<n;i++)
	{
		if (fabs(gradvec[i]) > maxvalue)
		{
			maxvalue  = fabs(gradvec[i]);
			*gradindex = i;
		}
	}
	return maxvalue;
};

// dot multiplication
double dot(int p, int q, int dim,double *psamples)
{
	double sum = 0;
	int i, count1, count2;
	count1 = p*dim;
	count2 = q*dim;

	for (i=0; i< dim; i++)
	{
		sum += *(psamples + count1 + i) * (*(psamples + count2 + i));
	}
	return sum;
};

// Gaussian Kernel evaluation
double kernel(double kernelparam, int p,int q, int dim, double *psamples, double *square)
{
	double sum;
	sum = dot(p, q, dim, psamples);
	return exp(-kernelparam*(square[p] + square[q] - 2*sum));
};

// rank 1 update
void Rank1Update(double *R,double *beta, double gamma, int cnum, int n)
{
    int i,j,count=0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            *(R+i*cnum+j) = *(R+i*cnum+j) + *(beta+i) * *(beta+j)*gamma; 
         }
      }
	for(i=0;i<n;i++)
	{
		*(R+i*cnum + n) = -gamma* *(beta+i);
	}
	for(i=0;i<n;i++)
	{
		*(R + n*cnum+i) = -gamma* *(beta+i);
	}
	*(R + n*cnum + n) = gamma;
};

// main function
void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
	double *psamples,*plabels, *square, *talpha, *alpha, *sv, *gradvec, *invK, *beta,*nsv,*bias, *keval;
	double param, lamda, tol, gamma, gradmax, diag, delta;
	int *svi, *pindex, *Q, *gradindex, n, d, cnum, pssize,i, j, p, q,tgradindex,lenQ;
	clock_t start;
    
	psamples	= mxGetPr(prhs[0]);
	plabels		= mxGetPr(prhs[1]);
	param		= mxGetScalar(prhs[3]);
	lamda		= mxGetScalar(prhs[4]);
	tol			= mxGetScalar(prhs[5]);
	d			= mxGetM(prhs[0]);
	n			= mxGetN(prhs[0]);
	lamda		= (1.0/2.0)/lamda;
    
	pssize		= 149;
	cnum		= 10000;
    square		= mxCalloc(n, sizeof(double));
	gradvec		= mxCalloc(pssize,sizeof(double));
	Q			= mxCalloc(n,sizeof(int));
	pindex		= mxCalloc(n,sizeof(int));
	keval		= mxCalloc(n,sizeof(double));
	talpha		= mxCalloc(n+1,sizeof(double));
	invK		= mxCalloc(cnum*cnum,sizeof(double));
	beta		= mxCalloc(n+1,sizeof(double));
    gradindex   = mxCalloc(1, sizeof(int));
	svi			= mxCalloc(n,sizeof(int));

	for (i=0; i<n; i++)
		square[i]	= dot(i, i, d,psamples);
// select the next index
	lenQ = n;
	for (i=0;i<lenQ;i++)
		Q[i] = i;
    for (i=0;i<pssize;i++)
	{
		pindex[i] = ceil(rand()*1.0/(1+RAND_MAX)*lenQ);
		gradvec[i]	= -plabels[Q[pindex[i]]];
	}
	gradmax = absmax(gradvec,pssize,gradindex);
	tgradindex = pindex[*gradindex];
	*gradindex = Q[tgradindex];

	for (i=0;i<n;i++)
	{
		if (gradmax < tol || i >= cnum)
		{
			break;
		}
		if (i == 0)
		{
			diag = kernel(param,*gradindex,*gradindex,d,psamples,square) + lamda;
			invK[0] = -1*diag;
			invK[1] = 1;
			invK[cnum] = 1;
			invK[cnum+1] = 0;
			talpha[0] = invK[1]*plabels[*gradindex];
			talpha[1] = invK[cnum+1]*plabels[*gradindex];
			svi[i]    = *gradindex;
		}
		else
		{
			diag = kernel(param,*gradindex,*gradindex,d,psamples,square) + lamda;
			for(j=0;j<i;j++)
				keval[j] = kernel(param,svi[j],*gradindex,d,psamples,square);
			start = clock();
            for (p=0;p<=i;p++)
			{
				beta[p] = invK[p*cnum];
				for(q=1;q<=i;q++)
				{
					beta[p] = beta[p]+invK[p*cnum+q]*keval[q-1];
				}
			}
			gamma = beta[0];
			for (q=1;q<=i;q++)
			{
				gamma = gamma + beta[q]*keval[q-1];
			}
			gamma = 1/(diag - gamma);
            start = clock();
			Rank1Update(invK,beta,gamma,cnum,i+1);
			delta = 0;
			for (q=1;q<=i;q++)
			{
				delta = delta + beta[q]*plabels[svi[q-1]];
			}
			delta = gamma*(delta - plabels[*gradindex]);
			svi[i] = *gradindex;
			for (q=0;q<=i;q++)
			{
				talpha[q] = talpha[q] + delta*beta[q];
			}
			talpha[i+1] = talpha[i+1] - delta;
		}

// select the next index
		lenQ = lenQ-1;
		for (p=tgradindex; p<lenQ; p++)
			Q[p] = Q[p+1];
		for (p=0;p<pssize;p++)
		{
			pindex[p] = ceil(rand()*1.0/(1+RAND_MAX)*lenQ);
		}
        
        start = clock();
		for (p=0;p<pssize;p++)
		{
			gradvec[p] = talpha[0] - plabels[Q[pindex[p]]];
			for (q=1;q<=i+1;q++)
			{
				gradvec[p] = gradvec[p] + talpha[q]*kernel(param,Q[pindex[p]],svi[q-1],d,psamples,square);
			}
		}
        
		gradmax = absmax(gradvec,pssize,gradindex);
		tgradindex = pindex[*gradindex];
		*gradindex = Q[tgradindex];
	}
    
    plhs[0]		= mxCreateDoubleMatrix(i,1,mxREAL);
	plhs[1]		= mxCreateDoubleMatrix(i,1,mxREAL);
	plhs[2]		= mxCreateDoubleMatrix(1,1,mxREAL);
	plhs[3]		= mxCreateDoubleMatrix(1,1,mxREAL);
	alpha		= mxGetPr(plhs[0]);
	sv			= mxGetPr(plhs[1]);
	nsv			= mxGetPr(plhs[2]);
	bias		= mxGetPr(plhs[3]);
	for (q=1;q<=i;q++)
	{
		alpha[q-1] = talpha[q];
		sv[q-1]	 = svi[q-1]+1;
	}	
	nsv[0]		= i;
	bias[0]		= talpha[0];
	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久国产免费免费| 欧美日韩和欧美的一区二区| 午夜国产精品影院在线观看| 17c精品麻豆一区二区免费| 国产亚洲成av人在线观看导航| 日韩色视频在线观看| 91精品国产综合久久久久| 这里只有精品免费| 日韩免费看网站| 久久久国产午夜精品 | 成人欧美一区二区三区白人 | 国产成人免费视频精品含羞草妖精| 久久精品久久99精品久久| 久久成人久久爱| 国产激情一区二区三区桃花岛亚洲| 国产九九视频一区二区三区| 成人黄色在线网站| 精品视频一区二区三区免费| 欧美精品精品一区| 久久综合丝袜日本网| 欧美国产欧美综合| 亚洲欧美日韩电影| 亚洲综合久久av| 免费观看成人鲁鲁鲁鲁鲁视频| 国内一区二区视频| 91最新地址在线播放| 欧美日韩成人在线| 国产午夜久久久久| 亚洲永久免费视频| 国产一区二区三区蝌蚪| 91麻豆国产精品久久| 欧美一区二区三区啪啪| 国产精品水嫩水嫩| 天使萌一区二区三区免费观看| 国产精品一区一区三区| 在线亚洲人成电影网站色www| 欧美一区二区日韩一区二区| 中文字幕va一区二区三区| 亚洲福利国产精品| 成人国产免费视频| 欧美一区二区三区男人的天堂| 日韩一区中文字幕| 久久99精品久久久| 欧美久久久久中文字幕| 国产精品美日韩| 激情成人综合网| 欧美日韩亚洲综合一区二区三区 | 成人激情小说乱人伦| 在线观看亚洲精品视频| 欧美国产精品一区二区三区| 亚洲.国产.中文慕字在线| 成人a级免费电影| 精品99999| 五月婷婷久久综合| 色猫猫国产区一区二在线视频| 精品国产伦一区二区三区观看体验 | 国产精品美女久久久久久久久| 欧美aaaaa成人免费观看视频| av电影一区二区| 国产无遮挡一区二区三区毛片日本 | 中文字幕亚洲精品在线观看| 黑人巨大精品欧美黑白配亚洲| 欧美另类videos死尸| 亚洲一区二区三区中文字幕在线| av在线播放不卡| 国产精品网站一区| 国产精品亚洲人在线观看| 日韩欧美成人激情| 免费成人在线观看视频| 欧美一级午夜免费电影| 亚洲大片一区二区三区| 欧美三区在线视频| 亚洲成人7777| 欧美精品一卡二卡| 首页国产欧美久久| 欧美一二三四区在线| 日本大胆欧美人术艺术动态| 91精品国产综合久久久久久久| 日韩制服丝袜先锋影音| 欧美一卡二卡三卡| 久久er99热精品一区二区| 欧美电影免费观看高清完整版在线 | 久久蜜桃av一区精品变态类天堂| 免费成人小视频| 日韩精品自拍偷拍| 国产精品69毛片高清亚洲| 国产喷白浆一区二区三区| 国产sm精品调教视频网站| 中文一区一区三区高中清不卡| 成人av在线资源网站| 亚洲精品国久久99热| 欧美亚州韩日在线看免费版国语版| 亚洲综合免费观看高清完整版| 欧美在线你懂得| 久久国产三级精品| 日本一区二区三区dvd视频在线| 大桥未久av一区二区三区中文| 亚洲久草在线视频| 91麻豆精品国产91久久久使用方法 | 丝瓜av网站精品一区二区 | 不卡的av在线| 亚洲h精品动漫在线观看| 日韩精品中文字幕一区二区三区 | 欧美综合亚洲图片综合区| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久久久国产精品厨房| 在线免费观看成人短视频| 日韩精品一级中文字幕精品视频免费观看| 日韩视频一区二区三区在线播放| 国产精品一区二区久激情瑜伽 | 亚洲国产一区二区在线播放| 日韩一二三四区| 不卡一区中文字幕| 美女免费视频一区二区| 国产精品久久久久影院老司| 欧美久久久久免费| k8久久久一区二区三区| 水野朝阳av一区二区三区| 国产精品免费久久| 日韩你懂的在线观看| 色婷婷精品大视频在线蜜桃视频| 蜜臀av性久久久久蜜臀aⅴ| 亚洲精品日韩综合观看成人91| 精品国产乱码久久久久久久| 日本乱码高清不卡字幕| 国产精品一区2区| 日韩国产精品久久久久久亚洲| 中文字幕亚洲视频| 国产欧美一区二区精品婷婷| 欧美日韩精品二区第二页| www.在线欧美| 国产精品自拍毛片| 免费av网站大全久久| 亚洲国产va精品久久久不卡综合| 国产精品每日更新| 国产亚洲视频系列| 日韩欧美国产一区二区三区| 欧美精品自拍偷拍动漫精品| 91福利视频在线| 91视频免费看| 99精品在线观看视频| 懂色一区二区三区免费观看| 久久精品国产免费| 蜜桃av噜噜一区二区三区小说| 亚洲国产精品一区二区www| 亚洲老妇xxxxxx| 亚洲黄一区二区三区| 中文字幕一区二区三区不卡 | 在线91免费看| 欧美午夜一区二区| 欧美日韩在线观看一区二区| 91搞黄在线观看| 欧美日韩一级二级| 欧美蜜桃一区二区三区| 欧美日韩在线三级| 欧美另类久久久品| 欧美一级免费观看| 精品久久一区二区| 久久久久久久精| 久久久久国产精品免费免费搜索| 久久综合久久99| 国产欧美一区二区在线| 国产精品理论片| 一区二区不卡在线视频 午夜欧美不卡在 | 久久99国产精品久久99 | 色中色一区二区| 欧美日韩国产经典色站一区二区三区 | 欧美日韩黄色一区二区| 777a∨成人精品桃花网| 精品国一区二区三区| 国产亚洲一区字幕| 亚洲免费三区一区二区| 亚洲一卡二卡三卡四卡五卡| 日韩vs国产vs欧美| 精品一二三四区| jlzzjlzz国产精品久久| 91福利视频网站| 欧美mv和日韩mv的网站| 亚洲国产精品激情在线观看| 亚洲天堂久久久久久久| 三级不卡在线观看| 国产精品一级黄| 91福利国产精品| 亚洲精品一区在线观看| 成人欧美一区二区三区黑人麻豆| 一区二区日韩电影| 黄色精品一二区| 91蜜桃传媒精品久久久一区二区| 欧美日韩一区二区在线观看 | www.亚洲色图.com| 91超碰这里只有精品国产| 国产女人水真多18毛片18精品视频| 亚洲素人一区二区| 久久er精品视频| 欧美伊人久久大香线蕉综合69| 精品国精品自拍自在线| 亚洲国产日韩一区二区| 成人一区二区三区| 91精品国产一区二区| 亚洲视频香蕉人妖|