예제 #1
0
파일: test.py 프로젝트: liuyonggg/dnn
    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)
예제 #2
0
    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)
예제 #3
0
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)
예제 #4
0
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']))
예제 #5
0
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,
예제 #6
0
파일: mnist.py 프로젝트: liuyonggg/dnn
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
예제 #7
0
    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',
예제 #8
0
파일: mnist.py 프로젝트: liuyonggg/dnn
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