val_target_stat = np.exp(val_target_logit) val_target_AUC = roc_auc_score(yt_val, val_target_stat) test_auc_list.append(test_target_AUC) val_auc_list.append(val_target_AUC) np.savetxt(DA_model_folder + '/test_auc.txt', test_auc_list) np.savetxt(DA_model_folder + '/val_auc.txt', val_auc_list) # loss M_loss_list.append( M_loss ) # ;D_loss_list.append(D_loss);sC_loss_list.append(sC_loss) np.savetxt(DA_model_folder + '/MMD_loss.txt', M_loss_list) # np.savetxt(DA_model_folder+'/G_loss.txt',G_loss_list); np.savetxt(DA_model_folder + '/src_clf_loss.txt', sC_loss_list) # print and plot results print_block(symbol='-', nb_sybl=60) print_yellow(os.path.basename(DA_model_folder)) if nb_trg_labels > 0: train_auc_list.append(train_target_AUC) tC_loss_list.append(tC_loss) np.savetxt(os.path.join(DA_model_folder, 'trg_train_auc.txt'), train_auc_list) np.savetxt(os.path.join(DA_model_folder, 'trg_clf_loss.txt'), tC_loss_list) print_green( 'AUC: T-test {0:.4f}, T-valid {1:.4f}, T-train {2:.4f}, S-test: {3:.4f}' .format(test_target_AUC, val_target_AUC, train_target_AUC, test_source_AUC)) print_yellow( 'Loss: D:{:.4f}, S:{:.4f}, T:{:.4f}, Iter:{:}'.format( M_loss, sC_loss, tC_loss, iteration)) plot_LOSS(
np.savetxt(os.path.join(DA_model_folder, 'test_auc.txt'), test_auc_list) np.savetxt(os.path.join(DA_model_folder, 'val_auc.txt'), val_auc_list) # np.savetxt(os.path.join(DA_model_folder,'dom_acc.txt'), dom_acc_list) np.savetxt(os.path.join(DA_model_folder, 'D_loss.txt'), D_loss_list) np.savetxt(os.path.join(DA_model_folder, 'G_loss.txt'), G_loss_list) np.savetxt(os.path.join(DA_model_folder, 'MMD_loss.txt'), mmd_loss_list) np.savetxt(os.path.join(DA_model_folder, 'src_clf_loss.txt'), sC_loss_list) # print and plot results print_block(symbol='-', nb_sybl=60) print_yellow(os.path.basename(DA_model_folder)) if nb_trg_labels > 0: train_auc_list.append(train_target_AUC) tC_loss_list.append(tC_loss) np.savetxt(os.path.join(DA_model_folder, 'train_auc.txt'), train_auc_list) np.savetxt(os.path.join(DA_model_folder, 'trg_clf_loss.txt'), tC_loss_list) print_green( 'AUC: T-test {0:.4f}, T-valid {1:.4f}, T-train {2:.4f}, S-test: {3:.4f}' .format(test_target_AUC, val_target_AUC, train_target_AUC, test_source_AUC)) print_yellow( 'Loss: D:{0:.4f}, G:{1:.4f}, MMD:{2:.4f} S:{3:.4f}, T:{4:.4f}, Iter:{5:}' .format(D_loss, G_loss, M_loss, sC_loss, tC_loss, iteration))
test_auc_list) np.savetxt(os.path.join(DA_model_folder, 'val_auc.txt'), val_auc_list) np.savetxt(os.path.join(DA_model_folder, 'dom_acc.txt'), dom_acc_list) np.savetxt(os.path.join(DA_model_folder, 'D_loss.txt'), D_loss_list) np.savetxt(os.path.join(DA_model_folder, 'G_loss.txt'), G_loss_list) np.savetxt(os.path.join(DA_model_folder, 'MMD_loss.txt'), mmd_loss_list) np.savetxt(os.path.join(DA_model_folder, 'src_clf_loss.txt'), sC_loss_list) # print and plot results print_block(symbol='-', nb_sybl=60) print_yellow(os.path.basename(DA_model_folder)) if nb_trg_labels > 0: train_auc_list.append(train_target_AUC) tC_loss_list.append(tC_loss) np.savetxt(os.path.join(DA_model_folder, 'train_auc.txt'), train_auc_list) np.savetxt(os.path.join(DA_model_folder, 'trg_clf_loss.txt'), tC_loss_list) print_green( 'AUC: T-test {0:.4f}, T-valid {1:.4f}, T-train {2:.4f}, S-test: {3:.4f}; ACC: dom {4:.4f}' .format(test_target_AUC, val_target_AUC, train_target_AUC, test_source_AUC, domain_acc)) print_yellow( 'Loss: D:{0:.4f}, G:{1:.4f}, MMD:{2:.4f} S:{3:.4f}, T:{4:.4f}, Iter:{5:}' .format(D_loss, G_loss, M_loss, sC_loss, tC_loss, iteration))
if docker: dataset_dir = '../data/minidataset/' else: dataset_dir = './data/Phase_fluo_Cells/0_FUCCI_Timelapse/' phase_img_folder = dataset_dir + 'f0_phase_cropped/' fl1_img_folder = dataset_dir + 'f0_fl1_cropped/' fl2_img_folder = dataset_dir + 'f0_fl2_cropped/' phase_img_files = glob.glob(phase_img_folder + '*.tif') fl1_img_files = glob.glob(fl1_img_folder + '*.tif') fl2_img_files = glob.glob(fl2_img_folder + '*.tif') nb_imgs = 6 for i in range(nb_imgs): print_yellow(os.path.basename(phase_img_files[i])) print_red(os.path.basename(fl1_img_files[i])) print_green(os.path.basename(fl2_img_files[i])) # plt.ion(); fig = plt.figure(1) index = 1 pha_file_name = os.path.basename(phase_img_files[index]) fl1_file_name = pha_file_name.replace('ch0', 'ch1').replace('mhilbert', 'mFL1') fl2_file_name = pha_file_name.replace('ch0', 'ch2').replace('mhilbert', 'mFL2') pha_img = io.imread(phase_img_folder + pha_file_name) fl1_img = io.imread(fl1_img_folder + fl1_file_name) fl2_img = io.imread(fl2_img_folder + fl2_file_name) print(pha_file_name) print(fl1_file_name)
# loss_norm = cost.eval(session = sess, feed_dict = {x:X_SA_tst,is_training: False}) # loss_anomaly = cost.eval(session = sess, feed_dict = {x:X_SP_tst,is_training: False}) # reconstructed images # Yn = y.eval(session = sess, feed_dict = {x: X_SA_tst,is_training: False}); Ya = y.eval(session = sess, feed_dict = {x: X_SP_tst, is_training:False}) y_recon = np.concatenate([Yn, Ya], axis=0) # reconstruction errors-based detection # norm_err_map = err_map.eval(session = sess, feed_dict = {x: X_SA_tst,is_training: False}); anomaly_err_map = err_map.eval(session = sess, feed_dict = {x: X_SP_tst,is_training: False}) recon_err_map = np.concatenate([norm_err_map, anomaly_err_map], axis=0) recon_errs = np.apply_over_axes(np.mean, recon_err_map, [1, 2, 3]).flatten() AE_auc = roc_auc_score(yt, recon_errs) # print out results print_block(symbol='-', nb_sybl=50) print(model_name) print_yellow('LOSS: T {0:.4f}, V {1:.4f}, Norm {2:.4f}, Anomaly {3:.4f}; AUC: AE {4:.4f}, M: {5:.4f}; iter {6:}'.\ format(loss_trn, loss_val, loss_norm, loss_anomaly, AE_auc, MP_auc, iteration)) # save model if iteration % 10000 == 0: saver.save(sess, model_folder + '/model', global_step=iteration) print_red('Update model') # save results loss_trn_list, loss_val_list, loss_norm_list, loss_anomaly_list, auc_list =\ np.append(loss_trn_list, loss_trn), np.append(loss_val_list, loss_val),\ np.append(loss_norm_list, loss_norm), np.append(loss_anomaly_list, loss_anomaly), np.append(auc_list, AE_auc) np.savetxt(model_folder + '/train_loss.txt', loss_trn_list) np.savetxt(model_folder + '/val_loss.txt', loss_val_list) np.savetxt(model_folder + '/norm_loss.txt', loss_norm_list) np.savetxt(model_folder + '/anomaly_loss.txt', loss_anomaly_list) plot_LOSS(model_folder + '/loss-{}.png'.format(model_name), 0,
}) if nb_trg_labels > 0: trg_loss = target_loss.eval(session=sess, feed_dict={ xt1: batch_x, yt1: batch_y, is_training: False }) trg_trn_stat = target_logit_l.eval(session=sess, feed_dict={ xt1: batch_x, is_training: False }) trg_trn_auc = roc_auc_score(batch_y, trg_trn_stat) print_yellow( 'Train with target labels:loss {0:.4f} auc {1:.4f}'.format( trg_loss, trg_trn_auc)) trg_loss_list, trg_trn_auc_list = np.append( trg_loss_list, trg_loss), np.append(trg_trn_auc_list, trg_trn_auc) np.savetxt(DA_model_folder + '/target_train_loss.txt', trg_loss_list) np.savetxt(DA_model_folder + '/target_train_auc.txt', trg_trn_auc_list) src_trn_stat = source_logit.eval(session=sess, feed_dict={ xs: source_x, is_training: False }) src_trn_auc = roc_auc_score(source_y, src_trn_stat) src_stat = source_logit.eval(session=sess,
find_points.append((xc + i, yc + j)) return find_points for image_indx in range(len(image_ids)): # Load the map image_id = image_ids[image_indx] pha_file_name = os.path.basename(phase_img_files[image_id]) mask_file_name = 'm_' + pha_file_name.replace('ch0', 'ch4').replace( 'mhilbert', 'mFL4') pha_img = io.imread(phase_img_folder + pha_file_name) pha_img = pha_img[::2, ::2] map = io.imread(combined_masks + mask_file_name) map = map[::2, ::2] if image_indx % 10 == 0: print_yellow('The {}-th image'.format(image_indx)) print_yellow(mask_files[image_id]) print_green(combined_masks + mask_file_name) mask_list = [] # Generate the edge masks for all objects uni_values = np.unique(map) for cls_indx in range(1, len(uni_values)): map_layer = map == uni_values[cls_indx] mask_ext = np.zeros([map_layer.shape[0] + 2, map_layer.shape[1] + 2]) shp = map_layer.shape mask_ext[1:-1, 1:-1] = map_layer masks = np.zeros(map_layer.shape + (9, )) for i in range(-1, 2): for j in range(-1, 2): masks[:, :,
test_source_logit = model_test(sess, source_logit, xs, Xs_tst) # test_source_logit=source_logit.eval(session=sess,feed_dict={xs:Xs_tst,g_training:False,d_training:False}) test_source_stat=np.exp(test_source_logit);test_source_AUC=roc_auc_score(ys_tst,test_source_stat);src_test_list.append(test_source_AUC) # test_target_logit = target_logit.eval(session=sess,feed_dict={xt:Xt_tst, g_training: False, d_training: False}) test_target_logit = model_test(sess, target_logit, xt, Xt_tst) test_target_stat = np.exp(test_target_logit);test_target_AUC = roc_auc_score(yt_tst, test_target_stat) val_target_logit = target_logit.eval(session=sess,feed_dict={xt:Xt_val, g_training: False}) val_target_stat = np.exp(val_target_logit);val_target_AUC = roc_auc_score(yt_val, val_target_stat) test_auc_list.append(test_target_AUC);val_auc_list.append(val_target_AUC) np.savetxt(DA_model_folder+'/test_auc.txt', test_auc_list);np.savetxt(DA_model_folder+'/val_auc.txt', val_auc_list) # loss M_loss_list.append(M_loss)# ;D_loss_list.append(D_loss);sC_loss_list.append(sC_loss) np.savetxt(DA_model_folder+'/MMD_loss.txt',M_loss_list);# np.savetxt(DA_model_folder+'/G_loss.txt',G_loss_list); np.savetxt(DA_model_folder+'/src_clf_loss.txt',sC_loss_list) # print and plot results print_block(symbol = '-', nb_sybl = 60);print_yellow(os.path.basename(DA_model_folder)) if nb_trg_labels > 0: train_auc_list.append(train_target_AUC);tC_loss_list.append(tC_loss) np.savetxt(os.path.join(DA_model_folder,'trg_train_auc.txt'), train_auc_list) np.savetxt(os.path.join(DA_model_folder,'trg_clf_loss.txt'),tC_loss_list) print_green('AUC: T-test {0:.4f}, T-valid {1:.4f}, T-train {2:.4f}, S-test: {3:.4f}'.format(test_target_AUC, val_target_AUC, train_target_AUC, test_source_AUC)) print_yellow('Loss: D:{:.4f}, S:{:.4f}, T:{:.4f}, Iter:{:}'.format(M_loss, sC_loss, tC_loss, iteration)) plot_LOSS(DA_model_folder+'/loss_{}.png'.format(DA_model_name), M_loss_list, sC_loss_list, tC_loss_list) plot_loss(DA_model_folder, M_loss_list, M_loss_list, DA_model_folder+'/MMD_loss_{}.png'.format(DA_model_name)) plot_src_trg_AUCs(DA_model_folder+'/AUC_src_{}.png'.format(DA_model_name), train_auc_list, val_auc_list, test_auc_list, src_test_list) plot_AUCs(DA_model_folder+'/AUC_trg_{}.png'.format(DA_model_name), train_auc_list, val_auc_list, test_auc_list) else: print_green('AUC: T-test {0:.4f}, T-valid {1:.4f}, S-test: {2:.4f}'.format(test_target_AUC, val_target_AUC, test_source_AUC)) print_yellow('Loss: D:{:.4f}, S:{:.4f}, Iter:{:}'.format(M_loss, sC_loss, iteration)) plot_loss(DA_model_folder, M_loss_list, sC_loss_list, DA_model_folder+'/loss_{}.png'.format(DA_model_name)) plot_loss(DA_model_folder, M_loss_list, M_loss_list, DA_model_folder+'/MMD_lOSS_{}.png'.format(DA_model_name))