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:
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);
}