Я пытаюсь построить модель CNN, которая принимает изображение в качестве входных данных и создает вектор непрерывных значений 6x1. Вот что я написал:
class MultiLabelNN(nn.Module):
def init(self):
super(MultiLabelNN, self).init()
self.conv1 = nn.Conv2d(3,64, 5)
self.pool = nn.MaxPool2d(2,2)
self.conv2 = nn.Conv2d(64, 128, 5)
self.conv3 = nn.Conv2d(128, 256, 5)
self.conv4 = nn.Conv2d(256,320,5)
self.fc1 = nn.Linear(250880,2048)
self.fc2 = nn.Linear(2048, 1024)
self.fc3 = nn.Linear(1024, 512)
self.fc4 = nn.Linear(512, 6)
def forward(self, x):
x = self.conv1(x)
x = nn.ReLU(x)
x = self.pool(x)
x = self.conv2(x)
x = nn.ReLU(x)
x = self.pool(x)
x = self.conv3(x)
x = nn.ReLU(x)
x = self.pool(x)
x = self.conv4(x)
x = nn.ReLU(x)
x = self.pool(x)
x = x.view(-1, 250880)
x = self.fc1(x)
x = self.fc2(x)
x = self.fc3(x)
x = self.fc4(x)
return x
Здесь self.fc4 = nn.Linear (512, 6) - это мой последний уровень. Я запустил эту сеть, но результаты хорошие, но не очень убедительные. Я хочу использовать опорную векторную регрессию вместо nn.Linear, но я не нахожу никакой помощи. Пожалуйста, помогите мне в этом отношении. Надеюсь, я четко описал свою проблему.