From 16c076198f7fe6d6d98674f5c3a27f48de7a5bad Mon Sep 17 00:00:00 2001 From: fschn Date: Mon, 28 Nov 2022 20:21:46 +0100 Subject: [PATCH] Drop check of monai.utils.get_torch_version_tuple() >= (1, 6) because the core codebase now requires at least torch 1.6 Fixes #509 --- .../distributed_training/unet_evaluation_workflows.py | 3 +-- .../distributed_training/unet_training_workflows.py | 3 +-- modules/engines/unet_evaluation_dict.py | 3 +-- modules/engines/unet_training_dict.py | 5 ++--- pathology/tumor_detection/ignite/camelyon_train_evaluate.py | 6 ------ .../ignite/camelyon_train_evaluate_nvtx_profiling.py | 6 ------ .../torch/camelyon_train_evaluate_pytorch_gpu.py | 1 - performance_profiling/pathology/train_evaluate_nvtx.py | 1 - 8 files changed, 5 insertions(+), 23 deletions(-) diff --git a/acceleration/distributed_training/unet_evaluation_workflows.py b/acceleration/distributed_training/unet_evaluation_workflows.py index 154aec1ee6..f34afd61bd 100644 --- a/acceleration/distributed_training/unet_evaluation_workflows.py +++ b/acceleration/distributed_training/unet_evaluation_workflows.py @@ -173,8 +173,7 @@ def evaluate(args): }, additional_metrics={"val_acc": Accuracy(output_transform=from_engine(["pred", "label"]), device=device)}, val_handlers=val_handlers, - # if no FP16 support in GPU or PyTorch version < 1.6, will not enable AMP evaluation - amp=True if monai.utils.get_torch_version_tuple() >= (1, 6) else False, + amp=True, ) evaluator.run() dist.destroy_process_group() diff --git a/acceleration/distributed_training/unet_training_workflows.py b/acceleration/distributed_training/unet_training_workflows.py index d10bd17c9e..b2255de298 100644 --- a/acceleration/distributed_training/unet_training_workflows.py +++ b/acceleration/distributed_training/unet_training_workflows.py @@ -177,8 +177,7 @@ def train(args): optimizer=opt, loss_function=loss, inferer=SimpleInferer(), - # if no FP16 support in GPU or PyTorch version < 1.6, will not enable AMP evaluation - amp=True if monai.utils.get_torch_version_tuple() >= (1, 6) else False, + amp=True, postprocessing=train_post_transforms, key_train_metric={"train_acc": Accuracy(output_transform=from_engine(["pred", "label"]), device=device)}, train_handlers=train_handlers, diff --git a/modules/engines/unet_evaluation_dict.py b/modules/engines/unet_evaluation_dict.py index 35404174d3..b76adee368 100644 --- a/modules/engines/unet_evaluation_dict.py +++ b/modules/engines/unet_evaluation_dict.py @@ -112,8 +112,7 @@ def main(tempdir): }, additional_metrics={"val_acc": Accuracy(output_transform=from_engine(["pred", "label"]))}, val_handlers=val_handlers, - # if no FP16 support in GPU or PyTorch version < 1.6, will not enable AMP evaluation - amp=True if monai.utils.get_torch_version_tuple() >= (1, 6) else False, + amp=True, ) evaluator.run() diff --git a/modules/engines/unet_training_dict.py b/modules/engines/unet_training_dict.py index 5d4b0f99d6..43c8db2c16 100644 --- a/modules/engines/unet_training_dict.py +++ b/modules/engines/unet_training_dict.py @@ -147,8 +147,7 @@ def main(tempdir): }, additional_metrics={"val_acc": Accuracy(output_transform=from_engine(["pred", "label"]))}, val_handlers=val_handlers, - # if no FP16 support in GPU or PyTorch version < 1.6, will not enable AMP evaluation - amp=True if monai.utils.get_torch_version_tuple() >= (1, 6) else False, + amp=True, ) train_post_transforms = Compose( @@ -182,7 +181,7 @@ def main(tempdir): key_train_metric={"train_acc": Accuracy(output_transform=from_engine(["pred", "label"]))}, train_handlers=train_handlers, # if no FP16 support in GPU or PyTorch version < 1.6, will not enable AMP training - amp=True if monai.utils.get_torch_version_tuple() >= (1, 6) else False, + amp=True, ) # set initialized trainer for "early stop" handlers val_handlers[0].set_trainer(trainer=trainer) diff --git a/pathology/tumor_detection/ignite/camelyon_train_evaluate.py b/pathology/tumor_detection/ignite/camelyon_train_evaluate.py index da9265c294..39ea23b4ca 100644 --- a/pathology/tumor_detection/ignite/camelyon_train_evaluate.py +++ b/pathology/tumor_detection/ignite/camelyon_train_evaluate.py @@ -184,12 +184,6 @@ def train(cfg): else: optimizer = SGD(model.parameters(), lr=cfg["lr"], momentum=0.9) - # AMP scaler - if cfg["amp"]: - cfg["amp"] = True if monai.utils.get_torch_version_tuple() >= (1, 6) else False - else: - cfg["amp"] = False - scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=cfg["n_epochs"]) # -------------------------------------------- diff --git a/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py b/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py index ae8a769d76..4da429ba2e 100644 --- a/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py +++ b/pathology/tumor_detection/ignite/camelyon_train_evaluate_nvtx_profiling.py @@ -187,12 +187,6 @@ def train(cfg): else: optimizer = SGD(model.parameters(), lr=cfg["lr"], momentum=0.9) - # AMP scaler - if cfg["amp"]: - cfg["amp"] = True if monai.utils.get_torch_version_tuple() >= (1, 6) else False - else: - cfg["amp"] = False - scheduler = lr_scheduler.CosineAnnealingLR(optimizer, T_max=cfg["n_epochs"]) # -------------------------------------------- diff --git a/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py b/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py index fcf3d002dd..32cdc0ba79 100644 --- a/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py +++ b/pathology/tumor_detection/torch/camelyon_train_evaluate_pytorch_gpu.py @@ -375,7 +375,6 @@ def main(cfg): optimizer = SGD(model.parameters(), lr=cfg["lr"], momentum=0.9) # AMP scaler - cfg["amp"] = cfg["amp"] and monai.utils.get_torch_version_tuple() >= (1, 6) if cfg["amp"] is True: scaler = GradScaler() else: diff --git a/performance_profiling/pathology/train_evaluate_nvtx.py b/performance_profiling/pathology/train_evaluate_nvtx.py index 9720966a3c..32727c5f0c 100644 --- a/performance_profiling/pathology/train_evaluate_nvtx.py +++ b/performance_profiling/pathology/train_evaluate_nvtx.py @@ -382,7 +382,6 @@ def main(cfg): optimizer = SGD(model.parameters(), lr=cfg["lr"], momentum=0.9) # AMP scaler - cfg["amp"] = cfg["amp"] and monai.utils.get_torch_version_tuple() >= (1, 6) if cfg["amp"] is True: scaler = GradScaler() else: