in src/sagemaker_defect_detection/detector.py [0:0]
def training_step(self, batch, batch_idx):
images, targets, _ = batch
if self.train_rpn:
targets = [{"boxes": t["boxes"]} for t in targets]
_, loss_dict = self(images, targets=targets)
loss = sum(loss for loss in loss_dict.values())
return OrderedDict({"loss": loss, "progress_bar": loss_dict, "log": loss_dict})
elif self.train_roi:
_, loss_dict = self(images, targets=targets)
loss = sum(loss for loss in loss_dict.values())
return OrderedDict({"loss": loss, "progress_bar": loss_dict, "log": loss_dict})
else:
images = list(image for image in images)
targets = [{k: v for k, v in t.items()} for t in targets]
loss_dict = self(images, targets=targets)
# loss keys: ['loss_classifier', 'loss_box_reg', 'loss_objectness', 'loss_rpn_box_reg']
loss = sum(loss for loss in loss_dict.values())
if not math.isfinite(loss.item()):
sys.exit(1)
return OrderedDict({"loss": loss, "progress_bar": loss_dict, "log": loss_dict})