Commit
·
a27e593
1
Parent(s):
e5764e7
Update
Browse files- COMET/MultiTrain_config.py +27 -4
COMET/MultiTrain_config.py
CHANGED
|
@@ -8,7 +8,7 @@ from configparser import ConfigParser
|
|
| 8 |
from shutil import copy2
|
| 9 |
import os
|
| 10 |
from datetime import datetime
|
| 11 |
-
|
| 12 |
TRAIN_DATASET = '/mnt/EncryptedData1/Users/javier/ext_datasets/COMET_dataset/OSLO_COMET_CT/Formatted_128x128x128/train'
|
| 13 |
|
| 14 |
err = list()
|
|
@@ -28,23 +28,35 @@ if __name__ == '__main__':
|
|
| 28 |
lossesConfig = configFile['LOSSES']
|
| 29 |
datasetConfig = configFile['DATASETS']
|
| 30 |
othersConfig = configFile['OTHERS']
|
|
|
|
| 31 |
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
simil = lossesConfig['similarity'].split(',')
|
| 35 |
segm = lossesConfig['segmentation'].split(',')
|
| 36 |
if trainConfig['name'].lower() == 'uw':
|
| 37 |
from COMET.COMET_train_UW import launch_train
|
| 38 |
output_folder = os.path.join(othersConfig['outputFolder'], '{}_Lsim_{}__Lseg_{}'.format(trainConfig['name'], '_'.join(simil), '_'.join(segm)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
else:
|
| 40 |
from COMET.COMET_train import launch_train
|
| 41 |
simil = simil[0]
|
| 42 |
segm = segm[0]
|
| 43 |
-
output_folder = os.path.join(othersConfig['outputFolder'], '{}_Lsim_{}
|
| 44 |
output_folder = output_folder + '_' + datetime.now().strftime("%H%M%S-%d%m%Y")
|
| 45 |
|
| 46 |
try:
|
| 47 |
froozen_layers = eval(trainConfig['freeze'])
|
|
|
|
|
|
|
| 48 |
except NameError as err:
|
| 49 |
froozen_layers = [trainConfig['freeze'].upper()]
|
| 50 |
if froozen_layers is not None:
|
|
@@ -52,10 +64,18 @@ if __name__ == '__main__':
|
|
| 52 |
'Invalid option for "freeze". Expected one or several of: INPUT, OUTPUT, ENCODER, DECODER, TOP, BOTTOM'
|
| 53 |
froozen_layers = list(set(froozen_layers)) # Unique elements
|
| 54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
# copy the configuration file to the destionation folder
|
| 56 |
os.makedirs(output_folder, exist_ok=True)
|
| 57 |
copy2(args.ini, os.path.join(output_folder, os.path.split(args.ini)[-1]))
|
| 58 |
|
|
|
|
|
|
|
|
|
|
| 59 |
launch_train(dataset_folder=datasetConfig['train'],
|
| 60 |
validation_folder=datasetConfig['validation'],
|
| 61 |
output_folder=output_folder,
|
|
@@ -65,7 +85,10 @@ if __name__ == '__main__':
|
|
| 65 |
simil=simil,
|
| 66 |
segm=segm,
|
| 67 |
max_epochs=eval(trainConfig['epochs']),
|
|
|
|
| 68 |
model_file=trainConfig['model'],
|
| 69 |
freeze_layers=froozen_layers,
|
| 70 |
acc_gradients=eval(trainConfig['accumulativeGradients']),
|
| 71 |
-
batch_size=eval(trainConfig['batchSize'])
|
|
|
|
|
|
|
|
|
| 8 |
from shutil import copy2
|
| 9 |
import os
|
| 10 |
from datetime import datetime
|
| 11 |
+
import DeepDeformationMapRegistration.utils.constants as C
|
| 12 |
TRAIN_DATASET = '/mnt/EncryptedData1/Users/javier/ext_datasets/COMET_dataset/OSLO_COMET_CT/Formatted_128x128x128/train'
|
| 13 |
|
| 14 |
err = list()
|
|
|
|
| 28 |
lossesConfig = configFile['LOSSES']
|
| 29 |
datasetConfig = configFile['DATASETS']
|
| 30 |
othersConfig = configFile['OTHERS']
|
| 31 |
+
augmentationConfig = configFile['AUGMENTATION']
|
| 32 |
|
| 33 |
+
try:
|
| 34 |
+
print('TRAIN MODEL IN' + trainConfig['model'])
|
| 35 |
+
except KeyError as er:
|
| 36 |
+
trainConfig['model'] = ''
|
| 37 |
|
| 38 |
simil = lossesConfig['similarity'].split(',')
|
| 39 |
segm = lossesConfig['segmentation'].split(',')
|
| 40 |
if trainConfig['name'].lower() == 'uw':
|
| 41 |
from COMET.COMET_train_UW import launch_train
|
| 42 |
output_folder = os.path.join(othersConfig['outputFolder'], '{}_Lsim_{}__Lseg_{}'.format(trainConfig['name'], '_'.join(simil), '_'.join(segm)))
|
| 43 |
+
elif trainConfig['name'].lower() == 'segguided':
|
| 44 |
+
from COMET.COMET_train_seggguided import launch_train
|
| 45 |
+
simil = simil[0]
|
| 46 |
+
segm = segm[0]
|
| 47 |
+
output_folder = os.path.join(othersConfig['outputFolder'],
|
| 48 |
+
'{}_Lsim_{}__Lseg_{}'.format(trainConfig['name'], simil, segm))
|
| 49 |
else:
|
| 50 |
from COMET.COMET_train import launch_train
|
| 51 |
simil = simil[0]
|
| 52 |
segm = segm[0]
|
| 53 |
+
output_folder = os.path.join(othersConfig['outputFolder'], '{}_Lsim_{}'.format(trainConfig['name'], simil))
|
| 54 |
output_folder = output_folder + '_' + datetime.now().strftime("%H%M%S-%d%m%Y")
|
| 55 |
|
| 56 |
try:
|
| 57 |
froozen_layers = eval(trainConfig['freeze'])
|
| 58 |
+
except KeyError as err:
|
| 59 |
+
froozen_layers = None
|
| 60 |
except NameError as err:
|
| 61 |
froozen_layers = [trainConfig['freeze'].upper()]
|
| 62 |
if froozen_layers is not None:
|
|
|
|
| 64 |
'Invalid option for "freeze". Expected one or several of: INPUT, OUTPUT, ENCODER, DECODER, TOP, BOTTOM'
|
| 65 |
froozen_layers = list(set(froozen_layers)) # Unique elements
|
| 66 |
|
| 67 |
+
if augmentationConfig:
|
| 68 |
+
C.GAMMA_AUGMENTATION = augmentationConfig['gamma'].lower() == 'true'
|
| 69 |
+
C.BRIGHTNESS_AUGMENTATION = augmentationConfig['brightness'].lower() == 'true'
|
| 70 |
+
|
| 71 |
+
|
| 72 |
# copy the configuration file to the destionation folder
|
| 73 |
os.makedirs(output_folder, exist_ok=True)
|
| 74 |
copy2(args.ini, os.path.join(output_folder, os.path.split(args.ini)[-1]))
|
| 75 |
|
| 76 |
+
unet = [int(x) for x in trainConfig['unet'].split(',')] if trainConfig['unet'] else [16, 32, 64, 128, 256]
|
| 77 |
+
head = [int(x) for x in trainConfig['head'].split(',')] if trainConfig['head'] else [16, 16]
|
| 78 |
+
|
| 79 |
launch_train(dataset_folder=datasetConfig['train'],
|
| 80 |
validation_folder=datasetConfig['validation'],
|
| 81 |
output_folder=output_folder,
|
|
|
|
| 85 |
simil=simil,
|
| 86 |
segm=segm,
|
| 87 |
max_epochs=eval(trainConfig['epochs']),
|
| 88 |
+
early_stop_patience=eval(trainConfig['earlyStopPatience']),
|
| 89 |
model_file=trainConfig['model'],
|
| 90 |
freeze_layers=froozen_layers,
|
| 91 |
acc_gradients=eval(trainConfig['accumulativeGradients']),
|
| 92 |
+
batch_size=eval(trainConfig['batchSize']),
|
| 93 |
+
unet=unet,
|
| 94 |
+
head=head)
|