纯C++超分辨率重建espcn --改编--(一)数据结构

本文详细介绍了ESPCN_x3模型的结构与实现,包括3个卷积层的具体参数配置,如输入输出维度、权重及偏置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里还是用caffemodel中导出的数据来使用,先上一个图

数据结构:

#define 总层数 3


struct espcn_x3模型
{
	int 层数; //3

	层数据 * 所有层;

	//构造函数
	espcn_x3模型();

};

espcn_x3模型::espcn_x3模型()
{
	层数=总层数; //

	int size;
	size = sizeof(层数据)*层数;//
	所有层=(层数据 *)malloc(size);

	层数据 * 层=所有层;
	for (int k = 0;k<总层数;k++)
	{
		switch(k)
		{
			case 0:
				strcpy(层->类型, "卷积层");
				层->权重长度=64*1*5*5;
				层->权重_数据=(float*)malloc(sizeof(float) * 层->权重长度);
	层->输入维度=1;
	层->输出维度=64;
	层->核宽=5;
				层->偏移长度=64;
				层->偏移_数据=(float*)malloc(sizeof(float) * 层->偏移长度);
				break;
			case 1:
				strcpy(层->类型, "卷积层");
				层->权重长度=32*64*3*3;
				层->权重_数据=(float*)malloc(sizeof(float) * 层->权重长度);
	层->输入维度=64;
	层->输出维度=32;
	层->核宽=3;
				层->偏移长度=32;
				层->偏移_数据=(float*)malloc(sizeof(float) * 层->偏移长度);
				break;
			case 2:
				strcpy(层->类型, "卷积层");
				层->权重长度=9*32*3*3;
				层->权重_数据=(float*)malloc(sizeof(float) * 层->权重长度);
	层->输入维度=32;
	层->输出维度=9;
	层->核宽=3;
				层->偏移长度=9;
				层->偏移_数据=(float*)malloc(sizeof(float) * 层->偏移长度);
				break;

		}
		层++;
	}

}

加载3个卷积层数据比fscrcnn更简单,就不重复了,而像数组合层并无数据。

这部分完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值