Модель YOLOv1 дает одинаковые результаты для каждого изображения.Python

Программы на Python
Ответить
Anonymous
 Модель YOLOv1 дает одинаковые результаты для каждого изображения.

Сообщение Anonymous »

Модель (Yolov1) написана на PyTorch. Было обучено 30 эпох, для обучения использовался AdamOptimazer, скорость обучения = 1e-6, пакет_размер = 64. Плотный набор данных DeepScoresV2: в обучающей выборке 1362 фотографии, из набора данных я беру только 3 класса. Но модель возвращает один и тот же результат для всех фотографий. В чем может быть проблема?
Задача — определить нотную запись на нотном листе, а также найти специальные знаки (награду и ключи).
Пример (в пустые ячейки, это ошибка функции, выводящей изображение, в самом наборе данных все нормально):
пример
Распределение классов в обучающей выборке (я беру только «подпорка», 'staff' и 'ottavaBracket' из них):
классы
Архитектура модели:

Код: Выделить всё

class ConvCombo(nn.Module):
def __init__(self, in_channels: int, out_channels: int, kernel_size: int, stride: int = 1, padding=1):
super().__init__()
self._stack = nn.Sequential(
nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=stride, padding=padding, bias=False),
# nn.BatchNorm2d(out_channels),
nn.LeakyReLU(0.1),
)
def forward(self, x):
return self._stack(x)

class YOLOv1(nn.Module):
def __init__(self, S: int=7, C: int=20, B: int=2):  # as it was in original article
super().__init__()
self._conv_stack = nn.Sequential(
ConvCombo(in_channels=3, out_channels=64, kernel_size=S, stride=2, padding=3),
nn.MaxPool2d(kernel_size=2, stride=2),
ConvCombo(in_channels=64, out_channels=192, kernel_size=3),
nn.MaxPool2d(kernel_size=2, stride=2),
ConvCombo(in_channels=192, out_channels=128, kernel_size=1, padding=0),
ConvCombo(in_channels=128, out_channels=256, kernel_size=3),
ConvCombo(in_channels=256, out_channels=256, kernel_size=1, padding=0),
ConvCombo(in_channels=256, out_channels=512, kernel_size=3),
nn.MaxPool2d(kernel_size=2, stride=2),
# x4 ->
ConvCombo(in_channels=512, out_channels=256, kernel_size=1, padding=0),
ConvCombo(in_channels=256, out_channels=512, kernel_size=3),
ConvCombo(in_channels=512, out_channels=256, kernel_size=1, padding=0),
ConvCombo(in_channels=256, out_channels=512, kernel_size=3),
ConvCombo(in_channels=512, out_channels=256, kernel_size=1, padding=0),
ConvCombo(in_channels=256, out_channels=512, kernel_size=3),
ConvCombo(in_channels=512, out_channels=256, kernel_size=1, padding=0),
ConvCombo(in_channels=256, out_channels=512, kernel_size=3),
# 
ConvCombo(in_channels=1024, out_channels=512, kernel_size=1, padding=0),
ConvCombo(in_channels=512, out_channels=1024, kernel_size=3),
ConvCombo(in_channels=1024, out_channels=512, kernel_size=1, padding=0),
ConvCombo(in_channels=512, out_channels=1024, kernel_size=3),
# 

Подробнее здесь: [url]https://stackoverflow.com/questions/79358877/the-yolov1-model-produces-the-same-results-for-each-image[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»