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

Method AddControllingFanin

tensorflow/core/grappler/mutable_graph_view.cc:1016–1045  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1014}
1015
1016Status MutableGraphView::AddControllingFanin(absl::string_view node_name,
1017 const TensorId& fanin) {
1018 auto error_status = [node_name, fanin](absl::string_view msg) {
1019 string params = absl::Substitute("node_name='$0', fanin='$1'", node_name,
1020 fanin.ToString());
1021 return MutationError("AddControllingFanin", params, msg);
1022 };
1023
1024 TF_RETURN_IF_ERROR(CheckFaninIsValid(fanin, error_status));
1025 TF_RETURN_IF_ERROR(CheckAddingFaninToSelf(node_name, fanin, error_status));
1026 NodeDef* node = GetNode(node_name);
1027 TF_RETURN_IF_ERROR(CheckNodeExists(node_name, node, error_status));
1028 NodeDef* fanin_node = GetNode(fanin.node());
1029 TF_RETURN_IF_ERROR(CheckNodeExists(fanin.node(), fanin_node, error_status));
1030
1031 OutputPort fanin_port(fanin_node, fanin.index());
1032
1033 string error_msg = "";
1034 NodeDef* control_node = GetControllingFaninToAdd(
1035 node_name, {fanin_node, fanin.index()}, &error_msg);
1036 if (!error_msg.empty()) {
1037 return error_status(error_msg);
1038 }
1039 if (control_node == nullptr) {
1040 control_node = GetOrCreateIdentityConsumingSwitch(fanin_port);
1041 }
1042 AddFaninInternal(node, {control_node, Graph::kControlSlot});
1043
1044 return Status::OK();
1045}
1046
1047bool MutableGraphView::RemoveRegularFaninInternal(NodeDef* node,
1048 const OutputPort& fanin) {

Callers

nothing calls this directly

Calls 8

MutationErrorFunction · 0.85
CheckFaninIsValidFunction · 0.85
CheckAddingFaninToSelfFunction · 0.85
CheckNodeExistsFunction · 0.85
ToStringMethod · 0.45
nodeMethod · 0.45
indexMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected