Я пытался повысить точность обнаружения объектов SSD с помощью Fastai v1 в наборе Pascal VO C 2007. Я обнаружил, что даже после примерно 20 эпох точность классификации не достигает тех уровней, которых удалось достичь многим ноутбукам. Мне удалось получить лучшую точность классификации при приближении к проблеме с подходом YOLO (не v3), где последний линейный слой содержит класс и активацию регрессии.
Некоторые проблемы, с которыми я столкнулся, пытаясь это сделать, были
- Обычный подход к обучению последнего слоя, за которым следовали последние 2 слоя, приводил к сильному переоснащению, и все было предсказано как категория
person
однако точность ограничивающей рамки была довольно хорошей. - Когда я попытался начать, тренируя все слои одновременно, я достиг немного лучшей точности, когда некоторые классы были правильно классифицированы более последовательно.
Некоторые из вещей, которые я пробовал в своих записных книжках, (https://github.com/sidravic/SSD_ObjectDetection_2/blob/master/train/MultiLabelObjectDetection_LargerAnchors-Updated-Hyperparams.ipynb)
- Использование более высоких выпадений до
0.58
- Softmax вместо сигмоида для вычисления порога.
- Снижение потерь с использованием
mean
вместо sum
(я понимаю, что это не имеет ничего общего с фактическим прогнозом)
Некоторые из вопросов, которые я здесь задаю, в чем разница между использованием self.oconv1.bias.data.zero_().add_(bias)
против bias=True
в Conv2D
Я понимаю, что смещение является аддитивным компонентом, но почему его обычно не используют в слое Conv2d
, установив bias=True
. Когда кто-то решит проигнорировать это?
lass OutConv(nn.Module):
def __init__(self, k, nin, num_classes, bias):
super().__init__()
self.k = k
self.oconv1 = nn.Conv2d(in_channels=nin, out_channels=((num_classes) * k), kernel_size=3, padding=1)
self.oconv2 = nn.Conv2d(nin, 4*k, 3, padding=1)
self.oconv1.bias.data.zero_().add_(bias)
def forward(self, x):
return [flatten_conv(self.oconv1(x), self.k),
flatten_conv(self.oconv2(x), self.k)]
Я включил все свои попытки как отдельные записные книжки, которые доступны здесь https://github.com/sidravic/SSD_ObjectDetection_2/tree/master/train
Я ищу для предложений / отзывов о том, как повысить точность классификации. Спасибо