Mercurial > repos > bgruening > json2yolosegment
comparison yolov8.py @ 2:158e6ce48345 draft
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools commit 739bcabf09bdb9c291121a6b1f889dabe1a98ea9
author | bgruening |
---|---|
date | Fri, 11 Jul 2025 06:49:20 +0000 |
parents | dfda27273ead |
children | 97bc82ee2a61 |
comparison
equal
deleted
inserted
replaced
1:dfda27273ead | 2:158e6ce48345 |
---|---|
173 | 173 |
174 | 174 |
175 # | 175 # |
176 # Functions | 176 # Functions |
177 # | 177 # |
178 | |
179 def safe_rmtree(path): | |
180 try: | |
181 shutil.rmtree(path) | |
182 except OSError: | |
183 time.sleep(1) | |
184 shutil.rmtree(path, ignore_errors=True) | |
185 | |
186 | |
178 # Train a new model on the dataset mentioned in yaml file | 187 # Train a new model on the dataset mentioned in yaml file |
179 def trainModel(model_path, model_name, yaml_filepath, **kwargs): | 188 def trainModel(model_path, model_name, yaml_filepath, **kwargs): |
180 if "imgsz" in kwargs: | 189 if "imgsz" in kwargs: |
181 image_size = kwargs['imgsz'] | 190 image_size = kwargs['imgsz'] |
182 else: | 191 else: |
262 else: | 271 else: |
263 init_lr = 1.0 | 272 init_lr = 1.0 |
264 | 273 |
265 train_save_path = os.path.expanduser('~/runs/' + args.mode + '/train/') | 274 train_save_path = os.path.expanduser('~/runs/' + args.mode + '/train/') |
266 if os.path.isdir(train_save_path): | 275 if os.path.isdir(train_save_path): |
267 shutil.rmtree(train_save_path) | 276 safe_rmtree(train_save_path) |
268 # Load a pretrained YOLO model (recommended for training) | 277 # Load a pretrained YOLO model (recommended for training) |
269 if args.model_format == 'pt': | 278 if args.model_format == 'pt': |
270 model = YOLO(os.path.join(model_path, model_name + "." + args.model_format)) | 279 model = YOLO(os.path.join(model_path, model_name + "." + args.model_format)) |
271 else: | 280 else: |
272 model = YOLO(model_name + "." + args.model_format) | 281 model = YOLO(model_name + "." + args.model_format) |
283 # Validate the trained model | 292 # Validate the trained model |
284 def validateModel(model): | 293 def validateModel(model): |
285 # Remove prediction save path if already exists | 294 # Remove prediction save path if already exists |
286 val_save_path = os.path.expanduser('~/runs/' + args.mode + '/val/') | 295 val_save_path = os.path.expanduser('~/runs/' + args.mode + '/val/') |
287 if os.path.isdir(val_save_path): | 296 if os.path.isdir(val_save_path): |
288 shutil.rmtree(val_save_path) | 297 safe_rmtree(val_save_path) |
289 # Validate the model | 298 # Validate the model |
290 metrics = model.val() # no args needed, dataset & settings remembered | 299 metrics = model.val() # no args needed, dataset & settings remembered |
291 metrics.box.map # map50-95 | 300 metrics.box.map # map50-95 |
292 metrics.box.map50 # map50 | 301 metrics.box.map50 # map50 |
293 metrics.box.map75 # map75 | 302 metrics.box.map75 # map75 |
325 run_save_dir = kwargs['run_dir'] | 334 run_save_dir = kwargs['run_dir'] |
326 else: | 335 else: |
327 # Remove prediction save path if already exists | 336 # Remove prediction save path if already exists |
328 pred_save_path = os.path.expanduser('~/runs/' + args.mode + '/predict/') | 337 pred_save_path = os.path.expanduser('~/runs/' + args.mode + '/predict/') |
329 if os.path.isdir(pred_save_path): | 338 if os.path.isdir(pred_save_path): |
330 shutil.rmtree(pred_save_path) | 339 safe_rmtree(pred_save_path) |
331 if "foldername" in kwargs: | 340 if "foldername" in kwargs: |
332 save_folder_name = kwargs['foldername'] | 341 save_folder_name = kwargs['foldername'] |
333 # infer on a local image or directory containing images/videos | 342 # infer on a local image or directory containing images/videos |
334 prediction = model.predict(source=source_datapath, save=True, stream=True, | 343 prediction = model.predict(source=source_datapath, save=True, stream=True, |
335 conf=confidence, imgsz=image_size, | 344 conf=confidence, imgsz=image_size, |