MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / SwapRegularFaninsByPorts

Method SwapRegularFaninsByPorts

tensorflow/core/grappler/mutable_graph_view.cc:1376–1418  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1374}
1375
1376Status MutableGraphView::SwapRegularFaninsByPorts(absl::string_view node_name,
1377 int from_port, int to_port) {
1378 auto error_status = [node_name, from_port, to_port](absl::string_view msg) {
1379 string params = absl::Substitute("node_name='$0', from_port=$1, to_port=$2",
1380 node_name, from_port, to_port);
1381 return MutationError("SwapRegularFaninsByPorts", params, msg);
1382 };
1383
1384 NodeDef* node = GetNode(node_name);
1385 TF_RETURN_IF_ERROR(CheckNodeExists(node_name, node, error_status));
1386 const int last_regular_fanin_port =
1387 gtl::FindWithDefault(max_regular_input_port(), node, -1);
1388 TF_RETURN_IF_ERROR(CheckPortRange(from_port, /*min=*/0,
1389 last_regular_fanin_port, error_status));
1390 TF_RETURN_IF_ERROR(CheckPortRange(to_port, /*min=*/0, last_regular_fanin_port,
1391 error_status));
1392
1393 if (from_port == to_port) {
1394 return Status::OK();
1395 }
1396 TensorId from_fanin = ParseTensorName(node->input(from_port));
1397 TensorId to_fanin = ParseTensorName(node->input(to_port));
1398 if (from_fanin == to_fanin) {
1399 return Status::OK();
1400 }
1401
1402 InputPort from_input(node, from_port);
1403 InputPort to_input(node, to_port);
1404 NodeDef* from_fanin_node = GetNode(from_fanin.node());
1405 absl::flat_hash_set<InputPort>* from_fanouts =
1406 &fanouts()[{from_fanin_node, from_fanin.index()}];
1407 from_fanouts->erase(from_input);
1408 from_fanouts->insert(to_input);
1409 NodeDef* to_fanin_node = GetNode(to_fanin.node());
1410 absl::flat_hash_set<InputPort>* to_fanouts =
1411 &fanouts()[{to_fanin_node, to_fanin.index()}];
1412 to_fanouts->erase(to_input);
1413 to_fanouts->insert(from_input);
1414
1415 node->mutable_input()->SwapElements(from_port, to_port);
1416
1417 return Status::OK();
1418}
1419
1420Status MutableGraphView::UpdateAllRegularFaninsToControlling(
1421 absl::string_view node_name) {

Callers 1

Calls 10

MutationErrorFunction · 0.85
CheckNodeExistsFunction · 0.85
CheckPortRangeFunction · 0.85
ParseTensorNameFunction · 0.85
inputMethod · 0.45
nodeMethod · 0.45
indexMethod · 0.45
eraseMethod · 0.45
insertMethod · 0.45
mutable_inputMethod · 0.45

Tested by 1