// return the cost of being a char int HybridNeuralNetCharClassifier::CharCost(CharSamp *char_samp) { // it is by design that a character cost is equal to zero // when no nets are present. This is the case during training. if (RunNets(char_samp) == false) { return 0; } return CubeUtils::Prob2Cost(1.0f - net_output_[0]); }
// classifies a charsamp and returns an alternate list // of chars sorted by char costs CharAltList *HybridNeuralNetCharClassifier::Classify(CharSamp *char_samp) { // run the needed nets if (RunNets(char_samp) == false) { return NULL; } int class_cnt = char_set_->ClassCount(); // create an altlist CharAltList *alt_list = new CharAltList(char_set_, class_cnt); if (alt_list == NULL) { return NULL; } for (int out = 1; out < class_cnt; out++) { int cost = CubeUtils::Prob2Cost(net_output_[out]); alt_list->Insert(out, cost); } return alt_list; }
// classifies a charsamp and returns an alternate list // of chars sorted by char costs CharAltList *ConvNetCharClassifier::Classify(CharSamp *char_samp) { // run the needed nets if (RunNets(char_samp) == false) { return NULL; } int class_cnt = char_set_->ClassCount(); // create an altlist CharAltList *alt_list = new CharAltList(char_set_, class_cnt); if (alt_list == NULL) { fprintf(stderr, "Cube WARNING (ConvNetCharClassifier::Classify): " "returning emtpy CharAltList\n"); return NULL; } for (int out = 1; out < class_cnt; out++) { int cost = CubeUtils::Prob2Cost(net_output_[out]); alt_list->Insert(out, cost); } return alt_list; }
// return the cost of being a char int ConvNetCharClassifier::CharCost(CharSamp *char_samp) { if (RunNets(char_samp) == false) { return 0; } return CubeUtils::Prob2Cost(1.0f - net_output_[0]); }