import os import shutil import sys import numpy as np import matplotlib.pyplot as plt import pandas as pd import random import time import gc import nibabel as nib import tqdm as tqdm from utils.meter import AverageMeter from utils.general import save_checkpoint, load_pretrained_model, resume_training from brats import get_datasets from monai.data import decollate_batch import torch import torch.nn as nn from torch.backends import cudnn from monai.metrics import DiceMetric from monai.utils.enums import MetricReduction from networks.models.ResUNetpp.model import ResUnetPlusPlus from monai.losses import DiceLoss, DiceCELoss from monai.inferers import sliding_window_inference from monai.transforms import ( AsDiscrete, Activations, ) from monai.networks.nets import SwinUNETR, SegResNet, VNet, AttentionUnet, UNETR from networks.models.ResUNetpp.model import ResUnetPlusPlus from networks.models.UNet.model import UNet3D from networks.models.UX_Net.network_backbone import UXNET from networks.models.nnformer.nnFormer_tumor import nnFormer from networks.models.E_CATBraTS.model import E_CATBraTS from networks.models.unetr_pp.network_architecture.tumor.unetr_pp_tumor import UNETR_PP try: from thesis.models.SegUXNet.model import SegUXNet except ModuleNotFoundError: print('model not available, please train with other models') from functools import partial from utils.augment import DataAugmenter from utils.schedulers import SegResNetScheduler, PolyDecayScheduler # Configure logger import See more