| 485 | } |
| 486 | |
| 487 | void LogSummary(int log_level, const Model& model) { |
| 488 | VLOG(log_level) << "Operators summary (" << model.operators.size() |
| 489 | << " operators):"; |
| 490 | std::unordered_multiset<OperatorType> ops_by_type; |
| 491 | for (const auto& op : model.operators) { |
| 492 | ops_by_type.insert(op->type); |
| 493 | } |
| 494 | auto it = ops_by_type.begin(); |
| 495 | while (it != ops_by_type.end()) { |
| 496 | int count = ops_by_type.count(*it); |
| 497 | VLOG(log_level) << " " << OperatorTypeName(*it) << ": " << count; |
| 498 | std::advance(it, count); |
| 499 | } |
| 500 | } |
| 501 | |
| 502 | void LogArray(int log_level, const Model& model, const string& name) { |
| 503 | VLOG(log_level) << "Array: " << name; |