MCPcopy Index your code
hub / github.com/lutzroeder/netron / removeExtraLoopOutputs

Method removeExtraLoopOutputs

source/python.js:7390–7408  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

7388 guard.dispose();
7389 }
7390 removeExtraLoopOutputs(node) {
7391 const initial_outputs = node.outputs().length;
7392 const [loop_body] = node.blocks();
7393 const loop_input_offset = 2;
7394 const loop_body_offset = 1;
7395 for (let i_1 = node.outputs().length; i_1 > 0; i_1--) {
7396 const i = i_1 - 1;
7397 if (loop_body.inputs()[loop_body_offset + i] === loop_body.outputs()[loop_body_offset + i]) {
7398 const node_input = node.inputs()[loop_input_offset + i];
7399 node.outputs().at(i).replaceAllUsesWith(node_input);
7400 loop_body.inputs()[loop_body_offset + i].replaceAllUsesWith(node_input);
7401 node.eraseOutput(i);
7402 node.removeInput(loop_input_offset + i);
7403 loop_body.eraseInput(loop_body_offset + i);
7404 loop_body.eraseOutput(loop_body_offset + i);
7405 }
7406 }
7407 this._made_change = this._made_change || (initial_outputs !== node.outputs().length);
7408 }
7409 noMutableValues(values) {
7410 return values.every((v) => !torch._C.AliasDb.isMutableType(v));
7411 }

Callers 1

ConstantPropagationMethod · 0.80

Calls 7

blocksMethod · 0.80
replaceAllUsesWithMethod · 0.80
atMethod · 0.80
eraseOutputMethod · 0.80
removeInputMethod · 0.80
outputsMethod · 0.45
inputsMethod · 0.45

Tested by

no test coverage detected