Я создал нейронную сеть на pytorch, используя модель предварительной подготовки VGG16, и добавил свой дополнительный слой, чтобы определить принадлежность к одному из двух классов. Например, пчела или муравей.
model = models.vgg16(pretrained=True)
# Freeze early layers
for param in model.parameters():
param.requires_grad = False
n_inputs = model.classifier[6].in_features
# Add on classifier
model.classifier[6] = nn.Sequential(
nn.Linear(n_inputs, 256), nn.ReLU(), nn.Dropout(0.2),
nn.Linear(256, 2), nn.LogSoftmax(dim=1))
Модель хорошо работает с двумя классами, но если загрузить в нее изображение крокодила, скорее всего, его примут за пчелу)
Теперь я хочу сделать двоичный классификатор на основе этой модели, который определяет, например, пчелу или не пчелу (абсолютно любое изображение без пчелы)
Я только начинаю понимать нейронные сети, и мне нужен совет о том, правильно ли будет тренироваться в двух группах изображений, в одной из которых будут только пчелы, а в другой - несколько тысяч случайных изображений. Или это должно быть сделано по-другому?