void CBMRM::DisplayAfterTrainingInfo(unsigned int iter, double finalExactObjVal, double approxObjVal, double loss, TheMatrix& w_best, CTimer& lossAndGradientTime, CTimer& innerSolverTime, CTimer& totalTime) { // legends if(verbosity >= 1) { printf("\n[Legends]\n"); if(verbosity > 1) printf("pobj: primal objective function value" "\naobj: approximate objective function value\n"); printf("gam: gamma (approximation error) " "\neps: lower bound on gam " "\nloss: loss function value " "\nreg: regularizer value\n"); } double norm1 = 0, norm2 = 0, norminf = 0; w_best.Norm1(norm1); w_best.Norm2(norm2); w_best.NormInf(norminf); printf("\nNote: the final w is the w_t where J(w_t) is the smallest.\n"); printf("No. of iterations: %d\n",iter); printf("Primal obj. val.: %.6e\n",finalExactObjVal); printf("Approx obj. val.: %.6e\n",approxObjVal); printf("Primal - Approx.: %.6e\n",finalExactObjVal-approxObjVal); printf("Loss: %.6e\n",loss); printf("|w|_1: %.6e\n",norm1); printf("|w|_2: %.6e\n",norm2); printf("|w|_oo: %.6e\n",norminf); // display timing profile printf("\nCPU seconds in:\n"); printf("1. loss and gradient: %8.2f\n", lossAndGradientTime.CPUTotal()); printf("2. solver: %8.2f\n", innerSolverTime.CPUTotal()); printf(" Total: %8.2f\n", totalTime.CPUTotal()); printf("Wall-clock total: %8.2f\n", totalTime.WallclockTotal()); }
void CVecConstraints::LoadConstraintData(unsigned int numOfVariables) { _numOfVariables = numOfVariables; CTimer scanconstraintstime; CTimer loadconstraintstime; // get configurations Configuration &config = Configuration::GetInstance(); _constraintsFile = config.GetString("Data.constraintsFile"); if(config.IsSet("Data.verbosity")) _vecconstraints_verbosity = config.GetInt("Data.verbosity"); // collect some properties of the dataset if(_vecconstraints_verbosity >= 1) cout << "Scanning constraints file... "<< endl; scanconstraintstime.Start(); ScanConstraintsFile(); scanconstraintstime.Stop(); // read constraintss into memory if(_vecconstraints_verbosity >= 1) cout << "Loading constraints file... "<< endl; loadconstraintstime.Start(); LoadConstraints(); loadconstraintstime.Stop(); if(_vecconstraints_verbosity >= 2) { cout << "scanconstraintstime : " << scanconstraintstime.CPUTotal() << endl; cout << "loadconstraintstime : " << loadconstraintstime.CPUTotal() << endl; } }
/** Constructor */ CSeqFeature::CSeqFeature() :seqfeature_verbosity(0), maxDuration(0), minDuration(0), numOfSeq(0), numOfAllSeq(0), featureDimension(0), featureFile(""), nnz(0), density(0) { CTimer loadfeaturetime; // decide the format string to use if(sizeof(Scalar) == sizeof(double)) { svec_feature_index_and_value_format = "%d:%lf"; scalar_value_format = "%lf"; } else { svec_feature_index_and_value_format = "%d:%f"; scalar_value_format = "%f"; } // get configurations Configuration &config = Configuration::GetInstance(); featureFile = config.GetString("Data.featureFile"); if(config.IsSet("Data.verbosity")) seqfeature_verbosity = config.GetInt("Data.verbosity"); // read dataset into memory if(seqfeature_verbosity >= 1) std::cout << "Loading feature file... "<< std::endl; loadfeaturetime.Start(); LoadFeatures(); loadfeaturetime.Stop(); // in centralized dataset, serial computation mode numOfAllSeq = numOfSeq; if(seqfeature_verbosity >= 2) { std::cout << "loadfeaturetime : " << loadfeaturetime.CPUTotal() << std::endl; } }