- Edit hyper-parameters in
config.json
or make your custom config file with the same format asconfig.json
. - Run
python train.py --config CONFIG_PATH
if you're using your custom config file andCONFIG_PATH
is the path to your config file. Without the--config
flag,train.py
will look forconfig.json
in themrs
repo directory.
- Edit settings parameters (GPU ID, model path, etc.) in
evaluate.py
. Notice thatDS_NAME
should match the one in the config file of the trained model. - Run
python evaluate.py
.
- Edit settings parameters in
infer.py
in the same way as for model evaluation.DS_NAME
should match the one in the trained model, too. - The
FILE_LIST
parameter takes the path to a.txt
file which contains full paths of testing image files (one file path per row). - Run
python infer.py
.
- PyTorch >= 1.1
- TensorboardX
- TorchSummary
- Albumentation
Encoder Family | Encoder Name |
---|---|
VGG | vgg11, vgg11_bn, vgg13, vgg13_bn, vgg16, vgg16_bn, vgg19, vgg19_bn |
ResNet | resnet18, resnet34, resnet50, resnet101 |
ResNeXt | resnext50_32x4d, resnext101_32x8d |
WideResNet | wide_resnet50_2, wide_resnet101_2 |
Res2Net | res2net50_14w_8s, res2net50_26w_4s, res2net50_26w_6s, res2net50_26w_8s, res2net50_48w_2s, res2net101_26w_4s |
Inception | inception_v3 |
SqueezeNet | squeezenet1_0, squeezenet1_1 |
Encoder Name | Decoder Name | Dataset | Label | Score (IoU) | Size | Model |
---|---|---|---|---|---|---|
VGG16 | UNet | Inria | Building | 78.56 | 207.3MB | Box |
VGG19 | UNet | Inria | Building | 78.17 | 247.8MB | Box |
ResNet34 | UNet | Inria | Building | 77.06 | 204.2MB | Box |
ResNet50 | UNet | Inria | Building | 78.78 | 666.9MB | Box |
ResNet101 | UNet | Inria | Building | 79.09 | 812.1MB | Box |
VGG16 | PSPNet | Inria | Building | 76.23 | 171.1MB | Box |
VGG19 | PSPNet | Inria | Building | 75.94 | 211.6MB | Box |
ResNet34 | PSPNet | Inria | Building | 76.11 | 221.2MB | Box |
ResNet50 | PSPNet | Inria | Building | 77.46 | 418.3MB | Box |
ResNet101 | PSPNet | Inria | Building | 78.55 | 563.5MB | Box |
ResNet34 | DLinkNet | Inria | Building | 75.67 | 248.5MB | Box |
ResNet50 | DLinkNet | Inria | Building | 77.08 | 1.4GB | Box |
ResNet50 | UNet | DeepGlobe | Building | 79.43 | 671.4MB | Box |
ResNet101 | UNet | DeepGlobe | Building | 79.43 | 671.4MB | Box |
ResNet101 | DeepLabV3+ | Inria | Building | 79.17 | 464.6MB | Box |
ResNet34 | DLinkNet | DeepGlobe | Road | 62.15 | 253MB | Box |
- Encoder Structures:
- VGG
- ResNet
- DenseNet
- SqueezeNet
- InceptionNet
- Decoder Structures:
- Different Losses:
- Xent
- Jaccard Approximation
- Focal Loss
- Lovasz softmax (https://github.com/bermanmaxim/LovaszSoftmax/tree/master/pytorch)
- Weighted combination of arbitrary supported losses
- Multi GPU Training
- Evaluation
- Dataset Evaluator
- Evaluate Report & Prediction Map
- Results visualization
- Class weights on criterions
- Unable to do model-wise data parallel
- Failed to load models that trained on multiple gpus