jacobian

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

commit 8021f557bdcbc469543ef5200ebcfb5e7af3ecbf
parent cd4221b5d7c9e12d4835bc89995decbd1d7e5b36
Author: David Freifeld <freifeld.david@gmail.com>
Date:   Fri,  3 Jul 2020 17:29:10 -0700

Sort of trains sometimes

Diffstat:
Mcnn.cpp | 20+++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/cnn.cpp b/cnn.cpp @@ -163,7 +163,9 @@ void ConvNet::backpropagate() deltas.push_back((*layers[length-2].contents).transpose() * gradients[0]); int counter = 1; for (int i = length-2; i >= 1; i--) { + //std::cout << "--GRAD---\n" << gradients[counter-1] << "\n\n" << layers[i].weights->transpose() << "\n\n" << *layers[i].dZ << "\n\n"; gradients.push_back((gradients[counter-1] * layers[i].weights->transpose()).cwiseProduct(*layers[i].dZ)); + //std::cout << "---DELTA---\n" << gradients[counter] << "\n\n" << layers[i].weights->transpose() << "\n\n" << *layers[i].dZ << "\n\n"; deltas.push_back(layers[i-1].contents->transpose() * gradients[counter]); counter++; } @@ -173,9 +175,10 @@ void ConvNet::backpropagate() *layers[length-1-i].bias -= bias_lr * gradients[i]; } // list_net(); - for (int i = 0; i < gradients.size(); i++) { - std::cout << gradients[i] << "\n\n"; - } + // std::cout << "GRADIENT LIST\n"; + // for (int i = 0; i < gradients.size(); i++) { + // std::cout << gradients[i] << "\n\n"; + // } Eigen::Map<Eigen::MatrixXd> reshaped(gradients[gradients.size()-1].data(), conv_layers[conv_layers.size()-1].output->rows(),conv_layers[conv_layers.size()-1].output->cols()); gradients[gradients.size()-1] = reshaped; //std::cout << gradients[gradients.size()-1].cols() << " " << conv_layers[0].input->cols() << " " << conv_layers[0].input->cols() - gradients[length-1].cols()+1 << "\n"; @@ -210,8 +213,11 @@ int main() 0,0,0,0,0,0,0,0; net.conv_layers[0].input = input; net.process(); - net.feedforward(); - net.list_net(); - net.backpropagate(); - net.list_net(); + for (int i = 0; i < 10; i++) { + net.feedforward(); + net.backpropagate(); + std::cout << *net.layers[net.layers.size()-1].contents << "\n"; + } + // net.list_net(); + // net.list_net(); }