Open SaChengX opened 4 months ago
作者你好,在你的Network Architecture图片中有一些通道数的标注和实际代码的实现上似乎有一些出入。 具体的说,在解码网络中,在图片中是96→48→32→16→。 但是实际在代码中是96→64→32→16→。 decode4 会把拼合后的得到的96个通道数恢复到经过GRDB之前(32+32),而非GRDB之后拼合之前(48+48)。
例如,decode3会期待一个vis_ch[1]+inf_ch[1]=32+32=64的输入 self.decode4 = ConvBnLeakyRelu2d(vis_ch[2]+inf_ch[2], vis_ch[1]+vis_ch[1]) self.decode3 = ConvBnLeakyRelu2d(vis_ch[1]+inf_ch[1], vis_ch[0]+inf_ch[0]) self.decode2 = ConvBnLeakyRelu2d(vis_ch[0]+inf_ch[0], vis_ch[0]) RuntimeError: Given groups=1, weight of size [32, 64, 3, 3], expected input[16, 48, 480, 640] to have 64 channels, but got 48 channels instead
不知道是那一条程序报错了呢 我看了一下好像没啥问题呀 而且运行应该也是没问题的啊
程序运行是没有问题的,程序也没有错误,只是Network Architecture的标注有问题。
那个报错我我在魔改过程中遇到的,只是为了给你看一下确实是64而非48,很抱歉给你造成了误解。你的程序运行是完全ok的。
作者你好,在你的Network Architecture图片中有一些通道数的标注和实际代码的实现上似乎有一些出入。 具体的说,在解码网络中,在图片中是96→48→32→16→。 但是实际在代码中是96→64→32→16→。 decode4 会把拼合后的得到的96个通道数恢复到经过GRDB之前(32+32),而非GRDB之后拼合之前(48+48)。
例如,decode3会期待一个vis_ch[1]+inf_ch[1]=32+32=64的输入 self.decode4 = ConvBnLeakyRelu2d(vis_ch[2]+inf_ch[2], vis_ch[1]+vis_ch[1]) self.decode3 = ConvBnLeakyRelu2d(vis_ch[1]+inf_ch[1], vis_ch[0]+inf_ch[0]) self.decode2 = ConvBnLeakyRelu2d(vis_ch[0]+inf_ch[0], vis_ch[0]) RuntimeError: Given groups=1, weight of size [32, 64, 3, 3], expected input[16, 48, 480, 640] to have 64 channels, but got 48 channels instead