Overview
Task is a self-contained job unit which runs as a separate executable and, in fact, in a separate Docker container. It reads inputs from and writes results to corresponding directories (with fixed structure) and prints messages to stderr/stdout.
For compatibility with Supervisely a task implementation should meet some requirements. So:
-
For NN training, just use
TaskHelperTrain
class. -
For NN inference, just use
TaskHelperInference
class... and report when inference is finished withreport_inference_finished
-
For other tasks, use
TaskPaths
class to determine in/out directories.
Furthermore, it is useful
-
to count and report some progress;
-
to report metrics from training;