An object detection and classification system to accurately identify Indian coins using YOLO and PyTorch, enhanced with MLOps tools like DVC and MLFlow for efficient data versioning, experiment tracking, and deployment.
- Clone the repository
- Create a virtual environment using setup.sh:
bash setup.sh
- Activate the virtual environment (optional, if not done in step 2)
source activate ./venv
- Update config:
config/config.yaml
- Update the entity:
src/INRCoinSense/entity/config_entity.py
- Update the configuration manager:
src/INRCoinSense/config/configuration.py
- Update the components:
src/INRCoinSense/components
- Update the pipeline:
src/INRCoinSense/pipeline
- Update entrypoint:
main.py
Get these from the DAGsHub server.
Commands to set up the MLFlow environment:
- MLFlow Tracking URI:
export MLFLOW_TRACKING_URI=https://dagshub.com/heydido/INRCoinSense.mlflow
- MLFlow Tracking Username:
export MLFLOW_TRACKING_USERNAME=<user_name>
- MLFlow Tracking Password:
export MLFLOW_TRACKING_PASSWORD=<********>
MlFlow tracking server: INRCoinSense
Commands to set up the DVC environment:
-
Initialize DVC (onetime):
dvc init
-
Write the DVC file:
dvc.yaml
(onetime) -
Run the DVC pipeline:
dvc repro
Note:
"dvc repro" will fail if you haven't exported the MLFlow variables as explained in the MLFlow Setup section. -
Track each experiment changes with git:
git add . git commit -m "DVC: <message>" git push origin main
-
Add DVC Remote (one-time):
dvc remote add origin s3://dvc dvc remote modify origin endpointurl https://dagshub.com/heydido/INRCoinSense.s3
-
Push the DVC changes:
dvc remote default origin (onetime) dvc push
for better clarity, visit the DAGsHub repo: INRCoinSense
Owner: Aashish Kumar
This project is created using a public template I created: MLProjectTemplate