MCPcopy
hub / github.com/obss/sahi / split_coco_as_train_val

Method split_coco_as_train_val

sahi/utils/coco.py:1282–1319  ·  view source on GitHub ↗

Split images into train-val and return as Coco objects. Args: train_split_rate: float numpy_seed: int random seed. Actually, this doesn't use numpy, but the random package from the standard library, but it is called numpy for compatibi

(self, train_split_rate: float = 0.9, numpy_seed: int = 0)

Source from the content-addressed store, hash-verified

1280 }
1281
1282 def split_coco_as_train_val(self, train_split_rate: float = 0.9, numpy_seed: int = 0) -> dict:
1283 """Split images into train-val and return as Coco objects.
1284
1285 Args:
1286 train_split_rate: float
1287 numpy_seed: int
1288 random seed. Actually, this doesn't use numpy, but the random package
1289 from the standard library, but it is called numpy for compatibility.
1290
1291 Returns:
1292 result: Dict with keys "train_coco" and "val_coco".
1293 """
1294 # divide images
1295 num_images = len(self.images)
1296 shuffled_images = copy.deepcopy(self.images)
1297 random.seed(numpy_seed)
1298 random.shuffle(shuffled_images)
1299 num_train = int(num_images * train_split_rate)
1300 train_images = shuffled_images[:num_train]
1301 val_images = shuffled_images[num_train:]
1302
1303 # form train val coco objects
1304 train_coco = Coco(
1305 name=self.name if self.name else "split" + "_train",
1306 image_dir=self.image_dir,
1307 )
1308 train_coco.images = train_images
1309 train_coco.categories = self.categories
1310
1311 val_coco = Coco(name=self.name if self.name else "split" + "_val", image_dir=self.image_dir)
1312 val_coco.images = val_images
1313 val_coco.categories = self.categories
1314
1315 # return result
1316 return {
1317 "train_coco": train_coco,
1318 "val_coco": val_coco,
1319 }
1320
1321 def export_as_yolo(
1322 self,

Callers 3

export_as_yoloMethod · 0.95
export_coco_as_yoloFunction · 0.80

Calls 2

CocoClass · 0.85
deepcopyMethod · 0.80

Tested by 1