jacobian

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

commit 5096d0a3535aad928558ba58fe8214b9e7987ea3
parent 3dd39f3e4573c243d6328fe263fef5c1c1a05038
Author: David Freifeld <freifeld.david@gmail.com>
Date:   Fri, 12 Jun 2020 09:44:54 -0700

Biases added.

Diffstat:
Mtest.cpp | 14++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)

diff --git a/test.cpp b/test.cpp @@ -42,6 +42,7 @@ class Layer { public: Eigen::MatrixXd* contents; Eigen::MatrixXd* weights; + Eigen::MatrixXd* bias; Layer(float* vals, int rows, int columns); Layer(int rows, int columns); @@ -55,7 +56,12 @@ Layer::Layer(float* vals, int batch_sz, int nodes) for (int i = 0; i < datalen; i++) { (*contents)((int)i / nodes,i%nodes) = vals[i]; } + bias = new Eigen::MatrixXd (1, nodes); + for (int i = 0; i < nodes; i++) { + (*bias)(0,i) = rand() / double(RAND_MAX); + } std::cout << *contents << "\n\n"; + std::cout << *bias << "\n\n"; } Layer::Layer(int batch_sz, int nodes) @@ -65,7 +71,12 @@ Layer::Layer(int batch_sz, int nodes) for (int i = 0; i < datalen; i++) { (*contents)((int)i / nodes,i%nodes) = 0; } + bias = new Eigen::MatrixXd (1, nodes); + for (int i = 0; i < nodes; i++) { + (*bias)(0,i) = rand() / double(RAND_MAX); + } std::cout << *contents << "\n\n"; + std::cout << *bias << "\n\n"; } void Layer::initWeights(Layer next) @@ -124,6 +135,9 @@ void Network::feedforward() for (int i = 0; i < length-1; i++) { std::cout << "-----------\nRUN\n\n" << *layers[i].contents << "\n-\n\n"; Eigen::MatrixXd product = (*layers[i].contents) * (*layers[i].weights); + for (int j = 0; j < product.rows(); j++) { + product.row(j) += *layers[i+1].bias; + } activate(product); std::cout << "NEXT\n\n\n" << *layers[i+1].contents << "\n-\n\n"; layers[i+1].contents = &product;