jacobian

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

commit d14fd2ea92b0e993b0acff196681432a10872560
parent 400bc3fc89df265d386cdef4d070846e4554859e
Author: David Freifeld <freifeld.david@gmail.com>
Date:   Mon, 29 Jun 2020 23:08:00 -0700

Compiling has exploded, several bugs noticed

Diffstat:
MMakefile | 4++--
Mbpnn.cpp | 19+++----------------
2 files changed, 5 insertions(+), 18 deletions(-)

diff --git a/Makefile b/Makefile @@ -10,11 +10,11 @@ fast: build faster: CXXFLAGS = -shared -std=c++11 -undefined dynamic_lookup `python3 -m pybind11 --includes` mr_bpnn_2.cpp bpnn.cpp utils.cpp mapreduce.a ${MKLROOT}/lib/libmkl_intel_ilp64.a ${MKLROOT}/lib/libmkl_intel_thread.a ${MKLROOT}/lib/libmkl_core.a -liomp5 -lpthread -lm -ldl -o mrbpnn`python3-config --extension-suffix` -O3 -mavx -mfma -march=native -mfpmath=sse -DMKL_ILP64 -I${MKLROOT}/include -D EIGEN_USE_MKL_ALL -D NDEBUG faster: build -tradeoffs: CXXFLAGS = -shared -std=c++11 -undefined dynamic_lookup `python3 -m pybind11 --includes` mr_bpnn_2.cpp bpnn.cpp utils.cpp mapreduce.a ${MKLROOT}/lib/libmkl_intel_ilp64.a ${MKLROOT}/lib/libmkl_intel_thread.a ${MKLROOT}/lib/libmkl_core.a -liomp5 -lpthread -lm -ldl -o mrbpnn`python3-config --extension-suffix` -O3 -mavx -mfma -march=native -mfpmath=sse -DMKL_ILP64 -I${MKLROOT}/include -no-prec-div -no-prec-sqrt -fimf-precision=low -fast-transcendentals -ffinite-math-only -fno-math-errno -ffp-contract=fast -D EIGEN_USE_MKL_ALL -D NDEBUG +tradeoffs: CXXFLAGS = -shared -std=c++11 -undefined dynamic_lookup `python3 -m pybind11 --includes` mr_bpnn_2.cpp bpnn.cpp utils.cpp mapreduce.a ${MKLROOT}/lib/libmkl_intel_ilp64.a ${MKLROOT}/lib/libmkl_intel_thread.a ${MKLROOT}/lib/libmkl_core.a -liomp5 -lpthread -lm -ldl -o mrbpnn`python3-config --extension-suffix` -O3 -mavx -mfma -march=native -mfpmath=sse -DMKL_ILP64 -I${MKLROOT}/include -ffinite-math-only -fno-math-errno -ffp-contract=fast -D EIGEN_USE_MKL_ALL -D NDEBUG tradeoffs: build reckless: CXXFLAGS = -O3 reckless: build build: - icpc $(CXXFLAGS) + g++ $(CXXFLAGS) diff --git a/bpnn.cpp b/bpnn.cpp @@ -140,7 +140,7 @@ float Network::cost() { float sum = 0; for (int i = 0; i < layers[length-1].contents->rows(); i++) { - sum += pow((*labels)(i, 0) - (*layers[length-1].contents)(i, 0),2); + sum += ((*labels)(i, 0) - (*layers[length-1].contents)(i, 0)) * ((*labels)(i, 0) - (*layers[length-1].contents)(i, 0)); } return (1.0/batch_size) * sum; } @@ -172,20 +172,6 @@ void Network::backpropagate() counter++; } for (int i = 0; i < length-1; i++) { - //Eigen::MatrixXd gradient = gradients[i]; - //std::cout << t <<"\n"; - //if (t > 0) { - // Eigen::MatrixXd sum (layers[length-2-i].weights->rows(), layers[length-2-i].weights->cols()); - // for (int j = 0; j < layers[length-2-i].prev_updates.size(); j++) { - // sum = sum + layers[length-2-i].prev_updates[j].cwiseProduct(layers[length-2-i].prev_updates[j]); - // std::cout << sum << "\n\n"; - // } - // layers[length-2-i].prev_updates.emplace_back(((1/learning_rate) * sum.cwiseSqrt()).cwiseProduct(deltas[i])); - // std::cout << layers[length-2-i].prev_updates[layers[length-2-i].prev_updates.size()-1] << "\n\nSUM\n\n" << sum << "\n\n\n"; - // *layers[length-2-i].weights -= layers[length-2-i].prev_updates[layers[length-2-i].prev_updates.size()-1]; - //} - //else { - //std::cout << "AAAA" << learning_rate * deltas[i] << "\n\n"; *layers[length-2-i].weights -= learning_rate * deltas[i]; *layers[length-1-i].bias -= bias_lr * gradients[i]; } @@ -206,7 +192,8 @@ int Network::next_batch() float batch[datalen]; int label = -1; for (int i = 0; i < batch_size; i++) { - if (fgets(line, 1024, data)==NULL) { + // This shouldn't ever happen - tell the compiler that. + if (__builtin_expect_with_probability(fgets(line, 1024, data), NULL, 0.001)) { break; } char *p;