deepliif 1.1.14__tar.gz → 1.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- deepliif-1.2.0/.gitignore +147 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test/22_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test/34_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test/6_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test/799_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/22_2_fake_B_1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/22_2_fake_B_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/22_2_fake_B_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/22_2_fake_B_4.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/22_2_fake_B_5.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/22_2_real_A.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/34_3_fake_B_1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/34_3_fake_B_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/34_3_fake_B_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/34_3_fake_B_4.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/34_3_fake_B_5.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/34_3_real_A.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/6_2_fake_B_1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/6_2_fake_B_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/6_2_fake_B_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/6_2_fake_B_4.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/6_2_fake_B_5.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/6_2_real_A.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/799_2_fake_B_1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/799_2_fake_B_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/799_2_fake_B_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/799_2_fake_B_4.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/799_2_fake_B_5.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_DeepLIIF_results/799_2_real_A.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_cli/22_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_cli/34_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_cli/6_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_cli/799_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_groundtruth/22_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_groundtruth/34_3.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_groundtruth/6_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/test_groundtruth/799_2.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/train/Bladder1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/train/Lung1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/val/Bladder1.json +10 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/val/Bladder1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/val/Lung1.json +10 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/val/Lung1.png +0 -0
- deepliif-1.2.0/Datasets/Sample_Dataset/val/metrics.json +22 -0
- deepliif-1.2.0/DeepLIIF_Statistics/ComputeStatistics.py +236 -0
- deepliif-1.2.0/DeepLIIF_Statistics/Create_Loss_Diagram.py +81 -0
- deepliif-1.2.0/DeepLIIF_Statistics/HelperFunctions.py +667 -0
- deepliif-1.2.0/DeepLIIF_Statistics/PostProcessSegmentationMask.py +171 -0
- deepliif-1.2.0/DeepLIIF_Statistics/README.md +42 -0
- deepliif-1.2.0/DeepLIIF_Statistics/Segmentation_Metrics.py +233 -0
- deepliif-1.2.0/DeepLIIF_Statistics/environment.yml +69 -0
- deepliif-1.2.0/DeepLIIF_Statistics/fid.py +334 -0
- deepliif-1.2.0/DeepLIIF_Statistics/fid_official_tf.py +370 -0
- deepliif-1.2.0/DeepLIIF_Statistics/inception_score.py +100 -0
- deepliif-1.2.0/DeepLIIF_Statistics/swd.py +158 -0
- deepliif-1.2.0/Dockerfile +19 -0
- deepliif-1.2.0/ImageJ_Plugin/.gitignore +2 -0
- deepliif-1.2.0/ImageJ_Plugin/README.md +104 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step01.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step02.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step03.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step04.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step05.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step06.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step07.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step08.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step09.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/roi_step10.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step01.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step02.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step03.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step04.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step05.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step06.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step07.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step08.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/images/step10.png +0 -0
- deepliif-1.2.0/ImageJ_Plugin/pom.xml +106 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/DeepliifClient.java +181 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/DeepliifException.java +9 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/FileHelper.java +81 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/InferencePlugin.java +152 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/InteractionPlugin.java +228 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/MutableHTMLDialog.java +161 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/OverlayCreator.java +137 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/ResultHandler.java +140 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/RoisInferencePlugin.java +259 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/java/org/nadeemlab/deepliif/UIHelper.java +30 -0
- deepliif-1.2.0/ImageJ_Plugin/src/main/resources/plugins.config +3 -0
- deepliif-1.2.0/Image_Processing/Augmentation.py +84 -0
- deepliif-1.2.0/Image_Processing/Image_Processing_Helper_Functions.py +567 -0
- deepliif-1.2.0/Multi-GPU Training.md +156 -0
- {deepliif-1.1.14/deepliif.egg-info → deepliif-1.2.0}/PKG-INFO +2 -2
- deepliif-1.2.0/PostProcessSegmentationMask.py +61 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/README.md +1 -1
- deepliif-1.2.0/Registration/README.md +42 -0
- deepliif-1.2.0/Registration/Registration_App.py +281 -0
- deepliif-1.2.0/Sample_Large_Tissues/ROI_1.png +0 -0
- deepliif-1.2.0/Sample_Large_Tissues/ROI_127.png +0 -0
- deepliif-1.2.0/Sample_Large_Tissues/ROI_153.png +0 -0
- deepliif-1.2.0/Sample_Large_Tissues/ROI_46.png +0 -0
- deepliif-1.2.0/Sample_Large_Tissues/ROI_7.png +0 -0
- deepliif-1.2.0/Scripts/download_pre_trained_model.sh +12 -0
- deepliif-1.2.0/Scripts/download_training_sets.sh +41 -0
- deepliif-1.2.0/assets/.METADATA/.version.json +1 -0
- deepliif-1.2.0/assettypes/.gitkeep +0 -0
- deepliif-1.2.0/conftest.py +65 -0
- deepliif-1.2.0/deepliif/__init__.py +0 -0
- deepliif-1.2.0/deepliif/models/__init__ - multiprocessing (failure).py +980 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/__init__.py +54 -51
- deepliif-1.2.0/deepliif/scripts/train.py +513 -0
- deepliif-1.2.0/deepliif/stat/__init__.py +83 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/__init__.py +103 -16
- deepliif-1.2.0/deepliif/util/util - modified tensor_to_pil.py +255 -0
- {deepliif-1.1.14 → deepliif-1.2.0/deepliif.egg-info}/PKG-INFO +2 -2
- deepliif-1.2.0/deepliif.egg-info/SOURCES.txt +215 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif.egg-info/requires.txt +2 -0
- deepliif-1.2.0/docs/ImageJ/README.md +104 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step01.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step02.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step03.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step04.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step05.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step06.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step07.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step08.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step09.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/roi_step10.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step01.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step02.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step03.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step04.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step05.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step06.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step07.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step08.png +0 -0
- deepliif-1.2.0/docs/ImageJ/images/step10.png +0 -0
- deepliif-1.2.0/docs/README.md +42 -0
- deepliif-1.2.0/docs/cloud/README.md +72 -0
- deepliif-1.2.0/docs/deployment/README.md +171 -0
- deepliif-1.2.0/docs/deployment/images/deepliif_torchserve_workflow.png +0 -0
- deepliif-1.2.0/docs/images/DeepLIIF_logo.png +0 -0
- deepliif-1.2.0/docs/images/overview.png +0 -0
- deepliif-1.2.0/docs/installation/README.md +35 -0
- deepliif-1.2.0/docs/testing/README.md +29 -0
- deepliif-1.2.0/docs/training/README.md +250 -0
- deepliif-1.2.0/docs/training/images/IHC_Gen.jpg +0 -0
- deepliif-1.2.0/environment.yml +145 -0
- deepliif-1.2.0/images/DeepLIIF_logo.png +0 -0
- deepliif-1.2.0/images/IHC_Gen3.png +0 -0
- deepliif-1.2.0/images/deepliif-imagej-demo.gif +0 -0
- deepliif-1.2.0/images/deepliif-imagej-roi-demo.gif +0 -0
- deepliif-1.2.0/images/deepliif-stitch-demo-01.gif +0 -0
- deepliif-1.2.0/images/deepliif-website-demo-04.gif +0 -0
- deepliif-1.2.0/images/deepliif_torchserve_workflow.png +0 -0
- deepliif-1.2.0/images/overview.png +0 -0
- deepliif-1.2.0/images/target.png +0 -0
- deepliif-1.2.0/mkdocs.yml +29 -0
- deepliif-1.2.0/model-server/config.properties +12 -0
- deepliif-1.2.0/model-server/deepliif_workflow.yaml +42 -0
- deepliif-1.2.0/model-server/deepliif_workflow_handler.py +41 -0
- deepliif-1.2.0/model-server/model_requirements.txt +1 -0
- deepliif-1.2.0/model-server/net_handler.py +16 -0
- deepliif-1.2.0/model-server/resnet.py +14 -0
- deepliif-1.2.0/model-server/unet.py +13 -0
- deepliif-1.2.0/notes_for_code_testing.md +39 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/setup.cfg +1 -1
- {deepliif-1.1.14 → deepliif-1.2.0}/setup.py +3 -1
- deepliif-1.2.0/test.py +129 -0
- deepliif-1.2.0/tests/util.py +50 -0
- deepliif-1.2.0/train.py +517 -0
- deepliif-1.1.14/deepliif.egg-info/SOURCES.txt +0 -53
- {deepliif-1.1.14 → deepliif-1.2.0}/LICENSE.md +0 -0
- /deepliif-1.1.14/deepliif/__init__.py → /deepliif-1.2.0/assets/.METADATA/.gitkeep +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/cli.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/__init__.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/aligned_dataset.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/base_dataset.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/colorization_dataset.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/image_folder.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/single_dataset.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/template_dataset.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/data/unaligned_dataset.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/CycleGAN_model.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/DeepLIIFExt_model.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/DeepLIIFKD_model.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/DeepLIIF_model.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/SDG_model.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/__init__ - different weighted.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/__init__ - run_dask_multi dev.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/__init__ - time gens.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/__init__ - timings.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/__init__ - weights, empty, zarr, tile count.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/att_unet.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/base_model.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/models/networks.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/options/__init__.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/options/base_options.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/options/processing_options.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/options/test_options.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/options/train_options.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/postprocessing.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/postprocessing__OLD__DELETE.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/checks.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/get_data.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/html.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/image_pool.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/util.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif/util/visualizer.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif.egg-info/dependency_links.txt +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif.egg-info/entry_points.txt +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/deepliif.egg-info/top_level.txt +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/tests/test_args.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/tests/test_cli_inference.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/tests/test_cli_serialize.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/tests/test_cli_train.py +0 -0
- {deepliif-1.1.14 → deepliif-1.2.0}/tests/test_cli_trainlaunch.py +0 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
.idea/*
|
|
7
|
+
|
|
8
|
+
# C extensions
|
|
9
|
+
*.so
|
|
10
|
+
|
|
11
|
+
# Distribution / packaging
|
|
12
|
+
.Python
|
|
13
|
+
build/
|
|
14
|
+
develop-eggs/
|
|
15
|
+
dist/
|
|
16
|
+
downloads/
|
|
17
|
+
eggs/
|
|
18
|
+
.eggs/
|
|
19
|
+
lib/
|
|
20
|
+
lib64/
|
|
21
|
+
parts/
|
|
22
|
+
sdist/
|
|
23
|
+
var/
|
|
24
|
+
wheels/
|
|
25
|
+
pip-wheel-metadata/
|
|
26
|
+
share/python-wheels/
|
|
27
|
+
*.egg-info/
|
|
28
|
+
.installed.cfg
|
|
29
|
+
*.egg
|
|
30
|
+
MANIFEST
|
|
31
|
+
|
|
32
|
+
# PyInstaller
|
|
33
|
+
# Usually these files are written by a python script from a template
|
|
34
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
35
|
+
*.manifest
|
|
36
|
+
*.spec
|
|
37
|
+
|
|
38
|
+
# Installer logs
|
|
39
|
+
pip-log.txt
|
|
40
|
+
pip-delete-this-directory.txt
|
|
41
|
+
|
|
42
|
+
# Unit test / coverage reports
|
|
43
|
+
htmlcov/
|
|
44
|
+
.tox/
|
|
45
|
+
.nox/
|
|
46
|
+
.coverage
|
|
47
|
+
.coverage.*
|
|
48
|
+
.cache
|
|
49
|
+
nosetests.xml
|
|
50
|
+
coverage.xml
|
|
51
|
+
*.cover
|
|
52
|
+
*.py,cover
|
|
53
|
+
.hypothesis/
|
|
54
|
+
.pytest_cache/
|
|
55
|
+
|
|
56
|
+
# Translations
|
|
57
|
+
*.mo
|
|
58
|
+
*.pot
|
|
59
|
+
|
|
60
|
+
# Django stuff:
|
|
61
|
+
*.log
|
|
62
|
+
*.out
|
|
63
|
+
local_settings.py
|
|
64
|
+
db.sqlite3
|
|
65
|
+
db.sqlite3-journal
|
|
66
|
+
|
|
67
|
+
# Flask stuff:
|
|
68
|
+
instance/
|
|
69
|
+
.webassets-cache
|
|
70
|
+
|
|
71
|
+
# Scrapy stuff:
|
|
72
|
+
.scrapy
|
|
73
|
+
|
|
74
|
+
# Sphinx documentation
|
|
75
|
+
docs/_build/
|
|
76
|
+
|
|
77
|
+
# PyBuilder
|
|
78
|
+
target/
|
|
79
|
+
|
|
80
|
+
# Jupyter Notebook
|
|
81
|
+
.ipynb_checkpoints
|
|
82
|
+
|
|
83
|
+
# IPython
|
|
84
|
+
profile_default/
|
|
85
|
+
ipython_config.py
|
|
86
|
+
|
|
87
|
+
# pyenv
|
|
88
|
+
.python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
98
|
+
__pypackages__/
|
|
99
|
+
|
|
100
|
+
# Celery stuff
|
|
101
|
+
celerybeat-schedule
|
|
102
|
+
celerybeat.pid
|
|
103
|
+
|
|
104
|
+
# SageMath parsed files
|
|
105
|
+
*.sage.py
|
|
106
|
+
|
|
107
|
+
# Environments
|
|
108
|
+
.env
|
|
109
|
+
.venv
|
|
110
|
+
env/
|
|
111
|
+
venv/
|
|
112
|
+
ENV/
|
|
113
|
+
env.bak/
|
|
114
|
+
venv.bak/
|
|
115
|
+
|
|
116
|
+
# Spyder project settings
|
|
117
|
+
.spyderproject
|
|
118
|
+
.spyproject
|
|
119
|
+
|
|
120
|
+
# Rope project settings
|
|
121
|
+
.ropeproject
|
|
122
|
+
|
|
123
|
+
# mkdocs documentation
|
|
124
|
+
/site
|
|
125
|
+
|
|
126
|
+
# mypy
|
|
127
|
+
.mypy_cache/
|
|
128
|
+
.dmypy.json
|
|
129
|
+
dmypy.json
|
|
130
|
+
|
|
131
|
+
# Pyre type checker
|
|
132
|
+
.pyre/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
# Checkpoints and results
|
|
136
|
+
/checkpoints/
|
|
137
|
+
/model-server/
|
|
138
|
+
/results/*
|
|
139
|
+
|
|
140
|
+
**/.ipynb_checkpoints/*
|
|
141
|
+
**/.virtual_documents/*
|
|
142
|
+
assets/.METADATA/job_run.*
|
|
143
|
+
assets/job_run
|
|
144
|
+
cover/
|
|
145
|
+
.pybuilder/
|
|
146
|
+
.pytype/
|
|
147
|
+
cython_debug/
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Lung1": {
|
|
3
|
+
"num_total": 60,
|
|
4
|
+
"num_pos": 11,
|
|
5
|
+
"num_neg": 49,
|
|
6
|
+
"percent_pos": 18.3,
|
|
7
|
+
"prob_thresh": 150,
|
|
8
|
+
"size_thresh": 78,
|
|
9
|
+
"size_thresh_upper": null,
|
|
10
|
+
"marker_thresh": null
|
|
11
|
+
},
|
|
12
|
+
"Bladder1": {
|
|
13
|
+
"num_total": 183,
|
|
14
|
+
"num_pos": 15,
|
|
15
|
+
"num_neg": 168,
|
|
16
|
+
"percent_pos": 8.2,
|
|
17
|
+
"prob_thresh": 150,
|
|
18
|
+
"size_thresh": 30,
|
|
19
|
+
"size_thresh_upper": null,
|
|
20
|
+
"marker_thresh": null
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
|
|
2
|
+
import os
|
|
3
|
+
import cv2
|
|
4
|
+
import numpy as np
|
|
5
|
+
import csv
|
|
6
|
+
from numba import cuda
|
|
7
|
+
|
|
8
|
+
from Segmentation_Metrics import compute_segmentation_metrics
|
|
9
|
+
#from fid_official_tf import calculate_fid_given_paths
|
|
10
|
+
from fid import calculate_fid_given_paths
|
|
11
|
+
from inception_score import calculate_inception_score
|
|
12
|
+
|
|
13
|
+
from skimage.metrics import structural_similarity as ssim
|
|
14
|
+
from skimage.metrics import mean_squared_error
|
|
15
|
+
from skimage import img_as_float, io, measure
|
|
16
|
+
from skimage.color import rgb2gray
|
|
17
|
+
import collections
|
|
18
|
+
from swd import compute_swd
|
|
19
|
+
|
|
20
|
+
parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
|
|
21
|
+
parser.add_argument('--gt_path', type=str, required=True)
|
|
22
|
+
parser.add_argument('--model_path', type=str, required=True)
|
|
23
|
+
parser.add_argument('--output_path', type=str, required=True)
|
|
24
|
+
parser.add_argument('--model_name', type=str, required=False, default='DeepLIIF')
|
|
25
|
+
parser.add_argument('--mode', type=str, default='Segmentation',
|
|
26
|
+
help='Mode of the statistics computation including Segmentation, ImageSynthesis, All')
|
|
27
|
+
parser.add_argument('--raw_segmentation', action='store_true')
|
|
28
|
+
parser.add_argument('--device', type=str, default='cuda', help='Device to use. Like cuda, cuda:0 or cpu')
|
|
29
|
+
parser.add_argument('--batch_size', type=int, default=50,
|
|
30
|
+
help='Batch size to use')
|
|
31
|
+
parser.add_argument('--num_workers', type=int, default=8,
|
|
32
|
+
help='Number of processes to use for data loading')
|
|
33
|
+
parser.add_argument('--image_types', type=str, default='Hema,DAPI,Lap2,Marker')
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class Statistics:
|
|
37
|
+
def __init__(self, args):
|
|
38
|
+
self.gt_path = args.gt_path
|
|
39
|
+
self.model_path = args.model_path
|
|
40
|
+
self.output_path = args.output_path
|
|
41
|
+
self.model_name = args.model_name
|
|
42
|
+
self.mode = args.mode
|
|
43
|
+
self.raw_segmentation = args.raw_segmentation
|
|
44
|
+
self.batch_size = args.batch_size
|
|
45
|
+
self.num_workers = args.num_workers
|
|
46
|
+
self.device = args.device
|
|
47
|
+
self.image_types = args.image_types.replace(' ', '').split(',')
|
|
48
|
+
|
|
49
|
+
# Image Similarity Metrics
|
|
50
|
+
self.inception_avg = collections.defaultdict(float)
|
|
51
|
+
self.inception_std = collections.defaultdict(float)
|
|
52
|
+
|
|
53
|
+
self.mse_avg = collections.defaultdict(float)
|
|
54
|
+
self.mse_std = collections.defaultdict(float)
|
|
55
|
+
|
|
56
|
+
self.ssim_avg = collections.defaultdict(float)
|
|
57
|
+
self.ssim_std = collections.defaultdict(float)
|
|
58
|
+
|
|
59
|
+
self.fid_value = collections.defaultdict(float)
|
|
60
|
+
self.swd_value = collections.defaultdict(float)
|
|
61
|
+
|
|
62
|
+
self.all_info = {}
|
|
63
|
+
self.all_info['Model'] = self.model_name
|
|
64
|
+
|
|
65
|
+
# Segmentation Metrics
|
|
66
|
+
self.segmentation_metrics = collections.defaultdict(float)
|
|
67
|
+
self.segmentation_info = None
|
|
68
|
+
|
|
69
|
+
if not os.path.exists(self.output_path):
|
|
70
|
+
os.makedirs(self.output_path)
|
|
71
|
+
|
|
72
|
+
def compute_mse_ssim_scores(self):
|
|
73
|
+
for img_type in self.image_types:
|
|
74
|
+
images = os.listdir(self.model_path)
|
|
75
|
+
mse_arr = []
|
|
76
|
+
ssim_arr = []
|
|
77
|
+
# mse_info = []
|
|
78
|
+
for img_name in images:
|
|
79
|
+
if img_type in img_name:
|
|
80
|
+
orig_img = img_as_float(rgb2gray(io.imread(os.path.join(self.gt_path, img_name))))
|
|
81
|
+
mask_img = img_as_float(rgb2gray(io.imread(os.path.join(self.model_path, img_name))))
|
|
82
|
+
|
|
83
|
+
mse_mask = mean_squared_error(orig_img, mask_img)
|
|
84
|
+
ssim_mask = ssim(orig_img, mask_img, multichannel=True, gaussian_weights=True, sigma=1.5, use_sample_covariance=False, data_range=255)
|
|
85
|
+
|
|
86
|
+
mse_arr.append(mse_mask)
|
|
87
|
+
ssim_arr.append(ssim_mask)
|
|
88
|
+
# mse_info.append({'image_name': img_name, 'image_type':img_type, 'mse': mse_mask, 'ssim': ssim_mask})
|
|
89
|
+
# self.write_list_to_csv(mse_info, mse_info[0].keys(),
|
|
90
|
+
# filename='inference_info_' + img_type + '_' + self.model_name + '.csv')
|
|
91
|
+
self.mse_avg[img_type], self.mse_std[img_type] = np.mean(mse_arr), np.std(mse_arr)
|
|
92
|
+
self.ssim_avg[img_type], self.ssim_std[img_type] = np.mean(ssim_arr), np.std(ssim_arr)
|
|
93
|
+
|
|
94
|
+
def compute_inception_score(self):
|
|
95
|
+
for img_type in self.image_types:
|
|
96
|
+
images = os.listdir(self.model_path)
|
|
97
|
+
real_images_array = []
|
|
98
|
+
for img in images:
|
|
99
|
+
if img_type in img:
|
|
100
|
+
image = cv2.imread(os.path.join(self.model_path, img))
|
|
101
|
+
image = cv2.resize(image, (299, 299))
|
|
102
|
+
real_images_array.append(image)
|
|
103
|
+
real_images_array = np.array(real_images_array)
|
|
104
|
+
self.inception_avg[img_type], self.inception_std[img_type] = calculate_inception_score(real_images_array)
|
|
105
|
+
|
|
106
|
+
def compute_fid_score(self):
|
|
107
|
+
for img_type in self.image_types:
|
|
108
|
+
os.environ['CUDA_VISIBLE_DEVICES'] = args.gpu
|
|
109
|
+
self.fid_value[img_type] = calculate_fid_given_paths([self.gt_path, self.model_path], None, low_profile=False)
|
|
110
|
+
print("FID: ", self.fid_value[img_type])
|
|
111
|
+
# self.fid_value[img_type] = calculate_fid_given_paths(paths=[self.gt_path, self.model_path], batch_size=self.batch_size, dims=self.fid_dims, num_workers=self.num_workers, mod_type='_' + img_type)
|
|
112
|
+
|
|
113
|
+
device = cuda.get_current_device()
|
|
114
|
+
device.reset()
|
|
115
|
+
|
|
116
|
+
def compute_swd(self):
|
|
117
|
+
for img_type in self.image_types:
|
|
118
|
+
orig_images = []
|
|
119
|
+
mask_images = []
|
|
120
|
+
images = os.listdir(self.model_path)
|
|
121
|
+
for img_name in images:
|
|
122
|
+
if img_type in img_name:
|
|
123
|
+
orig_img = cv2.cvtColor(cv2.imread(os.path.join(self.gt_path, img_name)), cv2.COLOR_BGR2RGB)
|
|
124
|
+
mask_img = cv2.cvtColor(cv2.imread(os.path.join(self.model_path, img_name)), cv2.COLOR_BGR2RGB)
|
|
125
|
+
orig_images.append(orig_img)
|
|
126
|
+
mask_images.append(mask_img)
|
|
127
|
+
|
|
128
|
+
self.swd_value[img_type] = compute_swd(np.array(orig_images), np.array(mask_images), self.device)
|
|
129
|
+
|
|
130
|
+
def compute_image_similarity_metrics(self):
|
|
131
|
+
self.compute_mse_ssim_scores()
|
|
132
|
+
print('SSIM Computed')
|
|
133
|
+
self.compute_inception_score()
|
|
134
|
+
print('inception Computed')
|
|
135
|
+
self.compute_fid_score()
|
|
136
|
+
print('fid Computed')
|
|
137
|
+
self.compute_swd()
|
|
138
|
+
print('swd Computed')
|
|
139
|
+
|
|
140
|
+
for key in self.mse_avg:
|
|
141
|
+
self.all_info[key + '_' + 'MSE_avg'] = self.mse_avg[key]
|
|
142
|
+
self.all_info[key + '_' + 'MSE_std'] = self.mse_std[key]
|
|
143
|
+
self.all_info[key + '_' + 'ssim_avg'] = self.ssim_avg[key]
|
|
144
|
+
self.all_info[key + '_' + 'ssim_std'] = self.ssim_std[key]
|
|
145
|
+
self.all_info[key + '_' + 'inception_avg'] = self.inception_avg[key]
|
|
146
|
+
self.all_info[key + '_' + 'inception_std'] = self.inception_std[key]
|
|
147
|
+
self.all_info[key + '_' + 'fid_value'] = self.fid_value[key]
|
|
148
|
+
self.all_info[key + '_' + 'swd_value'] = self.swd_value[key]
|
|
149
|
+
|
|
150
|
+
def compute_IHC_scoring(self):
|
|
151
|
+
images = os.listdir(self.gt_path)
|
|
152
|
+
IHC_info = []
|
|
153
|
+
metric_diff_ihc_score = 0
|
|
154
|
+
for img in images:
|
|
155
|
+
gt_image = cv2.cvtColor(cv2.imread(os.path.join(self.gt_path, img)), cv2.COLOR_BGR2RGB)
|
|
156
|
+
if 'DeepLIIF' in self.model_name:
|
|
157
|
+
mask_image = cv2.cvtColor(cv2.imread(os.path.join(self.model_path, img.replace('.png', '_SegRefined.png'))), cv2.COLOR_BGR2RGB)
|
|
158
|
+
else:
|
|
159
|
+
mask_image = cv2.cvtColor(cv2.imread(os.path.join(self.model_path, img)), cv2.COLOR_BGR2RGB)
|
|
160
|
+
gt_image[gt_image < 10] = 0
|
|
161
|
+
label_image_red_gt = measure.label(gt_image[:, :, 0], background=0)
|
|
162
|
+
label_image_blue_gt = measure.label(gt_image[:, :, 2], background=0)
|
|
163
|
+
number_of_positive_cells_gt = (len(np.unique(label_image_red_gt)) - 1)
|
|
164
|
+
number_of_negative_cells_gt = (len(np.unique(label_image_blue_gt)) - 1)
|
|
165
|
+
number_of_all_cells_gt = number_of_positive_cells_gt + number_of_negative_cells_gt
|
|
166
|
+
gt_IHC_score = number_of_positive_cells_gt / number_of_all_cells_gt if number_of_all_cells_gt > 0 else 0
|
|
167
|
+
|
|
168
|
+
mask_image[mask_image < 10] = 0
|
|
169
|
+
label_image_red_mask = measure.label(mask_image[:, :, 0], background=0)
|
|
170
|
+
label_image_blue_mask = measure.label(mask_image[:, :, 2], background=0)
|
|
171
|
+
number_of_positive_cells_mask = (len(np.unique(label_image_red_mask)) - 1)
|
|
172
|
+
number_of_negative_cells_mask = (len(np.unique(label_image_blue_mask)) - 1)
|
|
173
|
+
number_of_all_cells_mask = number_of_positive_cells_mask + number_of_negative_cells_mask
|
|
174
|
+
mask_IHC_score = number_of_positive_cells_mask / number_of_all_cells_mask if number_of_all_cells_mask > 0 else 0
|
|
175
|
+
diff = abs(gt_IHC_score * 100 - mask_IHC_score * 100)
|
|
176
|
+
IHC_info.append({'Model': self.model_name, 'Sample': img, 'Diff_IHC_Score': diff})
|
|
177
|
+
metric_diff_ihc_score += diff
|
|
178
|
+
self.write_list_to_csv(IHC_info, IHC_info[0].keys(),
|
|
179
|
+
filename='IHC_Scoring_info_' + self.mode + '_' + self.model_name + '.csv')
|
|
180
|
+
metric_diff_ihc_score /= len(images)
|
|
181
|
+
print('Diff_IHC_Score:', metric_diff_ihc_score)
|
|
182
|
+
print('-------------------------------------------------------')
|
|
183
|
+
|
|
184
|
+
def compute_segmentation_metrics(self):
|
|
185
|
+
# max_dice = [0, 0, 0]
|
|
186
|
+
# max_AJI = [0, 0, 0]
|
|
187
|
+
# for thresh in range(60, 150, 10):
|
|
188
|
+
# for noise_size in range(10, 80, 20):
|
|
189
|
+
thresh = 100
|
|
190
|
+
boundary_thresh = 100
|
|
191
|
+
noise_size = 50
|
|
192
|
+
print(thresh, noise_size)
|
|
193
|
+
self.segmentation_info, self.segmentation_metrics = compute_segmentation_metrics(self.gt_path, self.model_path, self.model_name, image_size=512, thresh=thresh, boundary_thresh=boundary_thresh, small_object_size=noise_size, raw_segmentation=self.raw_segmentation)
|
|
194
|
+
self.write_list_to_csv(self.segmentation_info, self.segmentation_info[0].keys(),
|
|
195
|
+
filename='segmentation_info_' + self.mode + '_' + self.model_name + '_' + str(thresh) + '_' + str(noise_size) + '.csv')
|
|
196
|
+
for key in self.segmentation_metrics:
|
|
197
|
+
self.all_info[key] = self.segmentation_metrics[key]
|
|
198
|
+
print(key, self.all_info[key])
|
|
199
|
+
print('-------------------------------------------------------')
|
|
200
|
+
|
|
201
|
+
def create_all_info(self):
|
|
202
|
+
self.write_dict_to_csv(self.all_info, list(self.all_info.keys()), filename='metrics_' + self.mode + '_' + self.model_name + '.csv')
|
|
203
|
+
|
|
204
|
+
def compute_statistics(self):
|
|
205
|
+
self.compute_image_similarity_metrics()
|
|
206
|
+
self.compute_segmentation_metrics()
|
|
207
|
+
self.create_all_info()
|
|
208
|
+
|
|
209
|
+
def write_dict_to_csv(self, info_dict, csv_columns, filename='info.csv'):
|
|
210
|
+
print('Writing in csv')
|
|
211
|
+
info_csv = open(os.path.join(self.output_path, filename), 'w')
|
|
212
|
+
writer = csv.DictWriter(info_csv, fieldnames=csv_columns)
|
|
213
|
+
writer.writeheader()
|
|
214
|
+
writer.writerow(info_dict)
|
|
215
|
+
|
|
216
|
+
def write_list_to_csv(self, info_dict, csv_columns, filename='info.csv'):
|
|
217
|
+
print('Writing in csv')
|
|
218
|
+
info_csv = open(os.path.join(self.output_path, filename), 'w')
|
|
219
|
+
writer = csv.DictWriter(info_csv, fieldnames=csv_columns)
|
|
220
|
+
writer.writeheader()
|
|
221
|
+
for data in info_dict:
|
|
222
|
+
writer.writerow(data)
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
if __name__ == '__main__':
|
|
226
|
+
args = parser.parse_args()
|
|
227
|
+
stat = Statistics(args)
|
|
228
|
+
print(stat.mode)
|
|
229
|
+
if stat.mode == 'All':
|
|
230
|
+
stat.compute_statistics()
|
|
231
|
+
stat.compute_IHC_scoring()
|
|
232
|
+
elif stat.mode == 'Segmentation':
|
|
233
|
+
stat.compute_segmentation_metrics()
|
|
234
|
+
stat.compute_IHC_scoring()
|
|
235
|
+
elif stat.mode == 'ImageSynthesis':
|
|
236
|
+
stat.compute_image_similarity_metrics()
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import collections
|
|
2
|
+
import numpy as np
|
|
3
|
+
import matplotlib.pyplot as plt
|
|
4
|
+
|
|
5
|
+
def isfloat(num):
|
|
6
|
+
try:
|
|
7
|
+
float(num)
|
|
8
|
+
return True
|
|
9
|
+
except ValueError:
|
|
10
|
+
return False
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def read_losses(file_name):
|
|
14
|
+
losses = {}
|
|
15
|
+
with open(file_name) as f:
|
|
16
|
+
lines = f.readlines()
|
|
17
|
+
for line in lines:
|
|
18
|
+
if line.startswith('(epoch'):
|
|
19
|
+
line = line.replace(',', '').replace('(', '').replace(')', '').replace(':', '').strip()
|
|
20
|
+
values = line.split(' ')
|
|
21
|
+
current_losses = {}
|
|
22
|
+
epoch_number = -1
|
|
23
|
+
for i in range(len(values)):
|
|
24
|
+
if values[i] == 'epoch':
|
|
25
|
+
epoch_number = int(values[i + 1])
|
|
26
|
+
else:
|
|
27
|
+
if not isfloat(values[i]) and values[i] != 'time' and values[i] != 'iters' and values[i] != 'data':
|
|
28
|
+
print(values[i], values[i + 1])
|
|
29
|
+
current_losses[values[i]] = float(values[i + 1])
|
|
30
|
+
|
|
31
|
+
losses[epoch_number] = current_losses
|
|
32
|
+
loss_values = collections.defaultdict(list)
|
|
33
|
+
for key in losses:
|
|
34
|
+
loss_values['epoch'].append(key)
|
|
35
|
+
for k in losses[key].keys():
|
|
36
|
+
loss_values[k].append(losses[key][k])
|
|
37
|
+
|
|
38
|
+
return loss_values
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def create_loss_diagram(file_name):
|
|
42
|
+
loss_values = read_losses(file_name)
|
|
43
|
+
x = loss_values['epoch']
|
|
44
|
+
plt.figure(figsize=(12, 4))
|
|
45
|
+
for i in range(1, 6):
|
|
46
|
+
plt.plot(x, loss_values['G_GAN_' + str(i)], label='G_GAN_' + str(i))
|
|
47
|
+
# plt.legend()
|
|
48
|
+
# plt.show()
|
|
49
|
+
|
|
50
|
+
# plt.figure()
|
|
51
|
+
for i in range(1, 6):
|
|
52
|
+
plt.plot(x, loss_values['G_L1_' + str(i)], label='G_L1_' + str(i))
|
|
53
|
+
# plt.legend()
|
|
54
|
+
# plt.show()
|
|
55
|
+
|
|
56
|
+
# plt.figure()
|
|
57
|
+
for i in range(1, 6):
|
|
58
|
+
plt.plot(x, loss_values['D_real_' + str(i)], label='D_real_' + str(i))
|
|
59
|
+
# plt.legend()
|
|
60
|
+
# plt.show()
|
|
61
|
+
|
|
62
|
+
# plt.figure()
|
|
63
|
+
for i in range(1, 6):
|
|
64
|
+
plt.plot(x, loss_values['D_fake_' + str(i)], label='D_fake_' + str(i))
|
|
65
|
+
# plt.legend()
|
|
66
|
+
# plt.gca().legend(loc='center left', bbox_to_anchor=(1, 0.5), ncol=5)
|
|
67
|
+
plt.legend(ncol=5)
|
|
68
|
+
plt.show()
|
|
69
|
+
# plt.scatter(x, y)
|
|
70
|
+
# plt.plot(x, y)
|
|
71
|
+
# plt.title("Connected Scatterplot points with line")
|
|
72
|
+
# plt.xlabel("epoch")
|
|
73
|
+
# plt.ylabel("G_GAN_1")
|
|
74
|
+
# plt.show()
|
|
75
|
+
# figure.tight_layout()
|
|
76
|
+
# print(loss_values)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# create_loss_diagram('D://DeepLIIF//checkpoints//DeepLIIF_Empty_500_Model//loss_log.txt')
|
|
80
|
+
# create_loss_diagram('C://Users//localadmin//Desktop//loss_log_SpectralNorm_SYN.txt')
|
|
81
|
+
create_loss_diagram('C://Users//localadmin//Desktop//loss_log_DeepLIIF.txt')
|