The goal of the project is to deliver a deep-learning, instance segmentation model for an open-source dataset of Oxford Pets.
The project consists of a training and evaluation scripts wrapped with Kedro project. Additionally, the project is prepared to be run on Google Cloud Platform, where it can be provisioned using Terraform.
The summary of experiments can be found in docs/summary.md.
This is your new Kedro project, which was generated using Kedro 0.18.1.
Take a look at the Kedro documentation to get started.
Declare any dependencies in src/environment.yml for conda installation.
To install them, run:
conda env create -f src/environment.yml
You can run your Kedro project with:
kedro run
Four pipelines are available:
data_processingtrain_modelevaluate_modeloptimize_hyperparams
Each of them is described in greater details in its corresponding README, which can be found in src/pipelines/pipeline_name directory.
To run the model on Google Cloud Platform:
- Install Terraform, make an account and project on GCP
- Add credentials to enable access to GCP by Terraform to
conf/local. Add your credentials to WandB to GCP Secret Manager. - Change project name and credentials path in the
terraform/main.tffile to the ones you created in steps 1. and 2. - Run
terraform applylocally. It should build the whole project from scratch. - When it is ready, SSH to your new VM through GCP interface. The repository with code should already be available.
Run
. setup.shto setup conda environment and log to WandB. - Now, you can run Kedro pipelines in the Cloud!
If you want to store model checkpoints in Cloud Storage remember to set correct value to
checkpoints_dir_pathparameter. - After finishing work, run
terraform destroyto destroy all the provisioned resources. If your Cloud Storage bucket is not empty, it will not be deleted.
Unfortunately, the machines with GPUs are unavailable when using free GCP trial, so we were not able to experiment with multi-GPU computations.