void Net::Forward(Mat &pred, int passnum) { if (first_layer_ == 0) { //mexPrintMsg("Forward pass for layer", layers_[0]->type_); layers_[0]->Forward(NULL, passnum); layers_[0]->CalcWeights(NULL, passnum); } for (size_t i = first_layer_; i < layers_.size(); ++i) { if (layers_[i]->type_ == "j") first_layer_ = i; //mexPrintMsg("Forward pass for layer", layers_[i]->type_); layers_[i]->Forward(layers_[i-1], passnum); layers_[i]->Nonlinear(passnum); if (utIsInterruptPending()) { mexAssert(false, "Ctrl-C Detected. END"); } } pred.attach(layers_.back()->activ_mat_); //mexPrintMsg("Forward pass finished"); }
void Net::Forward(Mat &pred, int passnum) { //mexPrintMsg("Start forward pass..."); //mexPrintMsg("Forward pass for layer", layers_[0]->type_); layers_[0]->Forward(NULL, passnum); for (size_t i = 1; i < layers_.size(); ++i) { //mexPrintMsg("Forward pass for layer", layers_[]->type_); Mat activ_mat_prev; layers_[i]->Forward(layers_[i-1], passnum); if (layers_[i]->type_ == "c" || layers_[i]->type_ == "f") { layers_[i]->Nonlinear(passnum); } if (passnum == 0) layers_[i-1]->activ_mat_.clear(); if (utIsInterruptPending()) { Clear(); mexAssert(false, "Ctrl-C Detected. END"); } /* for (int j = 0; j < 5; ++j) { //mexPrintMsg("activ_mat_", layers_[i]->activ_mat_(0, j)); }*/ } pred.attach(layers_.back()->activ_mat_); //("Forward pass finished"); }