Более быстрый RCNN с Pytorch Lightning не показывает лучших результатов mAPPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Более быстрый RCNN с Pytorch Lightning не показывает лучших результатов mAP

Сообщение Anonymous »

Я попытался точно настроить модель для обнаружения объектов двоичного класса.
Ниже приведен код.
В наборе данных COCO есть только один класс с меткой 1 для классификации. это как объект.
Тензорная доска показывает плохие результаты. Может кто-нибудь помочь мне понять, почему он не дает лучших результатов. Даже YOLO показывает себя лучше. Думаю, я допускаю здесь какую-то ошибку.
Память и точность здесь отрицательны.

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

import numpy as np
from torchmetrics.detection import IntersectionOverUnion
from torchmetrics.detection import MeanAveragePrecision
import math

class CocoDNN(L.LightningModule):
def __init__(self):
super().__init__()
self.model = models.detection.fasterrcnn_mobilenet_v3_large_fpn(weights="DEFAULT")

self.metric = MeanAveragePrecision(iou_type="bbox",average="macro",class_metrics = True, iou_thresholds=[0.5, 0.75],extended_summary=True, backend="faster_coco_eval")

def forward(self, images, targets=None):
return self.model(images, targets)

def training_step(self, batch, batch_idx):
imgs, annot = batch
batch_losses = []
for img_b, annot_b in zip(imgs, annot):
#print(len(img_b), len(annot_b))
if len(img_b) == 0:
continue
loss_dict = self.model(img_b, annot_b)
losses = sum(loss for loss in loss_dict.values())
#print(losses)
batch_losses.append(losses)
batch_mean  = torch.mean(torch.stack(batch_losses))
self.log('train_loss', batch_mean, on_step=True, on_epoch=True, prog_bar=True, logger=True)
return batch_mean

def validation_step(self, batch, batch_idx):
imgs, annot = batch
targets ,preds = [], []
for img_b, annot_b in zip(imgs, annot):
if len(img_b) == 0:
continue
if len(annot_b)> 1:
targets.extend(annot_b)
else:
targets.append(annot_b[0])

loss_dict = self.model(img_b, annot_b)

if len(loss_dict)> 1:
preds.extend(loss_dict)
else:
preds.append(loss_dict[0])

self.metric.update(preds, targets)
map_results = self.metric.compute()
self.log('precision', map_results['precision'].mean().float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
self.log('recall', map_results['recall'].mean().float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
self.log('map_50', map_results['map_50'].float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
self.log('map_75', map_results['map_75'].float().item(),on_step=True, on_epoch=True, prog_bar=True, logger=True)
return map_results['map_75']

def configure_optimizers(self):
return optim.SGD(self.parameters(), lr=0.001, momentum=0.9, weight_decay=0.0005)
Код трейнера

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

dnn = CocoDNN()
#version=1,
logger = TensorBoardLogger(save_dir=os.getcwd(), name="runs")
#limit_train_batches=100,
trainer = L.Trainer(max_epochs=100,accelerator='gpu',logger=logger,log_every_n_steps=50)
trainer.fit(model=dnn, train_dataloaders=TRAIN_DATALOADER,val_dataloaders=VAL_DATALOADER)
Изображение
Изображение



Подробнее здесь: https://stackoverflow.com/questions/791 ... esults-map
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вывод PyTorch Lightning после каждой эпохи
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Параллелизуйте проверку одной эпохи с обучением другой в Pytorch Lightning.
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как сбросить матрицу путаницы с помощью регистратора TensorBoard в pytorch-lightning?
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Ошибки при развертывании модели PyTorch Lightning в учебных заданиях AWS SageMaker: SMDDP не поддерживает сокращениеOp
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Получите пути к сохраненным контрольным точкам из Pytorch-Lightning ModelCheckpoint.
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

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