jacobian

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 7ad46a62f21deaf78af985eb00a7d92c8706b543
parent a925d1e2f1a12f633e731cd9c63ba425ac85e378
Author: David Freifeld <freifeld.david@gmail.com>
Date:   Wed,  1 Jul 2020 19:14:49 -0700

Validation step now functional

Diffstat:
Mbpnn.cpp | 11++++-------
Mbpnn.hpp | 2+-
Mexample.cpp | 3+--
Mmr_bpnn_2.cpp | 4++--
4 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/bpnn.cpp b/bpnn.cpp @@ -40,12 +40,12 @@ void Layer::init_weights(Layer next) } } -Network::Network(char* path, int batch_sz, float learn_rate, float bias_rate) +Network::Network(char* path, int batch_sz, float learn_rate, float bias_rate, float ratio) { learning_rate = learn_rate; bias_lr = bias_rate; int total_instances = prep_file(path, SHUFFLED_PATH); - test_instances = split_file(SHUFFLED_PATH, total_instances, 0.7); + test_instances = split_file(SHUFFLED_PATH, total_instances, ratio); instances = total_instances - test_instances; length = 0; t = 0; @@ -273,14 +273,11 @@ float Network::test(char* path) float batch[datalen]; int label = -1; for (int i = 0; i < batch_size; i++) { - fgets(line, MAXLINE, data); - printf("Next line: %s\n", line); + fgets(line, MAXLINE, test_data); + //if (strcmp(line, "\n")==0) continue; char *p; p = strtok(line,","); - printf("Finish strtok\n"); for (int j = 0; j < inputs; j++) { - printf("%s\n", p); - printf("Enter strtod loop\n"); batch[j + (i * inputs)] = strtod(p, NULL); p = strtok(NULL,","); } diff --git a/bpnn.hpp b/bpnn.hpp @@ -49,7 +49,7 @@ public: int batches; Eigen::MatrixXd* labels; - Network(char* path, int batch_sz, float learn_rate, float bias_rate); + Network(char* path, int batch_sz, float learn_rate, float bias_rate, float ratio); void add_layer(int nodes, char* activation); void initialize(); void update_layer(float* vals, int datalen, int index); diff --git a/example.cpp b/example.cpp @@ -6,7 +6,7 @@ double bench(int batch_sz) { auto start = std::chrono::high_resolution_clock::now(); - Network net ("./data_banknote_authentication.txt", batch_sz, 0.0155, 0.03); + Network net ("./data_banknote_authentication.txt", batch_sz, 0.0155, 0.03, 0.9); net.add_layer(4, "linear"); net.add_layer(5, "relu"); net.add_layer(1, "resig"); @@ -18,6 +18,5 @@ double bench(int batch_sz) int main() { - sleep(10); bench(10); } diff --git a/mr_bpnn_2.cpp b/mr_bpnn_2.cpp @@ -107,7 +107,7 @@ PYBIND11_MODULE(mrbpnn, m) { m.doc() = "Fast machine learning in C++"; // optional module docstring py::class_<Network>(m, "Network") - .def(py::init<char*, int, float, float>()) + .def(py::init<char*, int, float, float, float>()) .def("add_layer", &Network::add_layer, py::arg("nodes"), py::arg("activation")) .def("initialize", &Network::initialize) .def("set_activation", &Network::set_activation) @@ -119,6 +119,6 @@ PYBIND11_MODULE(mrbpnn, m) { .def("update_layer", &Network::update_layer, py::arg("vals"), py::arg("len"), py::arg("index")) .def("next_batch", &Network::next_batch) .def("train", &Network::train, py::arg("epochs")) - .def("get_acc", &Network::get_acc) + .def("get_acc", &Network::get_acc)x .def("get_cost", &Network::get_cost); }