def train(regularizations, dataset='mnist', fname='results_softmax_regression_mnist'): train_test_ratio = 0.5 if dataset == 'mnist': x, y, x_test, y_test = get_mnist(train_test_ratio) elif dataset == 'iris': x, y, x_test, y_test = get_iris(train_test_ratio) results = [] for reg_i in xrange(0, len(regularizations)): intermediate_results = [] print "reg:", reg_i for i in xrange(0, 10): print " i:", i reg = regularizations[reg_i] r = tf_softmax_regression.train_softmax(x, y, x_test, y_test, learning_rate=0.005, max_iterations=1000000, regularization=reg, w_diff_term_crit=0.0001, verbose=True) intermediate_results.append(r) results.append(intermediate_results) # print results for el_i in xrange(len(results)): print el_i el = results[el_i] for e in el: print e import pickle pickle.dump(results, open(fname, 'wb'))
def full_failure_recovery(dataset, model_type, regularizations): train_test_ratio = 0.5 if dataset == 'mnist': x, y, x_test, y_test = get_mnist(train_test_ratio) elif dataset == 'iris': x, y, x_test, y_test = get_iris(train_test_ratio) elif dataset == 'diabetes': x, y, x_test, y_test = get_diabetes(train_test_ratio) elif dataset == 'covertype': x, y, x_test, y_test = get_covertype(train_test_ratio) elif dataset == 'boston': x, y, x_test, y_test = get_boston(train_test_ratio) else: print "warning dataset:", dataset, "not found\nexiting!" try: sys.stdout.flush() except IOError as e: if e.errno == errno.EPIPE: print "broken pipe?" return f_name_train = 'results_' + model_type + '_' + dataset f_name_warmstart = 'results_warmstart_' + model_type + '_' + dataset train_all_parallel(x, y, x_test, y_test, fname=f_name_train, model_type=model_type, w_diff_term_crit=w_diff_term_crit, learning_rate=learning_rate, regularizations=regularizations) warmstart_all_parallel(x, y, x_test, y_test, fname_in=f_name_train, fname_out=f_name_warmstart, model_type=model_type, w_diff_term_crit=w_diff_term_crit, learning_rate=learning_rate, regularizations=regularizations) # # warmstart_all_parallel(fname_in='/home/nikste/workspace-python/parallel-failure-recovery/experiments_results/mnist/results_softmax_regression_mnist', dataset='mnist', fname_out='results_softmax_regression_warmstart_mnist') print "training", dataset, model_type, "full failure" try: sys.stdout.flush() except IOError as e: if e.errno == errno.EPIPE: print "broken pipe?" visualize_training_result_from_parallel(f_name_train) visualize_warmstart_result_from_parallel(f_name_warmstart, f_name_train) print "great success!" try: sys.stdout.flush() except IOError as e: if e.errno == errno.EPIPE: print "broken pipe?"
def warmstart(fname_in='results_softmax_regression_mnist', dataset='mnist', fname_out='results_softmax_regression_warmstart_mnist'): train_test_ratio = 0.5 if dataset == 'mnist': x, y, x_test, y_test = get_mnist(train_test_ratio) elif dataset == 'iris': x, y, x_test, y_test = get_iris(train_test_ratio) regularizations = [100., 10., 1., 0.1, 0.01, 0.001, 0.0001] import pickle pretrained_models = pickle.load(open(fname_in, 'rb')) results = [] for reg_i in xrange(0, len(pretrained_models)): # all have same regularization parameter intermediate_results = [] print "reg:", reg_i for i in xrange(0, len(pretrained_models[reg_i])): print " i:", i r_int = [] reg_warmstart = pretrained_models[reg_i][i]['regularization'] model = pretrained_models[reg_i][i]['model:'] for j in xrange(0, len(regularizations)): reg = regularizations[j] print "----training:", reg, "with initialization of:", reg_warmstart # r = tf_linear_regression.train_single_output(x, y, x_test, y_test, learning_rate=0.0001, max_iterations=1000000, regularization=reg, w_diff_term_crit=0.000001, verbose=True) r = tf_logistic_regression.train_softmax_output( x, y, x_test, y_test, learning_rate=0.1, max_iterations=1000000, regularization=reg, w_diff_term_crit=0.000001, verbose=True, model=model) r['initialized_with_regularization'] = reg_warmstart r_int.append(r) intermediate_results.append(r_int) results.append(intermediate_results) pickle.dump(results, open(fname_out, 'wb'))
def partial_failure_recovery(dataset, model_type, regularizations): train_test_ratio = 0.5 if dataset == 'mnist': x, y, x_test, y_test = get_mnist(train_test_ratio) elif dataset == 'iris': x, y, x_test, y_test = get_iris(train_test_ratio) elif dataset == 'diabetes': x, y, x_test, y_test = get_diabetes(train_test_ratio) elif dataset == 'covertype': x, y, x_test, y_test = get_covertype(train_test_ratio) elif dataset == 'boston': x, y, x_test, y_test = get_boston(train_test_ratio) else: print "warning dataset:", dataset, "not found\nexiting!" try: sys.stdout.flush() except IOError as e: if e.errno == errno.EPIPE: print "broken pipe?" return f_name_train = 'results_' + model_type + '_' + dataset f_name_warmstart = 'results_warmstart_corruption_' + model_type + '_' + dataset # train_all_parallel(x, y, x_test, y_test,fname=f_name_train, model_type=model_type, w_diff_term_crit=w_diff_term_crit, learning_rate=learning_rate, regularizations=regularizations) warmstart_partial_all_parallel(x, y, x_test, y_test, fname_in=f_name_train, fname_out=f_name_warmstart, model_type=model_type, w_diff_term_crit=w_diff_term_crit, learning_rate=learning_rate, regularizations=regularizations, corruption_ratio=0.5) # # warmstart_all_parallel(fname_in='/home/nikste/workspace-python/parallel-failure-recovery/experiments_results/mnist/results_softmax_regression_mnist', dataset='mnist', fname_out='results_softmax_regression_warmstart_mnist') print "training", dataset, model_type, "partial failure" try: sys.stdout.flush() except IOError as e: if e.errno == errno.EPIPE: print "broken pipe?" visualize_training_result_from_parallel(f_name_train) visualize_warmstart_result_from_parallel(f_name_warmstart, f_name_train) print "great success!" try: sys.stdout.flush() except IOError as e: if e.errno == errno.EPIPE: print "broken pipe?"
def warmstart(fname_in='results_softmax_regression_mnist', dataset='mnist', fname_out='results_softmax_regression_warmstart_mnist'): train_test_ratio = 0.5 if dataset == 'mnist': x, y, x_test, y_test = get_mnist(train_test_ratio) elif dataset == 'iris': x, y, x_test, y_test = get_iris(train_test_ratio) regularizations = [100., 10., 1., 0.1, 0.01, 0.001, 0.0001] import pickle pretrained_models = pickle.load(open(fname_in, 'rb')) results = [] for reg_i in xrange(0, len(pretrained_models)): # all have same regularization parameter intermediate_results = [] print "reg:", reg_i for i in xrange(0, len(pretrained_models[reg_i])): print " i:", i r_int = [] reg_warmstart = pretrained_models[reg_i][i]['regularization'] model = pretrained_models[reg_i][i]['model:'] for j in xrange(0, len(regularizations)): reg = regularizations[j] print "----training:", reg, "with initialization of:", reg_warmstart # r = tf_linear_regression.train_single_output(x, y, x_test, y_test, learning_rate=0.0001, max_iterations=1000000, regularization=reg, w_diff_term_crit=0.000001, verbose=True) r = tf_logistic_regression.train_softmax_output(x, y, x_test, y_test, learning_rate=0.1, max_iterations=1000000, regularization=reg, w_diff_term_crit=0.000001, verbose=True, model=model) r['initialized_with_regularization'] = reg_warmstart r_int.append(r) intermediate_results.append(r_int) results.append(intermediate_results) pickle.dump(results, open(fname_out, 'wb'))