def train(): print('-'*30) print('Loading and preprocessing train data...') print('-'*30) imgs_train_t1, imgs_train_t2, imgs_gtruth_train = load_train_data() print('-'*30) print('Loading and preprocessing validation data...') print('-'*30) imgs_val_t1, imgs_val_t2, imgs_gtruth_val = load_validatation_data() print('-'*30) print('Creating and compiling model...') print('-'*30) if unet_model_type == 'default': model = get_unet_default() elif unet_model_type == 'reduced': model = get_unet_reduced() elif unet_model_type == 'extended': model = get_unet_extended() model.summary() print('-'*30) print('Fitting model...') print('-'*30) #============================================================================ print('training starting..') #2d_whole_image_model_train.csv log_filename = 'outputs_wnet_depthwise/' + image_type +'_model_train.csv' #Callback that streams epoch results to a csv file. csv_log = callbacks.CSVLogger(log_filename, separator=',', append=True) early_stopping = callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=PATIENCE, verbose=0, mode='min') #checkpoint_filepath = 'outputs/' + image_type +"_best_weight_model_{epoch:03d}_{val_loss:.4f}.hdf5" checkpoint_filepath = 'outputs_wnet_depthwise/' + 'weights.h5' checkpoint = callbacks.ModelCheckpoint(checkpoint_filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min') #callbacks_list = [csv_log, checkpoint] callbacks_list = [csv_log, early_stopping, checkpoint] #============================================================================ hist = model.fit([ imgs_train_t1, imgs_train_t2], imgs_gtruth_train, batch_size=batch_size, nb_epoch=nb_epochs, verbose=1, validation_data=([imgs_val_t1, imgs_val_t2],imgs_gtruth_val), shuffle=True, callbacks=callbacks_list) # validation_split=0.2, model_name = 'outputs_wnet_depthwise/' + image_type + '_model_last' model.save(model_name) # creates a HDF5 file 'my_model.h5'
def train(): print('-'*30) print('Loading and preprocessing train data...') print('-'*30) print('-'*30) print('Loading and preprocessing validation data...') print('-'*30) imgs_train, imgs_gtruth_train ,imgs_val, imgs_gtruth_val= load_train_data() print('train shape:',imgs_train.shape) print('val shape:',imgs_val.shape) print('-'*30) print('Creating and compiling model...') print('-'*30) if unet_model_type == 'default': model = get_unet_default() elif unet_model_type == 'reduced': model = get_unet_reduced() elif unet_model_type == 'extended': model = get_unet_extended() model.summary() print('-'*30) print('Fitting model...') print('-'*30) #============================================================================ print('training starting..') log_filename = 'outputs/' + image_type +'_model_train.csv' #Callback that streams epoch results to a csv file. csv_log = callbacks.CSVLogger(log_filename, separator=',', append=True) early_stopping = callbacks.EarlyStopping(monitor='val_loss', min_delta=0, patience=PATIENCE, verbose=0, mode='min') #checkpoint_filepath = 'outputs/' + image_type +"_best_weight_model_{epoch:03d}_{val_loss:.4f}.hdf5" checkpoint_filepath = 'outputs/' + 'weights.h5' checkpoint = callbacks.ModelCheckpoint(checkpoint_filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min') #callbacks_list = [csv_log, checkpoint] callbacks_list = [csv_log, early_stopping, checkpoint] #============================================================================ history = model.fit(imgs_train, imgs_gtruth_train, batch_size=batch_size, nb_epoch=nb_epochs, verbose=1, validation_data=(imgs_val,imgs_gtruth_val), shuffle=True, callbacks=callbacks_list) # validation_split=0.2, print('Saving model') model_name = 'outputs/' + image_type + '_model_last' model.save(model_name) # creates a HDF5 file 'my_model.h5' print(history.history.keys()) # summarize history for accuracy plt.plot(history.history['acc']) plt.plot(history.history['val_acc']) plt.title('model accuracy') plt.ylabel('accuracy') plt.xlabel('epoch') plt.legend(['train', 'test'], loc='upper left') plt.show() # summarize history for loss plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.title('model loss') plt.ylabel('loss') plt.xlabel('epoch') plt.legend(['train', 'test'], loc='upper left') plt.show()