Skip to main content

A PyTorch-based deep learning classifier training framework.

Project description

Classifier-trains

PyPI version Python version Downloads license CI

Install as a package

pip3 install classifier-trains

Examples of Pipeline Configuration

For example of pipeline configuration, please see pipeline_config_only_train.yml, pipeline_config_only_eval.yml, full_pipeline_config.yml.

# Run training or evaluation
python3 -m classifier_trains run --config <path to yml config> --output_dir <output_dir>

# Run training or evaluation with profiling, which will generate a profile report
python3 -m classifier_trains profile --config <path to yml config> --output_dir <output_dir>

# Compute mean and std of dataset
python3 -m classifier_trains compute-mean-and-std --dir-path <path to dataset>

# Get output mapping of dataset
python3 -m classifier_trains get-output-mapping --dir-path <path to dataset>

Expected Folder Structure for Dataset

Dataset Directory
├── train
│   ├── <class1>
│   │   ├── <image1>
│   │   └── ...
│   └── <class2>
│       ├── <image1>
│       └── ...
├── val
│   ├── <class1>
│   │   ├── <image1>
│   │   └── ...
│   └── <class2>
│       ├── <image1>
│       └── ...
└── eval
    ├── <class1>
    │   ├── <image1>
    │   └── ...
    └── <class2>
        ├── <image1>
        └── ...

Pipeline Parameter Table

Pipeline Parameters

Parameter Description Type Default Choices
enable_training Enable training bool False True, False
enable_evaluation Enable evaluation bool False True, False

Model Parameters

Parameter Description Type Default Choices
model Model architecture to use str / resnet18, resnet34, resnet50, resnet152, vgg11, vgg11_bn, vgg13, vgg13_bn, vgg16, vgg16_bn, vgg19, vgg19_bn, squeezenet1_0, squeezenet1_1, densenet121, densenet161, densenet169, densenet201, inception_v3
num_classes Number of classes int / Any positive integer
weights Pretrained weights str DEFAULT Check PyTorch Documentation
checkpoint_path Path to checkpoint Optional[str] None Self defined path

Dataloader Parameters

Parameter Description Type Default Choices
batch_size Batch size int / Any positive integer
num_workers Number of workers int 0 Any non negative integer

Resize Parameters

Parameter Description Type Default Choices
width Width of resized image int / Any positive integer
height Height of resized image int / Any positive integer
interpolation Interpolation method str bicubic nearest, nearest_exact, bilinear, bicubic
padding Padding Optional[str] None top_left, top_right, bottom_left, bottom_right, center
maintain_aspect_ratio Maintain aspect ratio bool False True, False

Spatial Transform Parameters

Parameter Description Type Default Choices
hflip_prob Horizontal flip probability float / Any float between 0 and 1
vflip_prob Vertical flip probability float / Any float between 0 and 1
max_rotate_in_degree Maximum rotation in degree float 0.0 Any non negative float
allow_center_crop Allow center crop bool False True, False
allow_random_crop Allow random crop bool False True, False

Color Transform Parameters

Parameter Description Type Default Choices
allow_gray_scale Allow gray scale bool False True, False
allow_random_color Allow random color bool False True, False

Preprocessing Parameters

Parameter Description Type Default Choices
mean Mean of dataset List[float] / Any list of floats
std Standard deviation of dataset List[float] / Any list of floats

Optimizer Parameters

Parameter Description Type Default Choices
name Optimizer to use str / sgd, adam, rmsprop, adamw
lr Learning rate float / Any positive float
weight_decay Weight decay float 0.0 Any non negative float
momentum Momentum Optional[float] None Any non negative float
alpha Alpha Optional[float] None Any non negative float
betas Betas Optional[Tuple[float, float]] None Any tuple of non negative floats

Scheduler Parameters

Parameter Description Type Default Choices
name Scheduler to use str / step, consine
lr_min Minimum learning rate Optional[float] None Any non negative float
step_size Step size Optional[int] None Any positive integer
gamma Gamma Optional[float] None Any non negative float

Training Parameters

Parameter Description Type Default Choices
name Name of the experiment str / Any string
num_epochs Number of epochs int / Any positive integer
trainset_dir Path to training dataset str / Any string
valset_dir Path to validation dataset str / Any string
testset_dir Path to testing dataset Optional[str] None Any string
device Device to use str cuda cpu, cuda, etc.
max_num_hrs Maximum number of hours to run Optional[float] None Any non negative float
criterion What criterion to use for best model str loss loss, accuracy
validate_every Validate every n epochs int 1 Any positive integer
save_every Save model every n epochs int 3 Any positive integer
patience Patience for early stopping int 5 Any positive integer
random_seed Random seed int 42 Any positive integer
precision Precision int 64 16, 32, 64
export_last_as_onnx Export last model as ONNX bool False True, False
export_best_as_onnx Export best model as ONNX bool False True, False

Evaluation Parameters

Parameter Description Type Default Choices
name Name of the experiment str / Any string
evalset_dir Path to evaluation dataset str / Any string
device Device to use str cuda cpu, cuda, etc.
precision Precision int 64 16, 32, 64
random_seed Random seed int 42 Any positive integer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

classifier_trains-1.2.3.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

classifier_trains-1.2.3-py3-none-any.whl (25.2 kB view details)

Uploaded Python 3

File details

Details for the file classifier_trains-1.2.3.tar.gz.

File metadata

  • Download URL: classifier_trains-1.2.3.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.14 Linux/6.8.0-1044-azure

File hashes

Hashes for classifier_trains-1.2.3.tar.gz
Algorithm Hash digest
SHA256 8b19f570aa7b33d4ba6ec16bacf9d997cb6f4ad5581edae82e5fa68e95d7577e
MD5 2784474d7516db2bc15368683ca2936f
BLAKE2b-256 a454fd2382a85baf69bcbadced700f39a73dd3b4dd8d14b9842fd10a9e9e4cd7

See more details on using hashes here.

File details

Details for the file classifier_trains-1.2.3-py3-none-any.whl.

File metadata

  • Download URL: classifier_trains-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 25.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.11.14 Linux/6.8.0-1044-azure

File hashes

Hashes for classifier_trains-1.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fa7e10a14bde8820a5ca01d867afe980187180f342d89cd4956a6135357b66a4
MD5 e538b4847d14e08ebf2896fcaa1126a9
BLAKE2b-256 aeecaa6e975489b0206c7964f5176e031fa2edcc58a4436f5db8b55bcc1c869f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page