Esempio n. 1
0
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");
}
Esempio n. 2
0
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");
}