def generate_training_data_vol(jobs, case): print("Generating Training Data (Volume)...") images_fn, labels_fn, regint_fn = get_filenames(path, im_name, lb_name, ro_name) kernels = generate_kernels() for i in range(len(images_fn)): if i == case: create_volume_info(images_fn, labels_fn, regint_fn, kernels, i, jobs) break
def generate_training_data(jobs): print("Generating Training Data...") slice_infos = [] images_fn, labels_fn, regint_fn = get_filenames(path, im_name, lb_name, ro_name) kernels = generate_kernels() slice_infos = Parallel(n_jobs=jobs)(delayed(create_sliceinfo_w)(images_fn, labels_fn, regint_fn, kernels, i) for i in range(len(images_fn))) with open(pickle, 'wb') as f: dill.dump(slice_infos, f)
def bigtest(): # really long test to generate SliceInfos at all radiuses images_fn, labels_fn = get_filenames(path, im_name, lb_name) # go through all candidate psizes for p in psizes: global psize psize = p t0 = time() slice_infos = create_sliceinfos_w(images_fn, labels_fn) dt = time() - t0 print("Finished in %.2f seconds." % dt) # save the slice info with open("slice_infos_" + str(psize) + ".pkl", 'wb') as f: dill.dump(slice_infos, f)
def run(): if generate: t0 = time() # get lists of files to process images_fn, labels_fn = get_filenames(path, im_name, lb_name) # generate sliceinfos for all those images if generate == 1: slice_infos = create_sliceinfos(images_fn, labels_fn) elif generate == 2: slice_infos = create_sliceinfos_w(images_fn, labels_fn) print(slice_infos[0].vals_m[:30]) dt = time() - t0 print("Finished in %.2f seconds." % dt) # save the slice info with open(pickle, 'wb') as f: dill.dump(slice_infos, f) else: with open(pickle, 'rb') as f: slice_infos = dill.load(f) total_successes = 0 total_trials = 0 if classify == 1: # Go through each slice and classify PCPs # PCP = principal component patches t0 = time() if len(sys.argv) >= 2: res = Parallel(n_jobs=int(sys.argv[1]))( delayed(test_rf_feats)(slice_infos, i) for i in range(len(slice_infos))) for successes, trials in res: total_successes += successes total_trials += trials else: for i in range(len(slice_infos)): successes, trials = test_rf_feats(slice_infos, i) total_successes += successes total_trials += trials print("Rate: {}/{} = {:.2f}".format( total_successes, total_trials, float(total_successes) / float(total_trials) * 100)) dt = time() - t0 print("Took %.2f seconds." % dt) elif classify == 2: # check classification of all patches for one slice test_rf_feats_fullspec(slice_infos, fullspec_i) pass elif classify == 3: # fully reconstruct for one slice rf_reconstruct(slice_infos, fullspec_i) elif classify == 4: # show the reconstruct for one slice with open(recons, 'rb') as f: recons_im = dill.load(f) real_lb = slice_infos[fullspec_i].slice_lb # for threshval in range(0, 101): # threshval = threshval / 100.0 # recons_th = threshold(recons_im, threshval, True) # print("%.2f" % threshval, "%.2f" % compare_im(recons_th, real_lb)) recons_th = threshold(recons_im, 0.45, True) compare_im(recons_th, real_lb, True)