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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ebm.cpp

?? Gaussian Mixture Algorithm
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
	intg si = in->x.dim(1);	intg sj = in->x.dim(2);	expdist.resize(thick, si, sj);  out->x.resize(thick);	if (1 == (si * sj)) {		// save time and precision if no replication		Idx<double> inx(in->x.select(2, 0));		Idx<double> m(inx.select(1, 0));		Idx<double> ed(expdist.select(2, 0));		Idx<double> ed1(ed.select(1, 0));		idx_fill(ed1, 1.0);		idx_fill(sumexp, 1.0);		idx_copy(m, out->x);	}	else {		// spatially replicated		// loop over output units		{ idx_bloop4(m, in->x, double, outx, out->x, double,				        ed, expdist, double, sx, sumexp, double) {			// first compute smallest element of m			double mini = m.get(0, 0);			{ idx_bloop1(m1, m, double) {			    { idx_bloop1(m0, m1, double) {			      if (m0->get() < mini)			        mini = m0->get();			      }			    }			  }			}			// now do log-add, and save exponentials			double r = 0.0;			double w = 1 / (si * sj);			{ idx_bloop2(m1, m, double, ed1, ed, double) {				  { idx_bloop2(m0, m1, double, ed0, ed1, double) {				    ed0.set(w * exp(mini - m0.get()));				    r += ed0.get();				    }				  }			  }			}			sx.set(r);			// put result in output			outx->set(mini - log(r));		  }		}	}}void logadd_layer::bprop(state_idx *in, state_idx *out) {  intg si = in->dx.dim(1);	intg sj = in->dx.dim(2);  if ((si * sj) == 1) {	  // save time and precision if no replication  	Idx<double> indx(in->dx.select(2, 0));  	Idx<double> m(indx.select(1, 0));  	idx_copy(out->dx, m);  } else {  	// spatially replicated		// loop over output units		{ idx_bloop4(m, in->dx, double, o, out->dx, double,							   ed, expdist, double, sx, sumexp, double) {			{ idx_bloop2(m1, m, double, ed1, ed, double) {			    { idx_bloop2(m0, m1, double, ed0, ed1, double) {			      *m0 = ed0.get() * o->get() / sx->get();			      }			    }			  }			}		 }		}  }}void logadd_layer::bbprop(state_idx *in, state_idx *out) {  { idx_bloop2(o, out->ddx, double, i, in->ddx, double) {  	idx_fill(*i, o->get());    }  }}////////////////////////////////////////////////////////////////////////edist_cost::edist_cost(Idx<ubyte> *classes, intg ini, intg inj, Idx<double> *p) {  intg imax = idx_max(*classes);	intg imin = idx_min(*classes);  if (imin < 0) ylerror("labels must be positive");  if (imax > 100000) printf("warning: [edist-cost] largest label is huuuge\n");  label2classindex = Idx<ubyte>(1 + imax);  { idx_bloop1(v, label2classindex, ubyte) {  	v->set(0);    }  }  for (intg i = 0; i < classes->dim(0); ++i)  	label2classindex.set(i, classes->get(i));  dist = new state_idx(1, ini, inj);  logadder = new logadd_layer(1, ini, inj);  logadded_dist = new state_idx(1);  proto = p;}void edist_cost::fprop(state_idx *in, Idx<ubyte> *desired, state_idx *energy) {	 Idx<double> p(proto->select(0, label2classindex.get(desired->get())));	 intg ini = in->x.dim(1);	 intg inj = in->x.dim(2);   dist->resize(1, ini, inj);   Idx<double> inx(in->x.transpose((int[]){1, 2, 0}));	 Idx<double> distx(dist->x.select(0, 0));   // loop over spatial dimensions   { idx_bloop2(inx1, inx, double, dx1, distx, double) {  	 { idx_bloop2(inx0, inx1, double, dx0, dx1, double) {	     // distance between desired prototype and output	     // at current location	     idx_sqrdist(p, *inx0, *dx0);  	  }  	 }    }   }   idx_dotc(distx, 0.5, distx);   logadder->fprop(dist, logadded_dist);   energy->x.set(logadded_dist->x.get(0));}void edist_cost::bprop(state_idx *in, Idx<ubyte> *desired, state_idx *energy) {	 Idx<double> p(proto->select(0, label2classindex.get(desired->get())));   // backprop through logadder   logadded_dist->dx.set(energy->dx.get(), 0);   logadder->bprop(dist, logadded_dist);   // backprop through Euclidean distance   Idx<double> tinx(in->x.transpose((int[]) {1, 2, 0}));	 Idx<double> tindx(in->dx.transpose((int []) {1, 2, 0}));	 Idx<double> distdx(dist->dx.select(0, 0));	 // loop over last two dimensions	 { idx_bloop3(linx, tinx, double, lindx, tindx, double, ldistdx, distdx, double) {	     { idx_bloop3(llinx, linx, double, llindx, lindx, double, lldistdx, ldistdx, double) {	       idx_sub(llinx, p, llindx);	       idx_dotc(llindx, lldistdx.get(), llindx);	       }	     }	   }	 }}// mse has this funny property that the bbprop method mixes up the// the first derivative after with the second derivative before, and// vice versa. Only the first combination is used here.void edist_cost::bbprop(state_idx *in, Idx<ubyte> *desired, state_idx *energy) {  // don't bother bbproping through the logadder  // we would ignore its output anyway  idx_fill(in->ddx, energy->dx.get());}////////////////////////////////////////////////////////////////////////classifier_meter::classifier_meter() {  this->clear();}int classifier_meter::correctp(ubyte co, ubyte cd) {	// TODO-0: can co be negative?//	if (co == -1)//		return 0;	if (co == cd)		return 1;	return -1;}void classifier_meter::clear() {  total_correct = 0;	total_error = 0;	total_punt = 0;	total_energy = 0;	age = 0;	size = 0;}void classifier_meter::resize (intg sz) {	ylerror("not implemented");}char classifier_meter::update(intg a, class_state *co, ubyte cd, state_idx *en) {	intg crrct = this->correctp(co->output_class, cd);	age = a;	energy = en->x.get();	confidence = co->confidence;	total_energy += energy;	if (crrct == 1)		total_correct++;	else if (crrct == 0)		total_punt++;	else if (crrct == -1)		total_error++;	size++;	return crrct;}void classifier_meter::test(class_state *co, class_state *cd, state_idx *en) {	err_not_implemented();}void classifier_meter::info() {	/*  (list   age   size   (/ total-energy size)   (/ (* 100 total-correct) size)   (/ (* 100 total-error) size)   (/ (* 100 total-punt) size)))	 */	err_not_implemented();}void classifier_meter::info_sprint() {	err_not_implemented();}void classifier_meter::info_print() {	err_not_implemented();}void classifier_meter::display() {	printf("[%5d]  size=%3d  energy=%g  correct=%3.2f%%  errors=%3.2f%%  rejects=%3.2f%%\n",			(int) age, (int) size,			total_energy / (double) size,			(total_correct * 100) / (double) size,			(total_error * 100) / (double) size,			(total_punt * 100) / (double) size);}bool classifier_meter::save() {	err_not_implemented();	return false;}bool classifier_meter::load() {	err_not_implemented();	return false;}////////////////////////////////////////////////////////////////////////class_state::class_state(ubyte n) {  sorted_classes = new Idx<ubyte>(n);  sorted_scores = new Idx<float>(n);}class_state::~class_state() {	delete sorted_classes;	delete sorted_scores;}void class_state::resize(ubyte n) {  sorted_classes->resize(n);  sorted_scores->resize(n);}////////////////////////////////////////////////////////////////////////max_classer::max_classer(Idx<ubyte> *classes) {  classindex2label = classes;}void max_classer::fprop(state_idx *in, class_state *out) {	 intg n = in->x.dim(0);   out->resize(n);    { idx_bloop2(sc, *(out->sorted_scores), float, insc, in->x, double) {    		sc.set(idx_max(insc));      }    }    idx_copy(*classindex2label, *(out->sorted_classes));    idx_sortdown(*(out->sorted_scores), *(out->sorted_classes));    out->output_class = out->sorted_classes->get(0);    out->confidence = out->sorted_scores->get(0);}////////////////////////////////////////////////////////////////////////softmax::softmax(double b){	beta = b;}void softmax::resize_nsame(state_idx *in, state_idx *out, int n){	int nmax = in->x.order();	if(n==0||n>nmax) {ylerror("illegal type")}	else{		switch(n){			case 1: out->resize(in->x.dim(0));				break;			case 2: out->resize(in->x.dim(0), in->x.dim(1));				break;			case 3: out->resize(in->x.dim(0), in->x.dim(1), in->x.dim(2));				break;			case 4: out->resize(in->x.dim(0), in->x.dim(1), in->x.dim(2), in->x.dim(3));				break;			case 5: out->resize(in->x.dim(0), in->x.dim(1), in->x.dim(2), in->x.dim(3), in->x.dim(4));				break;			case 6: out->resize(in->x.dim(0), in->x.dim(1), in->x.dim(2), in->x.dim(3), in->x.dim(4), in->x.dim(5));				break;		}	}}void softmax::fprop( state_idx *in, state_idx *out){	int n=in->x.order();	if(n==0){		Idx<double> ib;		ib.set(1);		idx_copy(ib, out->x);		}	else {		resize_nsame(in, out, n);		if( n > 6) {ylerror("illegal type")}		else{			Idx<double> pp(new Srg<double>(), in->x.spec);			Idx<double> dot(new Srg<double>(), in->x.spec);			double mm = idx_max(in->x);			idx_addc(in->x, -mm, pp);			idx_dotc(pp, beta, dot);			double d = idx_sum(dot);			idx_dotc(dot, (double)(1/d), out->x);		}	}}void softmax::bprop( state_idx *in, state_idx *out){	int n = in->x.order();	if( n == 0) return;	if( n > 6 ) { ylerror("illegal type")}	else{		Idx<double> pp(new Srg<double>(), out->dx.spec);		Idx<double> mul(new Srg<double>(), out->dx.spec);		double dot = idx_dot(out->dx, out->x);		idx_addc(out->dx, -dot, pp);		idx_mul(out->x, pp, mul);		idx_dotcacc(mul, beta, in->x);	}}void softmax::bbprop( state_idx *in, state_idx *out){	int n = in->x.order();	if( n == 0) return;	if( n > 6 ) { ylerror("illegal type")}	else{		Idx<double> mul(new Srg<double>(), out->x.spec);		Idx<double> dot(new Srg<double>(), out->x.spec);		Idx<double> pp(new Srg<double>(), out->x.spec);		Idx<double> mul2(new Srg<double>(), out->x.spec);		Idx<double> pp2(new Srg<double>(), out->x.spec);		Idx<double> mul3(new Srg<double>(), out->x.spec);		idx_mul(out->x, out->x, mul);		idx_dotc(out->x, (double)-2, dot);		idx_addc(dot, (double)1, pp);		idx_mul(pp, out->ddx, mul2);		idx_addc(mul2, idx_dot(out->ddx, mul), pp2);		idx_mul(mul, pp2, mul3);		idx_dotcacc(mul3, beta*beta, in->ddx);	}}////////////////////////////////////////////////////////////////////////void Jacobian_tester::test(module_1_1<state_idx, state_idx> *module){	int insize = 16;	state_idx *in = new state_idx(insize, 1, 1);	state_idx *out = new state_idx(insize, 1, 1);	//init	dseed(2);  // 2 is chosen randomly... feel free to change it	module->fprop(in, out); // used to resize the outputs	{ idx_bloop1( i, in->x, double)		{ idx_bloop1 (ii, i, double)			{ idx_bloop1( iii, ii, double)				{ iii.set(drand(2)); }			}		}	}	{ idx_bloop1( o, out->x, double)		{ idx_bloop1 (oo, o, double)			{ idx_bloop1( ooo, oo, double)				{ ooo.set(drand(2)); }			}		}	}	// check the Jacobian	int ndim_in = in->x.nelements();	int ndim_out = in->x.nelements();	Idx<double> jac_fprop(ndim_in, ndim_out); // used to store the jacobian calculated via bprop	Idx<double> jac_bprop(ndim_in, ndim_out); //  used to store the jacobian calculated via prturbations	// creation of jac_fprop	module->fprop(in, out);	int cnt = 0;	{ idx_bloop1(o, out->x, double)		{ idx_bloop1(oo, o, double)			{ idx_bloop1(ooo, oo, double)				{				out->clear_dx();				in->clear_dx();				ooo.set(1);				module->bprop(in, out);				Idx<double> bla = jac_bprop.select(1, cnt);				idx_copy(in->dx, bla);				cnt++;				}			}		}	}	// creation of jac_bprop	cnt = 0;	double small = pow(10.0, -6);	state_idx *in1 = new state_idx(in->x.dim(0), in->x.dim(1), in->x.dim(2));	state_idx *in2 = new state_idx(in->x.dim(0), in->x.dim(1), in->x.dim(2));	state_idx *out1 = new state_idx( 1, 1, 1);	state_idx *out2 = new state_idx( 1, 1, 1);	for(int d1 = 0; d1 < in->x.dim(0); d1++){		for(int d2 = 0; d2 < in->x.dim(1); d2++){			for(int d3 = 0; d3 < in->x.dim(2); d3++){				idx_copy(in->x, in1->x);				idx_copy(in->x, in2->x);				in1->x.set(in1->x.get( d1, d2, d3) + small, d1, d2, d3);				in2->x.set(in2->x.get( d1, d2, d3) - small, d1, d2, d3);				module->fprop(in1, out1);				module->fprop(in2, out2);				Idx<double> sub(new Srg<double>(), out1->x.spec);				Idx<double> dot(new Srg<double>(), out1->x.spec);				idx_sub(out1->x, out2->x, sub);				idx_dotc(sub, 0.5/small, dot);				Idx<double> bla2 = jac_fprop.select(0, cnt);				idx_copy(dot, bla2);				cnt++;			}		}	}	// comparison	printf("Jacobian error: %8.7e \n", idx_sqrdist(jac_fprop, jac_bprop));}////////////////////////////////////////////////////////////////////////void Bbprop_tester::test(module_1_1<state_idx, state_idx> *module){	int insize = 16;	state_idx *in = new state_idx(insize, 1, 1);	state_idx *out = new state_idx(insize, 1, 1);	//init	dseed(2);  // 2 is chosen randomly... feel free to change it	module->fprop(in, out); // used to resize the outputs	{ idx_bloop1( i, in->x, double)		{ idx_bloop1 (ii, i, double)			{ idx_bloop1( iii, ii, double)				{ iii.set(drand(2)); }			}		}	}	{ idx_bloop1( o, out->x, double)		{ idx_bloop1 (oo, o, double)			{ idx_bloop1( ooo, oo, double)				{ ooo.set(drand(2)); }			}		}	}	module->fprop(in, out);	module->bprop(in, out);	module->bbprop(in, out);	Idx<double> bbprop_p(in->x.dim(0), in->x.dim(1), in->x.dim(2)); // used to store the bbprop calculated via perturbation	// creation of bbprop_p	int cnt = 0;	double small = pow(10.0, -6);	state_idx *in1 = new state_idx(in->x.dim(0), in->x.dim(1), in->x.dim(2));	state_idx *in2 = new state_idx(in->x.dim(0), in->x.dim(1), in->x.dim(2));	state_idx *out1 = new state_idx( 1, 1, 1);	state_idx *out2 = new state_idx( 1, 1, 1);	for(int d1 = 0; d1 < in->x.dim(0); d1++){		for(int d2 = 0; d2 < in->x.dim(1); d2++){			for(int d3 = 0; d3 < in->x.dim(2); d3++){				idx_copy(in->x, in1->x);				idx_copy(in->x, in2->x);				in1->x.set(in1->x.get( d1, d2, d3) + small, d1, d2, d3);				in2->x.set(in2->x.get( d1, d2, d3) - small, d1, d2, d3);				module->fprop(in1, out1);				module->fprop(in2, out2);				// here we calculate a in aX2+bX+c as a model for the 3 points calculated via				// fprop(...), fprop(...+small) and fprop(...-small). the second derivative is				// then 2*a				Idx<double> ad(new Srg<double>(), out1->x.spec);				Idx<double> sub(new Srg<double>(), out1->x.spec);				Idx<double> dot(new Srg<double>(), out1->x.spec);				Idx<double> dot2(new Srg<double>(), out1->x.spec);				idx_add(out1->x, out2->x, ad);				idx_dotc(out->x, (double)2, dot);				idx_sub(ad, dot, sub);				idx_dotc(sub, 1/small, dot2);				bbprop_p.set(dot2.get( d1, d2, d3), d1, d2, d3);				cnt++;			}		}	}	// comparison	printf("bbprop error: %8.7e \n", idx_sqrdist(in->ddx, bbprop_p));}////////////////////////////////////////////////////////////////////////void Bprop_tester::test(module_1_1<state_idx, state_idx> *module){	int insize = 16;	state_idx *in = new state_idx(insize, 1, 1);	state_idx *out = new state_idx(insize, 1, 1);	//init	dseed(2);  // 2 is chosen randomly... feel free to change it	module->fprop(in, out); // used to resize the outputs	{ idx_bloop1( i, in->x, double)		{ idx_bloop1 (ii, i, double)			{ idx_bloop1( iii, ii, double)				{ iii.set(drand(2)); }			}		}	}	{ idx_bloop1( o, out->x, double)		{ idx_bloop1 (oo, o, double)			{ idx_bloop1( ooo, oo, double)				{ ooo.set(drand(2)); }			}		}	}	Idx<double> bprop_p(in->x.dim(0), in->x.dim(1), in->x.dim(2)); // used to store the bbprop calculated via perturbation	// creation of bprop_p	int cnt = 0;	double small = pow(10.0, -6);	state_idx *in1 = new state_idx(in->x.dim(0), in->x.dim(1), in->x.dim(2));	state_idx *in2 = new state_idx(in->x.dim(0), in->x.dim(1), in->x.dim(2));	state_idx *out1 = new state_idx( 1, 1, 1);	state_idx *out2 = new state_idx( 1, 1, 1);	for(int d1 = 0; d1 < in->x.dim(0); d1++){		for(int d2 = 0; d2 < in->x.dim(1); d2++){			for(int d3 = 0; d3 < in->x.dim(2); d3++){				idx_copy(in->x, in1->x);				idx_copy(in->x, in2->x);				in1->x.set(in1->x.get( d1, d2, d3) + small, d1, d2, d3);				in2->x.set(in2->x.get( d1, d2, d3) - small, d1, d2, d3);				module->fprop(in1, out1);				module->fprop(in2, out2);				Idx<double> sub(new Srg<double>(), out1->x.spec);				Idx<double> dot(new Srg<double>(), out1->x.spec);				idx_sub(out1->x, out2->x, sub);				idx_dotc(sub, 0.5/small, dot);				bprop_p.set(dot.get( d1, d2, d3), d1, d2, d3);				cnt++;			}		}	}	printf("Bprop error : %8.7e \n", idx_sqrdist(in->dx, bprop_p));}} // end namespace ebl

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩在线播放| 美女视频第一区二区三区免费观看网站| 久久美女艺术照精彩视频福利播放| 欧美日韩精品欧美日韩精品一| 在线免费观看视频一区| 色综合激情五月| 在线看国产日韩| 欧美理论在线播放| 51久久夜色精品国产麻豆| 欧美精品欧美精品系列| 欧美一级黄色片| 精品粉嫩aⅴ一区二区三区四区| 欧美一级二级在线观看| 欧美成人video| 国产午夜精品福利| 国产精品第四页| 一区二区三区小说| 亚洲国产精品影院| 日产国产欧美视频一区精品| 欧美a级理论片| 国产伦理精品不卡| fc2成人免费人成在线观看播放| aa级大片欧美| 欧美日韩激情一区二区三区| 日韩一级片在线播放| 精品日韩成人av| 国产精品美女久久久久久久| 亚洲人精品午夜| 日韩av中文在线观看| 激情综合色播五月| 成人午夜视频在线观看| 91成人免费电影| 日韩欧美国产精品一区| 国产日韩精品一区二区浪潮av| 最新欧美精品一区二区三区| 亚洲影院久久精品| 奇米色777欧美一区二区| 国产传媒日韩欧美成人| 色香蕉久久蜜桃| 欧美一二三四区在线| 国产欧美一区二区精品婷婷| 一区二区三区久久久| 男男视频亚洲欧美| 成人av电影在线网| 欧美日韩国产综合视频在线观看 | 精品国精品国产| 国产精品入口麻豆九色| 亚洲h精品动漫在线观看| 国产资源在线一区| 欧美性猛交xxxxxxxx| 精品福利一区二区三区免费视频| 一色桃子久久精品亚洲| 看电影不卡的网站| 一本大道久久精品懂色aⅴ| 欧美xxxxx裸体时装秀| 亚洲视频1区2区| 久久99久久99精品免视看婷婷| 91香蕉视频黄| 26uuuu精品一区二区| 亚洲午夜久久久久久久久电影网| 国产精品91一区二区| 欧美日韩和欧美的一区二区| 国产精品久久久久7777按摩| 免费看欧美美女黄的网站| 91免费看`日韩一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产欧美在线观看一区| 五月天视频一区| 91在线码无精品| 久久这里只有精品首页| 亚洲成精国产精品女| 成人av资源在线观看| 欧美一级xxx| 一区二区三区中文字幕精品精品| 国产中文字幕一区| 欧美一区二区美女| 亚洲激情欧美激情| 成人短视频下载| 久久这里只有精品视频网| 日韩av网站在线观看| 欧美在线不卡视频| ●精品国产综合乱码久久久久| 国产精品伊人色| 日韩精品一区在线观看| 午夜精品福利在线| 91麻豆123| 一区在线观看免费| 成人激情电影免费在线观看| 久久影院视频免费| 麻豆一区二区三| 91精品国产手机| 婷婷久久综合九色综合伊人色| 色婷婷狠狠综合| 亚洲欧美偷拍卡通变态| www.av亚洲| 1区2区3区精品视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品福利一二区| 久久精品国产久精国产爱| 欧美久久久一区| 日韩影视精彩在线| 欧美精品日韩一本| 琪琪久久久久日韩精品| 日韩一区二区高清| 久久99最新地址| 久久久综合精品| 国产一区二区调教| 久久免费视频一区| 成人性生交大片免费看视频在线| 欧美精品一区男女天堂| 国产一区二区毛片| 欧美国产一区视频在线观看| 国产69精品一区二区亚洲孕妇| 欧美激情一区在线| 91伊人久久大香线蕉| 亚洲精品高清在线| 欧美视频你懂的| 麻豆久久一区二区| 国产午夜亚洲精品理论片色戒 | 成人午夜免费av| 国产精品国产三级国产aⅴ入口| 成人美女视频在线看| 亚洲视频每日更新| 欧美巨大另类极品videosbest | 国产精品久久久久毛片软件| 国v精品久久久网| 国产精品麻豆网站| 色中色一区二区| 青青草精品视频| 国产欧美日韩精品a在线观看| av成人动漫在线观看| 亚洲成av人片一区二区三区| 日韩精品一区二区三区蜜臀 | 精品少妇一区二区三区日产乱码 | 国产精品一级黄| 亚洲欧洲精品一区二区三区不卡 | 久久久高清一区二区三区| 成人综合在线网站| 亚洲精品欧美综合四区| 9191精品国产综合久久久久久| 精品在线免费视频| 一区二区中文字幕在线| 欧美久久久久久蜜桃| 国产一区二区三区免费看| 亚洲色图在线播放| 日韩精品一区二区三区老鸭窝 | 538prom精品视频线放| 国产91综合网| 亚洲制服丝袜av| 精品国产伦一区二区三区免费| 91免费看片在线观看| 麻豆91在线看| 亚洲三级电影网站| 欧美成人官网二区| 91极品美女在线| 国产美女在线观看一区| 一区二区三区在线免费视频| 精品国产一二三区| 欧美三日本三级三级在线播放| 狠狠色丁香久久婷婷综| 一区二区三区国产精品| 久久久蜜桃精品| 欧美日韩一区视频| 成人av免费在线观看| 久久综合综合久久综合| 亚洲精品菠萝久久久久久久| 亚洲精品一区二区三区蜜桃下载| 色综合久久六月婷婷中文字幕| 久久国产夜色精品鲁鲁99| 一区二区三区91| 中文字幕精品一区| 26uuu国产电影一区二区| 欧美日本乱大交xxxxx| 99精品热视频| 国产自产2019最新不卡| 日韩专区在线视频| 一区二区三区中文字幕精品精品| 国产女主播一区| 久久夜色精品国产噜噜av| 欧美日韩国产综合一区二区三区 | 91精品国产综合久久福利软件 | 中日韩av电影| 精品国产一区二区精华| 51精品久久久久久久蜜臀| 欧美专区在线观看一区| 91亚洲精华国产精华精华液| 国产精品18久久久久久久久久久久| 日韩影院在线观看| 午夜影视日本亚洲欧洲精品| 亚洲精品成人a在线观看| 国产精品二三区| 国产精品视频一二三区| 久久精品人人爽人人爽| 精品久久久久久最新网址| 欧美日韩1区2区| 欧美日韩一区二区三区视频| 色天天综合色天天久久| 色妹子一区二区| 在线观看欧美日本| 色综合色狠狠综合色|