欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

纯C++超分辨率重建FSRCNN --改编--(二)核参数修改 和多参激励vl_nnrelu

程序员文章站 2022-03-09 13:04:07
...

这里主要说明和LapSRN一些不同之处。

前面的LapSRN中 filters_getDepth ,filters_getSize只是拼凑,

vl_impl_nnconv_forward_blas_CPU_float中改为:

filters_getDepth=filters_biases->输入维度;
filters_getSize=filters_biases->输出维度;

filters_getHeight=	filters_getWidth=  filters_biases->核宽;

vl_impl_nnconv_backward_blas_CPU_float中改为:

filters_getDepth=filters_biases->输出维度;
filters_getHeight=filters_getWidth=filters_biases->核宽;

多参数 vl_nnrelu 激励函数:

void vl_nnrelu(卷积层 * out, float * leak)//激励函数
{

	float * s=out->data, *s0;
	float p;
	int width=out->width; 
	int height=out->height; 

	for (int c=0; c<out->depth; ++c)
	{
		for (int i=0; i<height; ++i)
		{
			for (int j=0; j<width; ++j)
			{
				s0 = s+i*width+j;
				p  = *s0;//
				if(p<0)
					*s0 *= *leak;
			}
			
		}
		s+=width*height;//到下一通道
		leak++;//下一个leak值
	}
}

主函数fscrcnn放到下一篇,这里结束。

相关标签: 超分辨率 FSRCNN