niu
niu
而且看了一眼输入图像是 0-255的uint8数据,预处理只有一个转tensor操作,求问输入还经过什么操作了吗
先把代码中的model文件夹名字改成models,然后加载时用下面代码 comb = torch.load(path) fsrnet = comb['model'] 这样写就没问题了 你试试能不能跑起来
首先我不是作者哈,我也是遇到问题了进来看看。 我昨天已经调过了,你可以用这个思路试一下(没理解错的话你代码中pretrained_dict是加载作者提供的预训练模型,model_dict是你自己声明的新网络的模型,那我就使用这两个变量进行举例): preList = [] for i in pretrained_dict: tmpList.append(i) 这里的pretrained_dict是你加载作者提供的预训练模型得到的,同理可以得到model_dict对应的modList,你可以输出一下len(preList)和len(modList),我没记错的话preList长度应该是718,modList是716,也就是说从预训练模型中加载的网络和用代码声明的新网络在结构上已经不一致了(实际上是预训练模型的网络多了一个1x1的卷积层,所以正好多了卷积层的weights,和bais,所以权重的数量比716多出了2),至于想找到它在哪也比较好办,自己写一个代码计算 preList与modList的差集并输出,得到的就是卷积层的名字,根据命名规则就可以找回去,你也可以print(fsrnet)和print(pretrainedModel)对比二者网络结构来验证这个卷积层多在哪里。接下来就是手动往fsrnet中加入那个卷积层,然后再load参数,就可以了。