Ayush Chaurasia commited on
Commit
801b469
1 Parent(s): d08575e

Improve performance of dataset Logger (#2943)

Browse files

* Improve performance of Dataset Logger

* Fix scaling bug

Files changed (1) hide show
  1. utils/wandb_logging/wandb_utils.py +5 -9
utils/wandb_logging/wandb_utils.py CHANGED
@@ -196,9 +196,9 @@ class WandbLogger():
196
  nc, names = (1, ['item']) if single_cls else (int(data['nc']), data['names'])
197
  names = {k: v for k, v in enumerate(names)} # to index dictionary
198
  self.train_artifact = self.create_dataset_table(LoadImagesAndLabels(
199
- data['train']), names, name='train') if data.get('train') else None
200
  self.val_artifact = self.create_dataset_table(LoadImagesAndLabels(
201
- data['val']), names, name='val') if data.get('val') else None
202
  if data.get('train'):
203
  data['train'] = WANDB_ARTIFACT_PREFIX + str(Path(project) / 'train')
204
  if data.get('val'):
@@ -243,16 +243,12 @@ class WandbLogger():
243
  table = wandb.Table(columns=["id", "train_image", "Classes", "name"])
244
  class_set = wandb.Classes([{'id': id, 'name': name} for id, name in class_to_id.items()])
245
  for si, (img, labels, paths, shapes) in enumerate(tqdm(dataset)):
246
- height, width = shapes[0]
247
- labels[:, 2:] = (xywh2xyxy(labels[:, 2:].view(-1, 4))) * torch.Tensor([width, height, width, height])
248
  box_data, img_classes = [], {}
249
- for cls, *xyxy in labels[:, 1:].tolist():
250
  cls = int(cls)
251
- box_data.append({"position": {"minX": xyxy[0], "minY": xyxy[1], "maxX": xyxy[2], "maxY": xyxy[3]},
252
  "class_id": cls,
253
- "box_caption": "%s" % (class_to_id[cls]),
254
- "scores": {"acc": 1},
255
- "domain": "pixel"})
256
  img_classes[cls] = class_to_id[cls]
257
  boxes = {"ground_truth": {"box_data": box_data, "class_labels": class_to_id}} # inference-space
258
  table.add_data(si, wandb.Image(paths, classes=class_set, boxes=boxes), json.dumps(img_classes),
 
196
  nc, names = (1, ['item']) if single_cls else (int(data['nc']), data['names'])
197
  names = {k: v for k, v in enumerate(names)} # to index dictionary
198
  self.train_artifact = self.create_dataset_table(LoadImagesAndLabels(
199
+ data['train'], rect=True, batch_size=1), names, name='train') if data.get('train') else None
200
  self.val_artifact = self.create_dataset_table(LoadImagesAndLabels(
201
+ data['val'], rect=True, batch_size=1), names, name='val') if data.get('val') else None
202
  if data.get('train'):
203
  data['train'] = WANDB_ARTIFACT_PREFIX + str(Path(project) / 'train')
204
  if data.get('val'):
 
243
  table = wandb.Table(columns=["id", "train_image", "Classes", "name"])
244
  class_set = wandb.Classes([{'id': id, 'name': name} for id, name in class_to_id.items()])
245
  for si, (img, labels, paths, shapes) in enumerate(tqdm(dataset)):
 
 
246
  box_data, img_classes = [], {}
247
+ for cls, *xywh in labels[:, 1:].tolist():
248
  cls = int(cls)
249
+ box_data.append({"position": {"middle": [xywh[0], xywh[1]], "width": xywh[2], "height": xywh[3]},
250
  "class_id": cls,
251
+ "box_caption": "%s" % (class_to_id[cls])})
 
 
252
  img_classes[cls] = class_to_id[cls]
253
  boxes = {"ground_truth": {"box_data": box_data, "class_labels": class_to_id}} # inference-space
254
  table.add_data(si, wandb.Image(paths, classes=class_set, boxes=boxes), json.dumps(img_classes),