├── .gitignore ├── LICENSE ├── README.md ├── average_checkpoints.py ├── config ├── __init__.py └── opts.py ├── criterions ├── __init__.py └── cross_entropy.py ├── data_loader ├── __init__.py ├── bbwsi_dataset.py ├── data_utils │ ├── __init__.py │ ├── bag_word_extractor.py │ ├── collate_function.py │ └── open_slide_reader.py └── sample_dataset.py ├── eval_script.sh ├── images ├── duct.gif └── stroma.gif ├── main_evaluation.py ├── main_training.py ├── metrics ├── __init__.py ├── cmat_metrics.py ├── metric_utils.py └── statistics.py ├── model ├── __init__.py ├── base_feature_extractor.py ├── feature_extractors │ ├── __init__.py │ ├── espnetv2.py │ ├── espnetv2_config.py │ ├── mnasnet.py │ └── mobilenetv2.py ├── mi_model_e2e.py └── pretrained_cnn_models │ ├── espnetv2_s_0.5_imagenet_224x224.pth │ ├── espnetv2_s_1.0_imagenet_224x224.pth │ ├── espnetv2_s_1.25_imagenet_224x224.pth │ ├── espnetv2_s_1.5_imagenet_224x224.pth │ ├── espnetv2_s_2.0_imagenet_224x224.pth │ ├── mnasnet_s_1.0_imagenet_224x224.pth │ └── mobilenetv2_s_1.0_imagenet_224x224.pth ├── model_zoo ├── espnetv2_config_bag_1792_word_256_softmax_l2.json ├── espnetv2_weights_bag_1792_word_256_softmax_l2.pth ├── mnasnet_config_bag_1792_word_256_softmax_l2.json ├── mnasnet_weights_bag_1792_word_256_softmax_l2.pth ├── mobilenetv2_config_bag_1792_word_256_softmax_l2.json └── mobilenetv2_weights_bag_1792_word_256_softmax_l2.pth ├── nn_layers ├── __init__.py ├── attn_layers.py ├── eesp.py ├── espnet_utils.py ├── ffn.py └── multi_head_attn.py ├── requirements.txt ├── train_and_eval ├── __init__.py ├── evaluator.py ├── train_utils.py └── trainer.py ├── training_script.sh ├── transforms ├── __init__.py └── img_transforms.py └── utilities ├── __init__.py ├── build_criteria.py ├── build_dataloader.py ├── build_model.py ├── build_optimizer.py ├── color_encoder.py ├── json_utils.py ├── lr_scheduler.py ├── print_utilities.py ├── roc_utils.py ├── save_dict_to_file.py ├── summary_writer.py └── utils.py /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/README.md -------------------------------------------------------------------------------- /average_checkpoints.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/average_checkpoints.py -------------------------------------------------------------------------------- /config/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /config/opts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/config/opts.py -------------------------------------------------------------------------------- /criterions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /criterions/cross_entropy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/criterions/cross_entropy.py -------------------------------------------------------------------------------- /data_loader/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data_loader/bbwsi_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/data_loader/bbwsi_dataset.py -------------------------------------------------------------------------------- /data_loader/data_utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data_loader/data_utils/bag_word_extractor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/data_loader/data_utils/bag_word_extractor.py -------------------------------------------------------------------------------- /data_loader/data_utils/collate_function.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/data_loader/data_utils/collate_function.py -------------------------------------------------------------------------------- /data_loader/data_utils/open_slide_reader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/data_loader/data_utils/open_slide_reader.py -------------------------------------------------------------------------------- /data_loader/sample_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/data_loader/sample_dataset.py -------------------------------------------------------------------------------- /eval_script.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/eval_script.sh -------------------------------------------------------------------------------- /images/duct.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/images/duct.gif -------------------------------------------------------------------------------- /images/stroma.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/images/stroma.gif -------------------------------------------------------------------------------- /main_evaluation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/main_evaluation.py -------------------------------------------------------------------------------- /main_training.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/main_training.py -------------------------------------------------------------------------------- /metrics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /metrics/cmat_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/metrics/cmat_metrics.py -------------------------------------------------------------------------------- /metrics/metric_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/metrics/metric_utils.py -------------------------------------------------------------------------------- /metrics/statistics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/metrics/statistics.py -------------------------------------------------------------------------------- /model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/__init__.py -------------------------------------------------------------------------------- /model/base_feature_extractor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/base_feature_extractor.py -------------------------------------------------------------------------------- /model/feature_extractors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /model/feature_extractors/espnetv2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/feature_extractors/espnetv2.py -------------------------------------------------------------------------------- /model/feature_extractors/espnetv2_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/feature_extractors/espnetv2_config.py -------------------------------------------------------------------------------- /model/feature_extractors/mnasnet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/feature_extractors/mnasnet.py -------------------------------------------------------------------------------- /model/feature_extractors/mobilenetv2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/feature_extractors/mobilenetv2.py -------------------------------------------------------------------------------- /model/mi_model_e2e.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/mi_model_e2e.py -------------------------------------------------------------------------------- /model/pretrained_cnn_models/espnetv2_s_0.5_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/espnetv2_s_0.5_imagenet_224x224.pth -------------------------------------------------------------------------------- /model/pretrained_cnn_models/espnetv2_s_1.0_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/espnetv2_s_1.0_imagenet_224x224.pth -------------------------------------------------------------------------------- /model/pretrained_cnn_models/espnetv2_s_1.25_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/espnetv2_s_1.25_imagenet_224x224.pth -------------------------------------------------------------------------------- /model/pretrained_cnn_models/espnetv2_s_1.5_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/espnetv2_s_1.5_imagenet_224x224.pth -------------------------------------------------------------------------------- /model/pretrained_cnn_models/espnetv2_s_2.0_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/espnetv2_s_2.0_imagenet_224x224.pth -------------------------------------------------------------------------------- /model/pretrained_cnn_models/mnasnet_s_1.0_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/mnasnet_s_1.0_imagenet_224x224.pth -------------------------------------------------------------------------------- /model/pretrained_cnn_models/mobilenetv2_s_1.0_imagenet_224x224.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model/pretrained_cnn_models/mobilenetv2_s_1.0_imagenet_224x224.pth -------------------------------------------------------------------------------- /model_zoo/espnetv2_config_bag_1792_word_256_softmax_l2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model_zoo/espnetv2_config_bag_1792_word_256_softmax_l2.json -------------------------------------------------------------------------------- /model_zoo/espnetv2_weights_bag_1792_word_256_softmax_l2.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model_zoo/espnetv2_weights_bag_1792_word_256_softmax_l2.pth -------------------------------------------------------------------------------- /model_zoo/mnasnet_config_bag_1792_word_256_softmax_l2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model_zoo/mnasnet_config_bag_1792_word_256_softmax_l2.json -------------------------------------------------------------------------------- /model_zoo/mnasnet_weights_bag_1792_word_256_softmax_l2.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model_zoo/mnasnet_weights_bag_1792_word_256_softmax_l2.pth -------------------------------------------------------------------------------- /model_zoo/mobilenetv2_config_bag_1792_word_256_softmax_l2.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model_zoo/mobilenetv2_config_bag_1792_word_256_softmax_l2.json -------------------------------------------------------------------------------- /model_zoo/mobilenetv2_weights_bag_1792_word_256_softmax_l2.pth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/model_zoo/mobilenetv2_weights_bag_1792_word_256_softmax_l2.pth -------------------------------------------------------------------------------- /nn_layers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nn_layers/attn_layers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/nn_layers/attn_layers.py -------------------------------------------------------------------------------- /nn_layers/eesp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/nn_layers/eesp.py -------------------------------------------------------------------------------- /nn_layers/espnet_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/nn_layers/espnet_utils.py -------------------------------------------------------------------------------- /nn_layers/ffn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/nn_layers/ffn.py -------------------------------------------------------------------------------- /nn_layers/multi_head_attn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/nn_layers/multi_head_attn.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/requirements.txt -------------------------------------------------------------------------------- /train_and_eval/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /train_and_eval/evaluator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/train_and_eval/evaluator.py -------------------------------------------------------------------------------- /train_and_eval/train_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/train_and_eval/train_utils.py -------------------------------------------------------------------------------- /train_and_eval/trainer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/train_and_eval/trainer.py -------------------------------------------------------------------------------- /training_script.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/training_script.sh -------------------------------------------------------------------------------- /transforms/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /transforms/img_transforms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/transforms/img_transforms.py -------------------------------------------------------------------------------- /utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/__init__.py -------------------------------------------------------------------------------- /utilities/build_criteria.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/build_criteria.py -------------------------------------------------------------------------------- /utilities/build_dataloader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/build_dataloader.py -------------------------------------------------------------------------------- /utilities/build_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/build_model.py -------------------------------------------------------------------------------- /utilities/build_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/build_optimizer.py -------------------------------------------------------------------------------- /utilities/color_encoder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/color_encoder.py -------------------------------------------------------------------------------- /utilities/json_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/json_utils.py -------------------------------------------------------------------------------- /utilities/lr_scheduler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/lr_scheduler.py -------------------------------------------------------------------------------- /utilities/print_utilities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/print_utilities.py -------------------------------------------------------------------------------- /utilities/roc_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/roc_utils.py -------------------------------------------------------------------------------- /utilities/save_dict_to_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/save_dict_to_file.py -------------------------------------------------------------------------------- /utilities/summary_writer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/summary_writer.py -------------------------------------------------------------------------------- /utilities/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sacmehta/HATNet/HEAD/utilities/utils.py --------------------------------------------------------------------------------