graph LR
Model_Series_Orchestrator["Model Series Orchestrator"]
Configuration_Manager["Configuration Manager"]
Data_Pipeline["Data Pipeline"]
Model_Architecture["Model Architecture"]
Training_Engine["Training Engine"]
Evaluation_Engine["Evaluation Engine"]
Checkpoint_State_Management["Checkpoint & State Management"]
Model_Series_Orchestrator -- "configures" --> Configuration_Manager
Configuration_Manager -- "provides settings" --> Model_Series_Orchestrator
Model_Series_Orchestrator -- "initiates training" --> Training_Engine
Model_Series_Orchestrator -- "initiates evaluation" --> Evaluation_Engine
Data_Pipeline -- "feeds data to" --> Training_Engine
Data_Pipeline -- "feeds data to" --> Evaluation_Engine
Model_Architecture -- "provides model to" --> Training_Engine
Model_Architecture -- "provides model to" --> Evaluation_Engine
Training_Engine -- "updates weights of" --> Model_Architecture
Training_Engine -- "saves state via" --> Checkpoint_State_Management
Evaluation_Engine -- "loads state via" --> Checkpoint_State_Management
Checkpoint_State_Management -- "loads/saves model weights" --> Model_Architecture
click Model_Series_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ShuffleNet-Series/Model_Series_Orchestrator.md" "Details"
click Data_Pipeline href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ShuffleNet-Series/Data_Pipeline.md" "Details"
click Model_Architecture href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ShuffleNet-Series/Model_Architecture.md" "Details"
click Training_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ShuffleNet-Series/Training_Engine.md" "Details"
click Checkpoint_State_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/ShuffleNet-Series/Checkpoint_State_Management.md" "Details"
The ShuffleNet-Series project is architected as a flexible deep learning research repository, structured around distinct model series (e.g., ShuffleNetV1, ShuffleNetV2, DetNAS, OneShot). Each series' workflow is orchestrated by a dedicated Model Series Orchestrator, which, after receiving configuration from the Configuration Manager, drives the data flow from the Data Pipeline to the Training Engine and Evaluation Engine. The core Model Architecture defines the neural network, whose parameters are iteratively refined by the Training Engine and persisted through Checkpoint & State Management. This modular design facilitates independent development and evaluation of different ShuffleNet variants, making it ideal for a "Model Zoo" paradigm where each model is a self-contained unit interacting with shared infrastructure for data handling, training, and evaluation.
Model Series Orchestrator [Expand]
The primary entry point for each model series, responsible for initiating and managing the overall training or evaluation workflow. It acts as the orchestrator, coordinating interactions between other components.
Related Classes/Methods:
DetNAS.train:mainOneShot.train:mainShuffleNetV1.train:mainShuffleNetV2.train:mainShuffleNetV2.ExLarge.eval:mainShuffleNetV2.Large.train:main
Handles the parsing of command-line arguments and the management of runtime configuration parameters, ensuring each model series operates with the correct settings.
Related Classes/Methods:
DetNAS.train:get_argsOneShot.train:get_argsShuffleNetV1.train:get_argsShuffleNetV2.train:get_argsShuffleNetV2.ExLarge.eval:get_argsShuffleNetV2.Large.train:get_args
Data Pipeline [Expand]
Responsible for loading, augmenting, and preprocessing raw input data, transforming it into a format suitable for consumption by the neural network models.
Related Classes/Methods:
DetNAS.train:DataIteratorDetNAS.train:OpencvResizeDetNAS.train:ToBGRTensorOneShot.train:DataIteratorOneShot.train:OpencvResizeOneShot.train:ToBGRTensorShuffleNetV1.train:DataIteratorShuffleNetV1.train:OpencvResizeShuffleNetV1.train:ToBGRTensorShuffleNetV2.train:DataIteratorShuffleNetV2.train:OpencvResizeShuffleNetV2.train:ToBGRTensorShuffleNetV2.ExLarge.eval:DataIteratorShuffleNetV2.ExLarge.eval:OpencvResizeShuffleNetV2.ExLarge.eval:ToBGRTensorShuffleNetV2.Large.train:DataIteratorShuffleNetV2.Large.train:OpencvResizeShuffleNetV2.Large.train:ToBGRTensorShuffleNetV2.Large.train:LightingShuffleNetV2.Large.train:ColorNormalize
Model Architecture [Expand]
Defines the specific neural network structure for each model series, including its layers, blocks, and the forward pass logic.
Related Classes/Methods:
DetNAS.networkDetNAS.blocksOneShot.networkOneShot.blocksShuffleNetV1.networkShuffleNetV1.blocksShuffleNetV2.networkShuffleNetV2.blocksShuffleNetV2.ExLarge.networkShuffleNetV2.Large.network
Training Engine [Expand]
Encapsulates the core training loop, managing the iterative process of model optimization, including forward and backward passes, loss calculation, and optimizer steps. It also utilizes utility functions for metrics.
Related Classes/Methods:
DetNAS.train:trainOneShot.train:trainShuffleNetV1.train:trainShuffleNetV2.train:trainShuffleNetV2.Large.train:train
Responsible for assessing the model's performance on unseen data, typically a validation or test set, to gauge its generalization capabilities. It also utilizes utility functions for metrics.
Related Classes/Methods:
DetNAS.train:validateOneShot.train:validateShuffleNetV1.train:validateShuffleNetV2.train:validateShuffleNetV2.ExLarge.eval:validateShuffleNetV2.Large.train:validate
Checkpoint & State Management [Expand]
Manages the persistence and retrieval of model weights, optimizer states, and other training-related information, enabling training resumption and model deployment.
Related Classes/Methods: