Esempio n. 1
0
# Task1
from dataloader import gen_list, shuffle_split, read_data
from Unet import get_UNet
from plot import plot_learning_curve
from metrics import dice_coef_loss, dice_coef
# Read the data 
path = '/Lab1/Lab3/X_ray/'
img_h, img_w = 256, 256
Mask = gen_list(path, 'Mask')
Img = gen_list(path,'Image')

Mask_train, Mask_val, Img_train, Img_val = shuffle_split(Mask, Img, 0.8)
Mask_train = read_data(path+'Mask/', Mask_train, img_h, img_w)
Mask_val = read_data(path+'Mask/', Mask_val, img_h, img_w)
Img_train = read_data(path+'Image/', Img_train, img_h, img_w)
Img_val = read_data(path+'Image/', Img_val, img_h, img_w)

# Train the model
model = get_UNet(img_shape=(256,256,1), Base=16, depth=4, inc_rate=2, 
                 activation='relu', drop=0.5, batchnorm=True)

model.compile(optimizer=Adam(lr=0.0001), loss='binary_crossentropy', 
              metrics=[dice_coef])

History = model.fit(Img_train, Mask_train, batch_size=8, epochs=150, verbose=2, 
                    validation_data=(Img_val, Mask_val))

# Plot the learning curve
plot_learning_curve(History, 'Task1a')

# Train the model
Esempio n. 2
0
              metrics=['accuracy'])

History = model.fit_generator(MyBatchGenerator(X_train, y_train, batch_size=1),
                              epochs=50,
                              validation_data=MyBatchGenerator(X_val,
                                                               y_val,
                                                               batch_size=1),
                              validation_steps=len(X_val))

plot_learning_curve(History, 'Task2_units={0}_loss'.format(units))
plot_validation_metric_2(History, 'Task2_units={0}_metrics'.format(units))
''' Task 3 '''

path = '/Lab1/Lab3/MRI/'
img_h, img_w = 240, 240
Mask = sorted(gen_list(path, 'Mask'))
Img = sorted(gen_list(path, 'Image'))

Mask_train, Mask_val, Img_train, Img_val = shuffle_split(Mask, Img, 0.8)
Mask_train = read_data(path + 'Mask/', Mask_train, img_h, img_w)
Mask_val = read_data(path + 'Mask/', Mask_val, img_h, img_w)
Img_train = read_data(path + 'Image/', Img_train, img_h, img_w)
Img_val = read_data(path + 'Image/', Img_val, img_h, img_w)

data_gen_args = dict(rotation_range=5,
                     width_shift_range=0.1,
                     height_shift_range=0.1,
                     validation_split=0.2)
image_train_datagen = ImageDataGenerator(**data_gen_args)
mask_train_datagen = ImageDataGenerator(**data_gen_args)
image_val_datagen = ImageDataGenerator(**data_gen_args)