| 148 | }; |
| 149 | |
| 150 | bool IsCurrentPredictionCorrection(Expression y_pred, int y_true) { |
| 151 | ComputationGraph& cg = *y_pred.pg; |
| 152 | auto v = as_vector(cg.incremental_forward(y_pred)); |
| 153 | assert(v.size() > 1); |
| 154 | int besti = 0; |
| 155 | float best = v[0]; |
| 156 | for (unsigned i = 1; i < v.size(); ++i) |
| 157 | if (v[i] > best) { best = v[i]; besti = i; } |
| 158 | return (besti == y_true); |
| 159 | } |
| 160 | |
| 161 | Expression CrossEntropyLoss(const Expression& y_pred, int y_true) { |
| 162 | Expression lp = log_softmax(y_pred); |
no test coverage detected