-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Description
Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
None
OS Platform and Distribution
Ubuntu 22.04.5 LTS
Python Version
3.10.12
MediaPipe Model Maker version
No response
Task name (e.g. Image classification, Gesture recognition etc.)
Custom model training for Object Detection
Describe the actual behavior
I run my python script for custom model training for OD, so my script train the custom model successfully but when it comes to evaluate it , it was killed due to memory loss as I used batch size = 16 which is too much , so I started running it again by reducing batch size from 16 to 8 while evaluating but instead of running only evaluation , this started running from scratch that is started model training again but I only want to run evaluation and inference.
Describe the expected behaviour
I only want to run evaluation and inference of custom model trained for Object Detection , instead of running training from scratch.
Standalone code/steps you may have used to try to get what you need
import os import tensorflow as tf assert tf.version.startswith('2') from mediapipe_model_maker import object_detector train_dataset_path = "path/to/my/train_dataset" validation_dataset_path = "path/to/my/validation_dataset" # Load dataset train_data = object_detector.Dataset.from_coco_folder(train_dataset_path, cache_dir=train_dataset_path) validation_data = object_detector.Dataset.from_coco_folder(validation_dataset_path, cache_dir=validation_dataset_path) print("train_data size:", train_data.size) print("validation_data size:", validation_data.size) # Model settings spec = object_detector.SupportedModels.MOBILENET_MULTI_AVG hparams = object_detector.HParams( export_dir='exported_model', batch_size=16, # ✅ Best for RTX 5060 (8GB) learning_rate=0.0005, epochs=30 # ✅ Enough for 1.5 lakh images ) options = object_detector.ObjectDetectorOptions( supported_model=spec, hparams=hparams ) model = object_detector.ObjectDetector.create( train_data=train_data, validation_data=validation_data, options=options ) loss, coco_metrics = model.evaluate(validation_data, batch_size=8) print(f"Validation loss: {loss}") print(f"Validation coco metrics: {coco_metrics}")