•detach — Detach
•detach x gives x with every ∂ tag removed. Under ∂, no derivative flows back through the result, at any level of nested ∂. Outside ∂, •detach x gives x. Nested arrays and records are detached throughout.
{+/⍵×⍵}∂ 1 2 3 ⍝ 2 4 6
{+/⍵וdetach ⍵}∂ 1 2 3 ⍝ 1 2 3
{⍵וdetach ⍵}∂∂ 3 ⍝ 0A value computed before a ∂ call is already a constant inside it. •detach is needed only where the cut falls inside one call: a term that comes from the argument but must carry no gradient, such as a target built from the same parameters, or statistics treated as constants.
Apply •detach to a computation’s inputs rather than to its result. net •detach θ runs net on plain values, at the cost of running it without ∂, as PyTorch’s torch.no_grad() does. •detach net θ runs net under ∂ first and then discards its derivative, as .detach() does. Only the first form saves the work.
∂ differentiates a function.