def test_mnist(self): from loader import mnist_loader training_data, validation_data, test_data = \ mnist_loader.load_data_wrapper() net = network.Network([784, 30, 10]) net.SGD(training_data, 30, 10, 3.0) self.assertTrue(net.evaluate(test_data)*1.0/len(test_data) >= 0.9)
def test_mnist(self): from loader import mnist_loader training_data, validation_data, test_data = \ mnist_loader.load_data_wrapper() net = network.Network([784, 30, 10]) net.SGD(training_data, 30, 10, 3.0) self.assertTrue(net.evaluate(test_data) * 1.0 / len(test_data) >= 0.9)
def test_calc_prediction_accuracy(): loaded_weights = load(filename='test_once_sigmoid_alpha_0.04_batch_100_draw_range_0.001_hidden_neurones_50_' 'test_accuracy_0.968.pkl')['weights'] _, _, test_data = load_data_wrapper("../data") test_data = add_bias(data=test_data) te_in, te_out = test_data weights_tested = loaded_weights[0] assert(calc_prediction_accuracy(SIGMOID.activation, *weights_tested, te_in, te_out) == 0.101) weights_tested = loaded_weights[-1] assert(calc_prediction_accuracy(SIGMOID.activation, *weights_tested, te_in, te_out) == 0.9687)
def test_mlp(): loaded_data = load_data_wrapper("../data") loaded_result = load(filename='test_once_sigmoid_alpha_0.05_batch_100_draw_range_0.2_hidden_neurones_15_mom_0.5_' 'accuracy_0.7321.pkl') np.random.seed(0) result = mlp(data=loaded_data, activation=SIGMOID, alpha=0.05, batch_size=100, draw_range=0.2, hidden_neurones=15, worse_result_limit=1, momentum_param=0.5, use_adagrad=False, images_len_divider=250) for (w11 , w12), (w21, w22) in zip(loaded_result['weights'], result['weights']): assert(np.allclose(a=w11, b=w21)) assert(np.allclose(a=w12, b=w22)) assert (len(loaded_result['weights']) == len(result['weights']))
def run_once(name, params, **kwargs): _, alpha, batch_size, draw_range, hidden_neurones, worse_result_limit, momentum_param, use_adagrad, draw_type \ = (params[p] for p in params) result = mlp(**params, **kwargs) print(result) save( data=result, filename= f'{name}_once_{params["activation"].activation.__name__}_alpha_{alpha}_' f'batch_{batch_size}_draw_range_{draw_range}_hidden_neurones_{hidden_neurones}_' f'mom_{momentum_param}_accuracy_{result["test_accuracies"][-1 - worse_result_limit]}.pkl' ) if __name__ == "__main__": loaded_data = load_data_wrapper("../data") run_once(name='', data=loaded_data, params=get_simul_params(activation=RELU, alpha=0.01, batch_size=10, draw_range=0.0001, hidden_neurones=25, worse_result_limit=3, momentum_param=0.5)) run_once(name='xavier', data=loaded_data, params=get_simul_params(activation=SIGMOID, alpha=0.03, batch_size=100,
def train_model(): training_data, validation_data, test_data = \ mnist_loader.load_data_wrapper() net = network.Network([784, 30, 10]) net.SGD(training_data, 30, 10, 3.0, test_data=test_data) return net
data['activation'] = 'sigmoid' str_to_find = '_simulation_' index = filename.find(str_to_find) + len(str_to_find) new_filename = f'{filename[:index]}sigmoid_{filename[index:]}' # data = load(filename) # hidden_neurones = 'hidden_neurones' # data[hidden_neurones] = 50 # str_to_find = '_draw_range_' # index = filename.find(str_to_find) + len(str_to_find) + 4 # new_filename = f'{filename[:index]}hidden_neurones_50_{filename[index:]}' # save(data=data, filename=new_filename) print("'" + new_filename + "',") if __name__ == "__main__": _, validation_data, test_data = load_data_wrapper("../data") # print_result('test_weights.pkl', test_data) # filename = 'test_alpha_0.04_batch_100_draw_range_1.0_hidden_neurones_50.pkl' # print_result(filename=filename, test_data=test_data) # file = '2_test_alpha_0.01_batch_100_draw_range_0.05_hidden_neurones_25.pkl' # file = 'once_sigmoid_alpha_0.04_batch_100_draw_range_0.2_hidden_neurones_100_res_0.9739.pkl' # test_data = test_data[0], test_data[1] # print_result(filename=file, test_data=test_data) # from saver.saver import save files = [ # 'draw_range_simulation_alpha_0.04_batch_100_draw_range_0.2_hidden_neurones_50_avg_epochs_24.4_times_5.pkl', # 'draw_range_simulation_alpha_0.04_batch_100_draw_range_0.4_hidden_neurones_50_avg_epochs_24.2_times_5.pkl', # 'draw_range_simulation_alpha_0.04_batch_100_draw_range_0.6_hidden_neurones_50_avg_epochs_25.0_times_5.pkl',