graph LR
Framework_Compatibility_Layer["Framework Compatibility Layer"]
TensorFlow_Deep_Learning_Engine["TensorFlow Deep Learning Engine"]
PyTorch_Deep_Learning_Engine["PyTorch Deep Learning Engine"]
Framework_Compatibility_Layer -- "Uses" --> TensorFlow_Deep_Learning_Engine
Framework_Compatibility_Layer -- "Uses" --> PyTorch_Deep_Learning_Engine
The Core Deep Learning Engine subsystem in DeepLabCut is designed to abstract the complexities of underlying deep learning frameworks (TensorFlow/PyTorch) while providing robust capabilities for neural network model definition, training, inference (pose prediction), and internal evaluation. This modular design adheres to the project's emphasis on decoupling high-level application flow from specific deep learning implementations.
This component acts as a crucial abstraction layer, offering a unified interface for the rest of the DeepLabCut application to interact seamlessly with either the TensorFlow or PyTorch deep learning backends. It encapsulates framework-specific calls, allowing for flexible switching between implementations without altering higher-level logic.
Related Classes/Methods:
deeplabcut.compat.analyze_videos(657:975)deeplabcut.compat.create_tracking_dataset(978:1108)deeplabcut.compat.return_train_network_path(310:373)
This component is the dedicated computational engine for all deep learning operations performed using the TensorFlow framework. It encompasses the definition, training, and inference of neural network models for pose estimation, along with utilities for dataset management and model configuration specific to TensorFlow.
Related Classes/Methods:
deeplabcut.pose_estimation_tensorflow.nnets.base.BasePoseNet(18:245)deeplabcut.pose_estimation_tensorflow.datasets.pose_base.BasePoseDataset(16:36)deeplabcut.pose_estimation_tensorflow.core.train(146:313)deeplabcut.pose_estimation_tensorflow.core.predict
This component provides the core deep learning functionalities for model definition, training, and inference within the PyTorch framework. It includes a comprehensive set of APIs for various deep learning tasks, modules for data handling (preprocessing, post-processing), diverse model architectures (backbones, heads, loss functions), and runners to orchestrate training and inference workflows.
Related Classes/Methods:
deeplabcut.pose_estimation_pytorch.models.model.PoseModel(32:239)deeplabcut.pose_estimation_pytorch.models.backbones.base.BaseBackbone(26:83)deeplabcut.pose_estimation_pytorch.models.heads.base.BaseHead(32:140)deeplabcut.pose_estimation_pytorch.models.criterions.base.BaseCriterion(23:40)deeplabcut.pose_estimation_pytorch.data.base.Loader(36:372)deeplabcut.pose_estimation_pytorch.runners.base.Runner(51:117)deeplabcut.pose_estimation_pytorch.apis.trainingdeeplabcut.pose_estimation_pytorch.apis.analyze_images(217:382)deeplabcut.pose_estimation_pytorch.apis.videos