DPP is mainly used through several model objects. These objects contain the methods used to load image & label datasets, control training hyperparameters and data augmentation, build and connect model layers, and train models.
There are 6
Model objects is DPP for each problem type that it supports:
ClassificationModel, for classifying images into different classes (like objects or biotic stress)
RegressionModel, for determining parameter values (like leaf counts) from images
SemanticSegmentationModel, for determining binary and multi-class segmentation masks for images
ObjectDetectionModel, for detecting objects in images using the YOLO model
CountCeptionModel, for counting objects in images using the Countception model
HeatmapObjectCountingModel, for counting objects in images by determining heatmaps of their locations. This works similarly to semantic segmentation otherwise.
All of the models have the same interface for creating them (using
RegressionModel as an example):
import deepplantphenomics as dpp model = dpp.RegressionModel(debug=False, load_from_saved=False, save_checkpoints=True, initialize=True, tensorboard_dir=None, report_rate=100, save_dir=None)
debugcontrols the printing of extra debugging information during model construction, data loading, and model training.
load_from_savedis an optional string with a Tensorflow checkpoint file to load model variables from.
save_checkpointsis a flag for whether to periodically save checkpoint files during training instead of just at the end of training.
initializetoggles the creation of a new Tensorflow session with an empty graph with the model object. This should almost always be left at
tensorboard_diris an optional string with a directory to place Tensorboard summary files to during training.
report_ratecontrols how often console output and Tensorboard summaries on training results are produced.
save_diris an optional string with a directory to save checkpoint files to.
Most of the hyperparameter setting methods, all of the layer creation methods, and some of the more general data loaders are shared between all of the
Model objects. See Model Options, Neural Network Layers, and Loaders for more info about those shared methods and methods unique to certain