Our API is intended to abstract out many of the redundant aspects of image/video based data representations in the AV space.
Our data model is centered around bricks, which are single data points that can be sampled. On top of bricks are
beams, which are collections of data points such as video. Finally, those are both encapsulated by datasets, which
extend from the PyTorch Dataset class. These datasets do a lot of the redundant work such as sampling.
class Brick:
|- <constructor> __init__(<string|dict>, <beam>)
|- <static function> deserialized(<dict>) -> Brick
|- <static function> deserializes(<string>) -> Brick
|- <function> serialized() -> self
|- <function> serialize() -> self
|- <abstract property> valid() -> bool
|- <abstract function> get_input() -> Tensor
|- <abstract function> get_metadata() -> Tensor
|- <abstract function> get_truth() -> Tensor
Explanation of directory structure:
training
|- configs > configuration files to easily manage training/validation hyperparameters
|- logs > log files
|- nets > all pytorch neural network models stored here
|- objects > objects for encapsulation
|- save > default save location for all nets
|- scripts > scripts for preprocessing, reprocessing, etc.
|- utils > utility functions
If you wish to run a new experiment, please add your config.json file into the configs folder. See configs/CONFIGS.md for
a detailed explanation of how to structure your configuration file. To run your experiment, simply use the command line
command python3 train.py --config <config filepath>.
If you wish to add a new network, please add your network to the nets folder. Set a variable Net to point to your class
so the training script can automatically find your network.
This is a version of the repository that follows PEP8 guidelines, please comment on GitHub code, file an issue, or correct any errors with a pull request.