ghostnet.pytorch icon indicating copy to clipboard operation
ghostnet.pytorch copied to clipboard

为什么我在替换nn.Conv2d的时候,初始化权重会报错?

Open tianyuluan opened this issue 4 years ago • 5 comments

听从您的建议,我用GhostModule代替我网络中的nn.Conv2d,别的没有改动,然后测试网络,会报错如下: Traceback (most recent call last): File "C:/Users/luan/Downloads/YOLOv4-PyTorch-master/CSPDarknet53.py", line 184, in model = CSPDarknet53() File "C:/Users/luan/Downloads/YOLOv4-PyTorch-master/CSPDarknet53.py", line 154, in init self.stem_conv = Conv(3, stem_channels, 3) File "C:/Users/luan/Downloads/YOLOv4-PyTorch-master/CSPDarknet53.py", line 67, in init MyConv2d(in_channels, out_channels, kernel_size, stride), File "C:/Users/luan/Downloads/YOLOv4-PyTorch-master/CSPDarknet53.py", line 37, in init nn.Conv2d(init_channels, new_channels, dw_size, 1, dw_size//2, groups=init_channels, bias=False), File "C:\anaconda\lib\site-packages\torch\nn\modules\conv.py", line 338, in init False, pair(0), groups, bias, padding_mode) File "C:\anaconda\lib\site-packages\torch\nn\modules\conv.py", line 53, in init self.reset_parameters() File "C:\anaconda\lib\site-packages\torch\nn\modules\conv.py", line 56, in reset_parameters init.kaiming_uniform(self.weight, a=math.sqrt(5)) File "C:\anaconda\lib\site-packages\torch\nn\init.py", line 322, in kaiming_uniform_ fan = _calculate_correct_fan(tensor, mode) File "C:\anaconda\lib\site-packages\torch\nn\init.py", line 291, in _calculate_correct_fan fan_in, fan_out = _calculate_fan_in_and_fan_out(tensor) File "C:\anaconda\lib\site-packages\torch\nn\init.py", line 223, in _calculate_fan_in_and_fan_out receptive_field_size = tensor[0][0].numel() IndexError: index 0 is out of bounds for dimension 0 with size 0

tianyuluan avatar May 18 '20 06:05 tianyuluan

方便把CSPDarknet53.py這個檔案貼出來看一下嗎?

JacobLau84 avatar May 18 '20 10:05 JacobLau84

方便把CSPDarknet53.py這個檔案貼出來看一下嗎? 可以的,问题我已经解决了,是我自己太蠢了,我foked的别人的CSPDarknet53,他里边自定义了一个Conv函数,然后我用GhostModule去替换的这个函数里边的nn.conv2d,导致在权重初始化的时候一直报错,刚才我将他的Conv这个函数注释掉,然后用GhostModule 代替,就好了。但是不知道之前的报错是因为什么。如果您知道的话,请告知。谢谢! 这里边有CSPDarkNet53:https://github.com/romulus0914/YOLOv4-PyTorch

tianyuluan avatar May 18 '20 11:05 tianyuluan

方便把CSPDarknet53.py這個檔案貼出來看一下嗎? 可以的,问题我已经解决了,是我自己太蠢了,我foked的别人的CSPDarknet53,他里边自定义了一个Conv函数,然后我用GhostModule去替换的这个函数里边的nn.conv2d,导致在权重初始化的时候一直报错,刚才我将他的Conv这个函数注释掉,然后用GhostModule 代替,就好了。但是不知道之前的报错是因为什么。如果您知道的话,请告知。谢谢! 这里边有CSPDarkNet53:https://github.com/romulus0914/YOLOv4-PyTorch

想請教一下,你做更換之後速度有提升嗎?

JacobLau84 avatar May 18 '20 12:05 JacobLau84

方便把CSPDarknet53.py這個檔案貼出來看一下嗎? 可以的,问题我已经解决了,是我自己太蠢了,我foked的别人的CSPDarknet53,他里边自定义了一个Conv函数,然后我用GhostModule去替换的这个函数里边的nn.conv2d,导致在权重初始化的时候一直报错,刚才我将他的Conv这个函数注释掉,然后用GhostModule 代替,就好了。但是不知道之前的报错是因为什么。如果您知道的话,请告知。谢谢! 这里边有CSPDarkNet53:https://github.com/romulus0914/YOLOv4-PyTorch

想請教一下,你做更換之後速度有提升嗎?

还未做训练。

tianyuluan avatar May 18 '20 12:05 tianyuluan

方便把CSPDarknet53.py這個檔案貼出來看一下嗎? 可以的,问题我已经解决了,是我自己太蠢了,我foked的别人的CSPDarknet53,他里边自定义了一个Conv函数,然后我用GhostModule去替换的这个函数里边的nn.conv2d,导致在权重初始化的时候一直报错,刚才我将他的Conv这个函数注释掉,然后用GhostModule 代替,就好了。但是不知道之前的报错是因为什么。如果您知道的话,请告知。谢谢! 这里边有CSPDarkNet53:https://github.com/romulus0914/YOLOv4-PyTorch

想請教一下,你做更換之後速度有提升嗎?

还未做训练。

期待你的结果。

iamhankai avatar May 18 '20 14:05 iamhankai