Library structure#
Introduction#
Eztorch as a library has a specific organization for how and where the files are created. Names of folders and files should be informative of their content.
General structure#
The General tree structure of Eztorch is the following:
eztorch
├── docs
├── eztorch
├── run
└── tests
Doc#
In docs/
, you will find source documentation files about Eztorch such as in this file. We aim to make Eztorch accessible to anyone.
Eztorch#
The folder eztorch/
contains the actual library that we will detail below.
Run#
The folder run/
contains various scripts to make training or evaluation. These scripts thanks a Hydra configuration should perform a task agnostically to specific classes or architectures and be able to generalize to any relevant Hydra configuration.
Tests#
The folder tests/
contains various tests to ensure that components in Eztorch properly work.
As a general rule of thumb, the best would be to test individual components every time they are added, which is not the case for now.
Library structure#
The tree structure of the library is the following:
eztorch/eztorch
├── callbacks
├── configs
├── datamodules
├── datasets
├── evaluation
├── losses
├── models
├── optimizers
├── schedulers
├── transforms
├── utils
└── visualization
Callbacks#
The callbacks/
folder contains callbacks to feed the trainer based on Pytorch-Lightning.
Datamodules#
The datamodules/
folder contains datamodules for various image and video datasets.
Datasets#
The datasets/
folder contains datasets tools for various image and video datasets.
Among these tools, there are:
Datasets for videos, for example
datasets/hmdb51.py
.Wrapper around datasets, for example
datasets/dict_dataset.py
.Other tools such as clip samplers for video clip generation in
datasets/clip_samplers/
.
Evaluation#
The evaluation/
folder contains the tools for evaluation networks.
For now, there are:
Linear classifier evaluation for SSL protocol.
Testing time augmentations functions to average predictions of several augmentations.
Losses#
The losses/
folder contains individual component losses.
Models#
The models/
folder contains models and tools to configure the various models supported by Eztorch for images and videos.
It follows the following structure:
eztorch/eztorch/models
├── heads
├── modules
├── siamese
└── trunks
Heads#
The heads/
folder contains various heads for your models.
Heads are the part of your models that should specialize to a task:
Linear heads for classification task.
MLP heads for self-supervised learning projections and predictions.
…
Modules#
The modules/
folder contains layers or modules for your models that accomplish a specific action.
It could be gathering tensors, or splitting batch normalization layers in parts, …
Siamese#
The siamese/
folder contains siamese models for self-supervised learning.
Currently implemented methods are:
MoCo (v1, v2, v3)
ReSSL
SCE
SimCLR
Trunks#
The trunks/
folder contains the trunks, backbone, or encoders, used in Eztorch for Image and Video modalities.
Timm and Pytorchvideo models are also available.
Optimizers#
The optimizers/
folder contains the custom optimizers (such as LARS) but also factories to easily instantiate them.
Schedulers#
The schedulers/
folder contains the custom schedulers (such as Cosine Annealing) but also factories to easily instantiate them.
Transforms#
The transforms/
folder contains all custom transforms defined by Eztorch for images and videos.
Transforms from Torchvision or Kornia are also available. The latter permits GPU transforms.
Utils#
The utils/
folder contains all utils functions to help Eztorch functionalities and allow various training tricks.
Visualization#
The visualization/
contains tools to visualize data.