Ayush Chaurasia
commited on
Improve performance of dataset Logger (#2943)
Browse files* Improve performance of Dataset Logger
* Fix scaling bug
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, *
|
250 |
cls = int(cls)
|
251 |
-
box_data.append({"position": {"
|
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),
|