异常错误示例:weight of size [32, 512, 1], expected input[256, 1024, 1] to have 512 channels, but got 1024

RuntimeError: Given groups=1, weight of size [32, 512, 1], expected input[256, 1024, 1] to have 512 channels, but got 1024 channels instead

这个错误提示是因为输入张量的通道数不匹配导致的,卷积层的权重张量与输入张量的通道数应该是一致的。根据错误提示中提供的信息,期望输入张量 input 的通道数是 512,但实际上它的通道数是 1024,所以出现了这个错误。【只需修改conv的输入通道数的维度匹配上输入张量的通道数的维度就可以了

错误发生在下面这一行:

se_tensor = self.XX_block(se_tensor)


        self.XX_block = nn.Sequential(
            nn.AdaptiveAvgPool1d(1),
            nn.Conv1d(self.num_dimensions , self.num_dimensions  // reduction_ratio, kernel_size=1),
            nn.ReLU(inplace=True),
            nn.Conv1d(self.num_dimensions  // reduction_ratio, self.num_dimensions , kernel_size=1),
            nn.Sigmoid()
        )

这个错误很简单,直接将卷积的输入通道数改为原来的2倍就可以了:

        # Squeeze-and-Excitation block
        self.XX_block = nn.Sequential(
            nn.AdaptiveAvgPool1d(1),
            nn.Conv1d(self.num_dimensions*2 , self.num_dimensions  // reduction_ratio, kernel_size=1),
            nn.ReLU(inplace=True),
            nn.Conv1d(self.num_dimensions  // reduction_ratio, self.num_dimensions *2, kernel_size=1),
            nn.Sigmoid()
        )

猜你喜欢

转载自blog.csdn.net/weixin_43135178/article/details/130421876