Getting Started
This document details the process of working with this project. We recommend working inside an IDE like Visual Studio Code or JupyterLab as you need to clone the github repository for this project.
Simply clone the repo in your desired file directory using your favorite terminal.
git clone https://github.com/iragca/DS413-final-project.gitOr you can do so graphically in your favorite IDE.
Setup¶
We work with uv. You can install it here
Python 3.13 is also required and can be installed by running:
uv python install 3.13Read more about this here.
Then install dependencies:
make requirements # Install dependenciesThe most important dependencies used in this project are:
PyTorch. A Python framework we use to build convolutional neural networks.
We also use Hugging Face Hub and kagglehub to download datasets.
Dataset Manager¶
make data # Run the CLI dataset managerFunctionalities
Download datasets
Deduplicated files
Splitting the MegaPlantDataset
How to Navigate¶
To navigate the CLI dataset manager, you will need a keyboard. The following tables shows the hotkeys needed for navigation.
| Keybind | Functionality |
|---|---|
Ctrl+C | Quit the app or current menu |
Arrow Keys | Navigate choices |
Space | Select choice (multiple Choices) |
Enter | Confirm choice |
Downloading a datatset¶
You can download a dataset by using the CLI dataset manager by selecting the Download datasets option. If you’ve just started working with this project, then you need to download the MegaPlant dataset (megaplant_dataset) locally, will take up ~2.20GB of storage.
You can also individually download the datasets that compose the MegaPlant dataset.
plantvillage_dataset~2.18GBplant_doc_dataset~1.00GBdiamos_dataset~8.50GB
Development¶
make lint # Lint the code
make format # Format the code
make docs # Run a local jupyter-book server for documentation
make tests # Run unit testsProject Organization¶
├── LICENSE <- Open-source license if one is chosen
├── Makefile <- Makefile with convenience commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── docs <- A default mkdocs project; see www.mkdocs.org for details
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── pyproject.toml <- Project configuration file with package metadata for
│ lib and configuration for tools like black
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── setup.cfg <- Configuration file for flake8
│
└── lib <- Source code for use in this project.
│
├── __init__.py <- Makes lib a Python module
│
├── config.py <- Store useful variables and configuration
│
├── dataset.py <- Scripts to download or generate data
│
├── features.py <- Code to create features for modeling
│
├── modeling
│ ├── __init__.py
│ ├── predict.py <- Code to run model inference with trained models
│ └── train.py <- Code to train models
│
└── plots.py <- Code to create visualizations- Hughes, David. P., & Salathe, M. (2015). An open access repository of images on plant health to enable the development of mobile disease diagnostics. 10.48550/ARXIV.1511.08060
- Singh, D., Jain, N., Jain, P., Kayal, P., Kumawat, S., & Batra, N. (2020). PlantDoc: A Dataset for Visual Plant Disease Detection. Proceedings of the 7th ACM IKDD CoDS and 25th COMAD, 249–253. 10.1145/3371158.3371196
- Fenu, G., & Malloci, F. M. (2021). DiaMOS Plant: A Dataset for Diagnosis and Monitoring Plant Disease. Agronomy, 11(11), 2107. 10.3390/agronomy11112107