Model Types
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 imagesSemanticSegmentationModel, for determining binary and multi-class segmentation masks for imagesObjectDetectionModel, for detecting objects in images using the YOLO modelCountCeptionModel, for counting objects in images using the Countception modelHeatmapObjectCountingModel, for counting objects in images by determining heatmaps of their locations. This works similarly to semantic segmentation otherwise.
Model Creation
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 atTrue.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.
Model Methods
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 Model objects.