本文主要是介绍MMSeg搭建模型的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Input type(torch.suda.FloatTensor) and weight type (torch.FloatTensor) should be same
自己搭建模型的时候,经常会遇到二者不匹配,以这种情况为例,是因为部分模型没有加载到CUDA上面造成的。
注意搭建模型的时候,所有层都应该在init函数中完成初始化
其次,对于List、Tuple这种类型,不建议直接用。
以下是错误代码,我搞了半天,不理解为什么总是不对,正确的应该是self.aspp = nn.ModuleList()
self.aspp = [] # 注意这里不能直接用list[]。类似元组,tuple[]也不能用,要不然会导致weight不在cuda上
for dilation in dilations:self.aspp.append(ConvModule(self.in_channels,self.channels,1 if dilation == 1 else 3,dilation=dilation,padding=0 if dilation == 1 else dilation,conv_cfg=self.conv_cfg,norm_cfg=self.norm_cfg,act_cfg=self.act_cfg))
搭建代码时,希望记住。没有系统教学,只能自己在网上摸索。
这篇关于MMSeg搭建模型的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!