1
- ## Copied from BiaPy commit: 5505d3e3c0499fbed2e4f162e665a529931ca110
1
+ ## Copied from BiaPy commit: a0f3ee1e03b9e5a7d749ca029d4e8dcecc02adc1 (3.3.10)
2
2
import os
3
3
import numpy as np
4
4
import collections
@@ -10,6 +10,9 @@ def check_configuration(cfg, jobname, check_data_paths=True):
10
10
Check if the configuration is good.
11
11
"""
12
12
13
+ if cfg .SYSTEM .NUM_WORKERS < 0 :
14
+ raise ValueError ("'SYSTEM.NUM_WORKERS' can not be less than 0" )
15
+
13
16
dim_count = 2 if cfg .PROBLEM .NDIM == '2D' else 3
14
17
15
18
# Adjust overlap and padding in the default setting if it was not set
@@ -148,8 +151,8 @@ def check_configuration(cfg, jobname, check_data_paths=True):
148
151
149
152
#### General checks ####
150
153
assert cfg .PROBLEM .NDIM in ['2D' , '3D' ], "Problem needs to be '2D' or '3D'"
151
- assert cfg .PROBLEM .TYPE in ['SEMANTIC_SEG' , 'INSTANCE_SEG' , 'CLASSIFICATION' , 'DETECTION' , 'DENOISING' , 'SUPER_RESOLUTION' , 'SELF_SUPERVISED' ],\
152
- "PROBLEM.TYPE not in ['SEMANTIC_SEG', 'INSTANCE_SEG', 'CLASSIFICATION', 'DETECTION', 'DENOISING', 'SUPER_RESOLUTION', 'SELF_SUPERVISED']"
154
+ assert cfg .PROBLEM .TYPE in ['SEMANTIC_SEG' , 'INSTANCE_SEG' , 'CLASSIFICATION' , 'DETECTION' , 'DENOISING' , 'SUPER_RESOLUTION' , 'SELF_SUPERVISED' , 'IMAGE_TO_IMAGE' ],\
155
+ "PROBLEM.TYPE not in ['SEMANTIC_SEG', 'INSTANCE_SEG', 'CLASSIFICATION', 'DETECTION', 'DENOISING', 'SUPER_RESOLUTION', 'SELF_SUPERVISED', 'IMAGE_TO_IMAGE' ]"
153
156
154
157
if cfg .PROBLEM .NDIM == '3D' and cfg .TEST .FULL_IMG :
155
158
print ("WARNING: TEST.FULL_IMG == True while using PROBLEM.NDIM == '3D'. As 3D images are usually 'huge'"
@@ -300,9 +303,11 @@ def check_configuration(cfg, jobname, check_data_paths=True):
300
303
301
304
#### Super-resolution ####
302
305
elif cfg .PROBLEM .TYPE == 'SUPER_RESOLUTION' :
303
- if cfg .PROBLEM .SUPER_RESOLUTION .UPSCALING == 1 :
306
+ if not ( cfg .PROBLEM .SUPER_RESOLUTION .UPSCALING ) :
304
307
raise ValueError ("Resolution scale must be provided with 'PROBLEM.SUPER_RESOLUTION.UPSCALING' variable" )
305
- assert cfg .PROBLEM .SUPER_RESOLUTION .UPSCALING in [2 , 4 ], "PROBLEM.SUPER_RESOLUTION.UPSCALING not in [2, 4]"
308
+ assert all ( i > 0 for i in cfg .PROBLEM .SUPER_RESOLUTION .UPSCALING ), "'PROBLEM.SUPER_RESOLUTION.UPSCALING' are not positive integers"
309
+ if len (cfg .PROBLEM .SUPER_RESOLUTION .UPSCALING ) != dim_count :
310
+ raise ValueError (f"'PROBLEM.SUPER_RESOLUTION.UPSCALING' needs to be a tuple of { dim_count } integers" )
306
311
if cfg .MODEL .SOURCE == "torchvision" :
307
312
raise ValueError ("'MODEL.SOURCE' as 'torchvision' is not available in super-resolution workflow" )
308
313
if cfg .DATA .NORMALIZATION .TYPE != "div" :
@@ -539,15 +544,7 @@ def check_configuration(cfg, jobname, check_data_paths=True):
539
544
540
545
# Adjust Z_DOWN values to feature maps
541
546
if all (x == 0 for x in cfg .MODEL .Z_DOWN ):
542
- opts .extend (['MODEL.Z_DOWN' , (2 ,)* (len (cfg .MODEL .FEATURE_MAPS )- 1 )])
543
- opts .extend (['MODEL.Z_DOWN' , (2 ,)* (len (cfg .MODEL .FEATURE_MAPS )- 1 )])
544
- elif (cfg .PROBLEM .TYPE == 'SUPER_RESOLUTION' and cfg .PROBLEM .NDIM == '3D' ) and \
545
- any (x != 1 for x in cfg .MODEL .Z_DOWN ):
546
- raise ValueError ("'MODEL.Z_DOWN' != 1 not allowed in super-resolution workflow" )
547
547
opts .extend (['MODEL.Z_DOWN' , (2 ,)* (len (cfg .MODEL .FEATURE_MAPS )- 1 )])
548
- elif (cfg .PROBLEM .TYPE == 'SUPER_RESOLUTION' and cfg .PROBLEM .NDIM == '3D' ) and \
549
- any (x != 1 for x in cfg .MODEL .Z_DOWN ):
550
- raise ValueError ("'MODEL.Z_DOWN' != 1 not allowed in super-resolution workflow" )
551
548
elif any ([False for x in cfg .MODEL .Z_DOWN if x != 1 and x != 2 ]):
552
549
raise ValueError ("'MODEL.Z_DOWN' needs to be 1 or 2" )
553
550
else :
@@ -556,6 +553,10 @@ def check_configuration(cfg, jobname, check_data_paths=True):
556
553
elif len (cfg .MODEL .FEATURE_MAPS )- 1 != len (cfg .MODEL .Z_DOWN ):
557
554
raise ValueError ("'MODEL.FEATURE_MAPS' length minus one and 'MODEL.Z_DOWN' length must be equal" )
558
555
556
+ # Correct UPSCALING for other workflows than SR
557
+ if len (cfg .PROBLEM .SUPER_RESOLUTION .UPSCALING ) == 0 :
558
+ opts .extend (['PROBLEM.SUPER_RESOLUTION.UPSCALING' , (1 ,)* dim_count ])
559
+
559
560
if len (opts ) > 0 :
560
561
cfg .merge_from_list (opts )
561
562
0 commit comments