C++デブルーンを実現

2002 ワード

このDeblurGANの生成ネットワークとスタイル変換の生成ネットワークの差は多くなく、残差ブロックが5から9に追加されたほか、グローバルにも残差構造である.
output = input + output

他は同じです.詳しくはお話ししませんが、スタイルチェンジ部分を参照してください.
主関数:
void DeblurGAN(char * savefilename,DeblurGAN   & sr)
{

//		
	int wid=bmp.width;
	int hei=bmp.height;
		cout<
	    *  ;

	//          ( ,  )
			
	//     
	    * di=(    *)malloc(sizeof(   ));
		di->width=1;
		di->height=1;
		di->depth=1;
		di->data=new float[1 ]; 

	    * ,*  ;
	  = &rgb;
	
	   = di;

	int pad;

		

	//     
	//     
	#define       (ConvX,  )/*    、    */ \
	\
	 =sr.ConvX;/* Conv2   */ \
	if( ->     !=   ->depth ||   ->width != wid ||   ->height != hei)\
		Resize   (*  ,wid,hei, ->    );\
	pad= ->  /2;\
	vl_nnconv( ,  ,  ,  ,  ,pad,pad,pad,pad);\
	vl_Norm(  );\
	vl_nnrelu(  );/*    Prelu*/\
\
	std::swap ( ,  );\


	cout<depth);
	convfea5.data=new float[wid * hei *  ->depth ]; 

	    *   =&convfea5;


	if( ->depth !=   ->depth ||   ->width != wid ||   ->height != hei)
		Resize   (*  ,wid,hei, ->depth);

	    *    0=sr. ;
	cout<   ;

						
		vl_nnconv( ,  ,  ,1,1,1,1,1,1);
						
		vl_Norm(  );
		vl_nnrelu(  );
				

		 ++;
		vl_nnconv(  , ,  ,1,1,1,1,1,1);
		vl_Norm( );

	//	//  
             (   , );


		   0++;//     
	}
	cout<     !=   ->depth ||   ->width != wid ||   ->height != hei)\
		Resize   (*  ,wid,hei, ->    );\
	vl_nnconvt( ,  , ,2,2, 1,1,1,1) ;\
		vl_Norm(  );\
	vl_nnrelu(  );/*    Prelu*/\
\
	std::swap ( ,  );\
		
					
	cout<     !=   ->depth ||   ->width != wid ||   ->height != hei)
		Resize   (*  ,wid,hei, ->    );
	pad= ->  /2;
	vl_nnconv( ,  ,  ,1,1,pad,pad,pad,pad);
	del   (* );

						
	
	vl_tanh(  );//    
	


	cout<

終わります.
ダウンロード:
win 32デモーションブラープログラム
DeblurGANによって改編された動きがぼやけているので、撮影されたぼやけた図を試してみると、少しはっきりするかもしれません.
https://download.csdn.net/download/juebai123/11055679