| 329 | } |
| 330 | |
| 331 | int NumNonControlOutputs(const NodeDef& node, const NodeMap& node_map) { |
| 332 | int num_outputs = 0; |
| 333 | for (const NodeDef* output : node_map.GetOutputs(node.name())) { |
| 334 | for (const string& node_as_input : output->input()) { |
| 335 | if (IsControlInput(node_as_input)) { |
| 336 | break; |
| 337 | } |
| 338 | if (node_as_input == node.name()) { |
| 339 | ++num_outputs; |
| 340 | } else { |
| 341 | const TensorId tensor = ParseTensorName(node_as_input); |
| 342 | if (tensor.node() == node.name()) { |
| 343 | ++num_outputs; |
| 344 | } |
| 345 | } |
| 346 | } |
| 347 | } |
| 348 | return num_outputs; |
| 349 | } |
| 350 | |
| 351 | int NumNonControlDataOutputs(const NodeDef& node, const NodeMap& node_map) { |
| 352 | int num_data_outputs = 0; |