Package: pugh-torch
Pugh TorchFunctions, losses, module blocks to share between experiments.Package FeaturesAdditional methods to TensorBoard summary writer for adding normalized images and semantic segmentation images.hetero_cross_entropy for cross_entropy loss across heterogeneous datasetsConvenient dataset downloading/unpacking to~/.pugh_torch/datasets/.You can override this via the ENV variableROOT_DATASET_PATH.InstallationStable Release:pip install pugh_torchDevelopment Head:pip install git+https://github.com/BrianPugh/pugh_torch.gitExperimentsA big part of this repo is a framework to quickly be able to iterate on ideas.To accomplish this, we provide the following:A docker containerbrianpugh/pugh_torchthat contains many dependencies
experimenters would like to use.You can pull the docker image and launch the container via:docker pull brianpugh/pugh_torch
./docker_run.shThis will map~/.pugh_torchand the local copy of the git repo
into the container. You may change this if you like.
This will also pass in any available GPUs and set other common
docker flags for running/training neural nets.This container runs a VNC server, incase you need to perform some visual
actions, like usingmatplotlib.pyplotA unified training driverexperiments/train.pyto run experiments.From theexperiments/folder, runpython3 train.py templateto begin
training the default resnet50 architecture on ImageNet.ImageNet cannot be automatically downloaded (see the error raised). To
get training started with an easier-to-obtain dataset, run:python3 train.py template dataset=cifar100 model=cifar100A template projectexperiments/templatethat should get you going. The goal
here is to  provide maximum flexibility while minimizing "project startup
costs". We leverage the following libraries:Hydrafor managing experiment
hyperparameters and other configuration. It's a good idea to make your
code configurable via this configuration rather than directly tweaking
code to make experiments more trackable and reproduceable.PyTorch-Lightningfor general project organization and training.pugh_torchfor various tweaks and helpers that make using the above
libraries easier for common projects and tasks.DocumentationFor full package documentation please visitBrianPugh.github.io/pugh_torch.Free software: MIT licenseChangelogAll notable changes to this project will be documented in this file.The format is based onKeep a Changelog,
and this project adheres toSemantic Versioning.[0.4.0] - TBDAddedpytorch-lightning callbacks (TensorBoardAddSS, TensorBoardAddClassification)
for add_ss and add_rgb for segmentation and classification tasks, respectively.Initial form of a project template to get ideas going quickly.ADE20K datasetvarious optimizers and gettersvarious activation functions and gettersLoadStateDictMixin that adds verbosity to model loading and has more laxedstrictshape requirements.pretrained resnet models (from torchvision) that utilize LoadStateDictMixinLabel smoothing losses[0.3.1] - 2020-09-21AddedAliasedResizeShortesttoShortestMaxSizeto be consistent withalbumentations.augmentations.transforms.LongestMaxSizeFixedAdd missing interpolation attribute in ResizeShortest transform.FixedResizeShortestproducing erroenous results when both sides are the same length.[0.3.0] - 2020-09-21AddedText label adding to TensorBoard ImagesResizeShortest augmentation transformUnit Testing utilitiesbasic Datasets APIA bunch of useful dependencies added.[0.2.0] - 2020-09-15AddedAdditional extra_requires in preparation for docker release.[0.1.0] - 2020-09-13AddedInitial Release