DARTS components¶
Components
The idea behind the Architecture of darts-nextgen is to provide Components to the user.
Users should pick their components and put them together in their custom pipeline, utilizing their own parallelization framework.
Pipeline v2 shows how this could look like for a simple sequential pipeline - hence without parallelization framework.
There are many different components implemented, all within the different darts packages.
Here is an overview over the currently implemented components and their hardware requirements / bounds.
Note: the following table was generated from the public re-exports in each package's __init__.py.
I inferred resource requirements conservatively from each component's role (data acquisition -> network/disk; preprocessing/postprocessing/metrics -> CPU/disk; training/ensembling -> heavy compute and often GPU). Where unclear I made reasonable assumptions and marked them in the table. If you want tighter/verified bounds I can inspect individual implementations and tests to refine the entries.
Next to the components, there exist several helper functions for e.g. searching Sentinel-2 scenes or metrics for the training. Have a look at the Reference for a list of all functions and a describtion of what they do.
-
Network: Requires network access if ↩
-
Disk: Reads from or writes to disk ↩
-
Compute: Does some heavy compute, utilizing the CPU ↩
-
GPU: Supports offloading compute to the GPU ↩
-
Wrapper for multiple preprocessing steps, handling compatibility with each other ↩↩
-
Wrapper for multiple postprocessing steps ↩