# 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
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)