efficientnetInputGradBFull is the certified whole-net paper EfficientNet-B0 gradient #
The whole-net backward tie for efficientnetForwardBFull, all sixteen MBConv blocks, against
the concrete efficientnetForwardBFullHasVJP and, through
efficientnetForwardBFullHasVJP_correct, against the Jacobian of the committed
nested-application forward itself.
The stem and head endpoint ties (stemBBack_eq_vjp_backward, headFwdBBack_eq_vjp_backward)
are EfficientNetWholeBackCertifiedTie.lean's, used at the paper widths (head 320→1280 at 7×7);
the sixteen blocks stay opaque in the tie, entering as HasVJP witnesses whose .backward is
what the reverse chain's block slots are pinned to, so the composition is checked between
variables. Unlike MobileNetV2's tie there is no smooth point: swish and the SE sigmoid are
differentiable everywhere, and the only hypothesis is w.EpsPos. The forward has no drop-path and
no classifier dropout, and is in exact arithmetic.
The three pieces #
efficientnetBFullHasVJP— the generic eighteen-stage apexhead ∘ b16 ∘ … ∘ b1 ∘ stem, seventeenvjpComps and nothing else, andopaqueA0 … A16, one prefixdefper running activation (the MobileNetV2 paper file's answer to the quadratic writing of nested applications; plaindefs so the closingrflsees through them).efficientnetInputGradBFull_eq_efficientnetB_full_vjp— the tie with the stem and head concrete and the sixteen blocks opaque:unfold, tworws,rfl.efficientnetInputGradBFull_eq_efficientnetForwardB_full_vjp— the tie instantiated at the sixteen concrete blocks (mbNoExpW,mbStridedW,mbResidW,mbExpWatB0Weights's widths) and carried toefficientnetForwardBFullHasVJPbyHasVJP.backward_unique: two witnesses for one map have one backward, so the tactic-built whole-net witness never has to be unfolded.efficientnetInputGradBFull_correctthen reads the result throughefficientnetForwardBFullHasVJP_correct, whose proof IS the shape checkefficientnetForwardBFull_eq_chain: the hand-written chain is thepdiv-contracted Jacobian ofefficientnetForwardBFullat every input, every cotangent and every pixel.
General N. bnBatchLAHasVJP exists at every batch size, so the tie does.
Whole-network paper EfficientNet-B0 VJP. The VJP of the eighteen-stage chain
head ∘ b16 ∘ … ∘ b1 ∘ stem — seventeen vjpComps, dimension-generic and parametric in
every component, HasVJP everywhere (no smooth point: every activation on this path is
differentiable on all of ℝ).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tie — efficientnetInputGradBFull is the certified whole-net paper-B0 gradient.
The committed backward chain, with its stem/head BatchNorm and swish slots filled by the
certified per-op backwards and its sixteen MBConv blocks left opaque, equals the backward
of efficientnetBFullHasVJP at those eighteen stages. unfold, two rws, rfl.
The chain, at the sixteen concrete MBConv blocks, is efficientnetForwardBFullHasVJP's
backward. The tie above instantiated at mbNoExpW/mbStridedW/mbResidW/mbExpW at
B0Weights's widths, then HasVJP.backward_unique between the generic apex and the
tactic-built whole-net witness — both are VJPs of the same eighteen-stage composition, so
they have the same backward, and neither is unfolded.
The hand-written sixteen-block chain is the Jacobian-transpose of the committed
efficientnetForwardBFull — at every input, every loss cotangent and every input pixel.
The tie above read through efficientnetForwardBFullHasVJP_correct, whose proof is the
shape check efficientnetForwardBFull_eq_chain: the nested-application forward the render
denotes and the ∘-chain the VJP was assembled on are one function.