你的代码有一些问题,包括导入模块的位置以及 gMLP 的调用方式。下面是修正后的代码:

from gmlp import SpatialGatingUnit, gMLPBlock, gMLP

class CNN(nn.Module):
    def __init__(self):
        super(CNN, self).__init__()
        self.conv1 = nn.Sequential(
            nn.Conv2d(1, 5, (200, 3), (50, 1), padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2, padding=1)
        )
        self.conv2 = nn.Sequential(
            nn.Conv2d(5, 10, (20, 2), (4, 1), padding=1),
            nn.ReLU(),
            nn.MaxPool2d(kernel_size=2)
        )
        self.gmlp = gMLP(d_model=40, d_ffn=80, seq_len=10, num_layers=6)

    def forward(self, x):
        x = self.conv1(x)
        x = self.conv2(x)
        x = x.view(x.size(0), -1)
        x = self.gmlp(x)
        return x

你需要确保已经正确导入了 gMLP 相关的模块,并且安装了对应的库。在 forward 方法中,将卷积层的输出展平后,再输入到 gMLP 中进行处理。

CNN 后接 gMLP 的正确实现方法

原文地址: https://www.cveoy.top/t/topic/fUQd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录