{
  "schemaVersion": 1,
  "slug": "unet",
  "title": "Bring spatial detail back into the decoder",
  "className": "TinyUNet",
  "question": "How does a segmentation decoder recover features lost during downsampling?",
  "description": "Trace a U-shaped network through its bottleneck, then inspect the cropped feature maps that rejoin its expanding path.",
  "category": "Vision milestones",
  "tags": [
    "U-Net",
    "Segmentation",
    "Skip connections",
    "Convolution"
  ],
  "curator": "TensorViz",
  "attribution": "Original TensorViz teaching example. PyTorch provides the underlying operators.",
  "license": "No separate redistribution license has been declared for these project examples.",
  "limitations": "Untrained reduced network with two levels instead of the original four. No biomedical dataset, elastic-augmentation recipe, overlap-tile inference or segmentation accuracy. Heatmaps summarize one feature channel with 8×8 average-pooled thumbnails.",
  "openingStep": "skip",
  "provenance": {
    "capturedAt": "2026-09-17T06:18:45.955001+00:00",
    "productRevision": "cf0ab1c9c58c1dc640235b742fa032cade00b43c",
    "sourceSha256": "27af400b501694077500e40027cc19b66d217ee26708e30e805bf0e12b373dbc",
    "python": "3.13.13",
    "torch": "2.7.1",
    "execution": {
      "inputs": {
        "args": [
          {
            "shape": [
              1,
              1,
              96,
              96
            ],
            "dtype": "float32",
            "fill": "randn"
          }
        ]
      },
      "device": "cpu",
      "mode": "eval",
      "seed": 0,
      "deterministic": true
    },
    "outcome": "passed",
    "outputShape": [
      1,
      2,
      56,
      56
    ],
    "method": "TensorViz multifile projection and isolated execution worker",
    "scope": "Reduced U-Net CPU forward, exact center-crop/concatenation checks and skip-gradient support. Feature thumbnails are pooled recorded activations, not trained segmentation results.",
    "numericalChecks": [
      "Valid convolutions map 96×96 inputs to two-channel 56×56 logits",
      "Upsampling to 34×34 joins eight decoder and eight centrally cropped skip channels",
      "The crop preserves exact skip values, rather than interpolating them",
      "A skip-only loss sends gradients through the cropped region and not through the decoder branch"
    ]
  },
  "layers": [
    {
      "id": "input",
      "label": "input",
      "op": "Input",
      "kind": "input",
      "parent": null,
      "params": {
        "shape": "1,1,96,96"
      }
    },
    {
      "id": "encoder1",
      "label": "encoder1",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {
        "arg_0": 1,
        "arg_1": 4
      },
      "source": {
        "line": 37,
        "endLine": 37
      }
    },
    {
      "id": "pool1",
      "label": "pool1",
      "op": "MaxPool2d",
      "kind": "layer",
      "parent": null,
      "params": {
        "kernel_size": 2
      },
      "source": {
        "line": 38,
        "endLine": 38
      }
    },
    {
      "id": "encoder2",
      "label": "encoder2",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {
        "arg_0": 4,
        "arg_1": 8
      },
      "source": {
        "line": 39,
        "endLine": 39
      }
    },
    {
      "id": "pool2",
      "label": "pool2",
      "op": "MaxPool2d",
      "kind": "layer",
      "parent": null,
      "params": {
        "kernel_size": 2
      },
      "source": {
        "line": 40,
        "endLine": 40
      }
    },
    {
      "id": "bottleneck",
      "label": "bottleneck",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {
        "arg_0": 8,
        "arg_1": 16
      },
      "source": {
        "line": 41,
        "endLine": 41
      }
    },
    {
      "id": "up2",
      "label": "up2",
      "op": "ConvTranspose2d",
      "kind": "layer",
      "parent": null,
      "params": {
        "in_channels": 16,
        "out_channels": 8,
        "kernel_size": 2,
        "stride": 2
      },
      "source": {
        "line": 42,
        "endLine": 42
      }
    },
    {
      "id": "join2",
      "label": "join2",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {},
      "source": {
        "line": 43,
        "endLine": 43
      }
    },
    {
      "id": "decoder2",
      "label": "decoder2",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {
        "arg_0": 16,
        "arg_1": 8
      },
      "source": {
        "line": 44,
        "endLine": 44
      }
    },
    {
      "id": "up1",
      "label": "up1",
      "op": "ConvTranspose2d",
      "kind": "layer",
      "parent": null,
      "params": {
        "in_channels": 8,
        "out_channels": 4,
        "kernel_size": 2,
        "stride": 2
      },
      "source": {
        "line": 45,
        "endLine": 45
      }
    },
    {
      "id": "join1",
      "label": "join1",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {},
      "source": {
        "line": 46,
        "endLine": 46
      }
    },
    {
      "id": "decoder1",
      "label": "decoder1",
      "op": "Module",
      "kind": "module",
      "parent": null,
      "params": {
        "arg_0": 8,
        "arg_1": 4
      },
      "source": {
        "line": 47,
        "endLine": 47
      }
    },
    {
      "id": "mask_head",
      "label": "mask_head",
      "op": "Conv2d",
      "kind": "layer",
      "parent": null,
      "params": {
        "in_channels": 4,
        "out_channels": 2,
        "kernel_size": 1
      },
      "source": {
        "line": 48,
        "endLine": 48
      }
    },
    {
      "id": "output",
      "label": "output",
      "op": "Output",
      "kind": "output",
      "parent": null,
      "params": {}
    },
    {
      "id": "encoder1.conv1",
      "label": "encoder1.conv1",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "encoder1",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 14,
        "endLine": 14
      }
    },
    {
      "id": "encoder1.relu1",
      "label": "encoder1.relu1",
      "op": "ReLU",
      "kind": "layer",
      "parent": "encoder1",
      "params": {},
      "source": {
        "line": 15,
        "endLine": 15
      }
    },
    {
      "id": "encoder1.conv2",
      "label": "encoder1.conv2",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "encoder1",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 16,
        "endLine": 16
      }
    },
    {
      "id": "encoder1.relu2",
      "label": "encoder1.relu2",
      "op": "ReLU",
      "kind": "layer",
      "parent": "encoder1",
      "params": {},
      "source": {
        "line": 17,
        "endLine": 17
      }
    },
    {
      "id": "encoder2.conv1",
      "label": "encoder2.conv1",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "encoder2",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 14,
        "endLine": 14
      }
    },
    {
      "id": "encoder2.relu1",
      "label": "encoder2.relu1",
      "op": "ReLU",
      "kind": "layer",
      "parent": "encoder2",
      "params": {},
      "source": {
        "line": 15,
        "endLine": 15
      }
    },
    {
      "id": "encoder2.conv2",
      "label": "encoder2.conv2",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "encoder2",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 16,
        "endLine": 16
      }
    },
    {
      "id": "encoder2.relu2",
      "label": "encoder2.relu2",
      "op": "ReLU",
      "kind": "layer",
      "parent": "encoder2",
      "params": {},
      "source": {
        "line": 17,
        "endLine": 17
      }
    },
    {
      "id": "bottleneck.conv1",
      "label": "bottleneck.conv1",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "bottleneck",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 14,
        "endLine": 14
      }
    },
    {
      "id": "bottleneck.relu1",
      "label": "bottleneck.relu1",
      "op": "ReLU",
      "kind": "layer",
      "parent": "bottleneck",
      "params": {},
      "source": {
        "line": 15,
        "endLine": 15
      }
    },
    {
      "id": "bottleneck.conv2",
      "label": "bottleneck.conv2",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "bottleneck",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 16,
        "endLine": 16
      }
    },
    {
      "id": "bottleneck.relu2",
      "label": "bottleneck.relu2",
      "op": "ReLU",
      "kind": "layer",
      "parent": "bottleneck",
      "params": {},
      "source": {
        "line": 17,
        "endLine": 17
      }
    },
    {
      "id": "cat@join2#0",
      "label": "cat@join2#0",
      "op": "torch.cat",
      "kind": "layer",
      "parent": "join2",
      "params": {
        "dim": 1
      },
      "source": {
        "line": 30,
        "endLine": 30
      }
    },
    {
      "id": "decoder2.conv1",
      "label": "decoder2.conv1",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "decoder2",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 14,
        "endLine": 14
      }
    },
    {
      "id": "decoder2.relu1",
      "label": "decoder2.relu1",
      "op": "ReLU",
      "kind": "layer",
      "parent": "decoder2",
      "params": {},
      "source": {
        "line": 15,
        "endLine": 15
      }
    },
    {
      "id": "decoder2.conv2",
      "label": "decoder2.conv2",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "decoder2",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 16,
        "endLine": 16
      }
    },
    {
      "id": "decoder2.relu2",
      "label": "decoder2.relu2",
      "op": "ReLU",
      "kind": "layer",
      "parent": "decoder2",
      "params": {},
      "source": {
        "line": 17,
        "endLine": 17
      }
    },
    {
      "id": "cat@join1#0",
      "label": "cat@join1#0",
      "op": "torch.cat",
      "kind": "layer",
      "parent": "join1",
      "params": {
        "dim": 1
      },
      "source": {
        "line": 30,
        "endLine": 30
      }
    },
    {
      "id": "decoder1.conv1",
      "label": "decoder1.conv1",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "decoder1",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 14,
        "endLine": 14
      }
    },
    {
      "id": "decoder1.relu1",
      "label": "decoder1.relu1",
      "op": "ReLU",
      "kind": "layer",
      "parent": "decoder1",
      "params": {},
      "source": {
        "line": 15,
        "endLine": 15
      }
    },
    {
      "id": "decoder1.conv2",
      "label": "decoder1.conv2",
      "op": "Conv2d",
      "kind": "layer",
      "parent": "decoder1",
      "params": {
        "kernel_size": 3
      },
      "source": {
        "line": 16,
        "endLine": 16
      }
    },
    {
      "id": "decoder1.relu2",
      "label": "decoder1.relu2",
      "op": "ReLU",
      "kind": "layer",
      "parent": "decoder1",
      "params": {},
      "source": {
        "line": 17,
        "endLine": 17
      }
    }
  ],
  "connections": [
    {
      "id": "edge-1",
      "source": "encoder1.conv1",
      "target": "encoder1.relu1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-2",
      "source": "encoder1.relu1",
      "target": "encoder1.conv2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-3",
      "source": "encoder1.conv2",
      "target": "encoder1.relu2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-4",
      "source": "encoder2.conv1",
      "target": "encoder2.relu1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-5",
      "source": "encoder2.relu1",
      "target": "encoder2.conv2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-6",
      "source": "encoder2.conv2",
      "target": "encoder2.relu2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-7",
      "source": "bottleneck.conv1",
      "target": "bottleneck.relu1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-8",
      "source": "bottleneck.relu1",
      "target": "bottleneck.conv2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-9",
      "source": "bottleneck.conv2",
      "target": "bottleneck.relu2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-10",
      "source": "decoder2.conv1",
      "target": "decoder2.relu1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-11",
      "source": "decoder2.relu1",
      "target": "decoder2.conv2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-12",
      "source": "decoder2.conv2",
      "target": "decoder2.relu2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-13",
      "source": "decoder1.conv1",
      "target": "decoder1.relu1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-14",
      "source": "decoder1.relu1",
      "target": "decoder1.conv2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-15",
      "source": "decoder1.conv2",
      "target": "decoder1.relu2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-16",
      "source": "input",
      "target": "encoder1.conv1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-17",
      "source": "input",
      "target": "encoder1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-18",
      "source": "encoder1.relu2",
      "target": "pool1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-19",
      "source": "encoder1",
      "target": "pool1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-20",
      "source": "pool1",
      "target": "encoder2.conv1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-21",
      "source": "pool1",
      "target": "encoder2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-22",
      "source": "encoder2.relu2",
      "target": "pool2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-23",
      "source": "encoder2",
      "target": "pool2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-24",
      "source": "pool2",
      "target": "bottleneck.conv1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-25",
      "source": "pool2",
      "target": "bottleneck",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-26",
      "source": "bottleneck.relu2",
      "target": "up2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-27",
      "source": "bottleneck",
      "target": "up2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-28",
      "source": "up2",
      "target": "cat@join2#0",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-29",
      "source": "up2",
      "target": "join2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-30",
      "source": "encoder2.relu2",
      "target": "cat@join2#0",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-31",
      "source": "encoder2",
      "target": "join2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-32",
      "source": "cat@join2#0",
      "target": "decoder2.conv1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-33",
      "source": "join2",
      "target": "decoder2",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-34",
      "source": "decoder2.relu2",
      "target": "up1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-35",
      "source": "decoder2",
      "target": "up1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-36",
      "source": "up1",
      "target": "cat@join1#0",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-37",
      "source": "up1",
      "target": "join1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-38",
      "source": "encoder1.relu2",
      "target": "cat@join1#0",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-39",
      "source": "encoder1",
      "target": "join1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-40",
      "source": "cat@join1#0",
      "target": "decoder1.conv1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-41",
      "source": "join1",
      "target": "decoder1",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-42",
      "source": "decoder1.relu2",
      "target": "mask_head",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-43",
      "source": "decoder1",
      "target": "mask_head",
      "sourcePort": null,
      "targetPort": null
    },
    {
      "id": "edge-44",
      "source": "mask_head",
      "target": "output",
      "sourcePort": null,
      "targetPort": null
    }
  ],
  "steps": [
    {
      "id": "contract",
      "target": "pool1",
      "title": "Contract spatial resolution",
      "note": "Two valid convolutions first shrink the input from 96 to 92 pixels. A 2×2 max pool halves that width to 46. The encoder retains its 92×92 features for the later high-resolution skip."
    },
    {
      "id": "bridge",
      "target": "bottleneck",
      "title": "Build context at the lowest resolution",
      "note": "After another encoder and pooling stage, the bottleneck has 16 channels at 17×17. Upsampling doubles the width to 34 before it meets the first cropped skip."
    },
    {
      "id": "skip",
      "target": "join2",
      "title": "Crop and concatenate the encoder features",
      "note": "The encoder's 42×42 skip is cropped to its central 34×34 region. Concatenating eight skip and eight decoder channels gives 16 channels. This preserves two feature sets; it is not residual addition."
    },
    {
      "id": "mask",
      "target": "mask_head",
      "title": "Make a decision at every output pixel",
      "note": "A second upsample/cropped-skip stage leads to four 56×56 feature maps. A 1×1 convolution produces two logits per output pixel. Valid convolutions explain why the output is smaller than the input."
    }
  ],
  "milestone": {
    "name": "U-Net",
    "year": 2015,
    "kind": "Architecture",
    "fidelity": "Two down/up levels with widths 4/8/16, valid 3×3 convolutions, transposed-convolution upsampling and center-cropped skips. A 96×96 input produces 56×56 two-class logits.",
    "papers": [
      {
        "title": "U-Net: Convolutional Networks for Biomedical Image Segmentation",
        "url": "https://arxiv.org/abs/1505.04597"
      }
    ]
  },
  "experiment": {
    "kind": "matrices",
    "title": "Recover detail through cropped skip features.",
    "description": "Recorded activations from a synthetic rectangle image. U-Net joins high-resolution encoder features to the expanding decoder along the channel axis. Thumbnails show spatial structure; exact dimensions and channel counts are separate.",
    "controlLabel": "Skip connection",
    "cases": [
      {
        "id": "coarse",
        "label": "Coarse skip: 42 → 34 pixels",
        "target": "join2",
        "note": "Each square below is an average-pooled thumbnail of one recorded feature channel. The skip is center-cropped to match the upsampled decoder; concatenation keeps both channel sets. These randomly initialized features are not a learned segmentation or an explanation of pixel importance.",
        "matrices": [
          {
            "label": "Decoder channel 0 · 8×8 pooled thumbnail",
            "values": [
              [
                -0.013429127142834346,
                -0.013536024295974905,
                -0.013418184550175969,
                -0.013406500731399835,
                -0.014262445963016231,
                -0.014207848888822988,
                -0.01405626569927489,
                -0.014116453217500474
              ],
              [
                -0.013415241815980689,
                -0.013434444580830759,
                -0.013025640862074866,
                -0.013060382397805062,
                -0.013992352457591267,
                -0.014158063502163226,
                -0.014092162248570277,
                -0.014122541859838352
              ],
              [
                -0.013440478791012378,
                -0.013469101997431104,
                -0.012999177546854753,
                -0.012990059747584432,
                -0.014001583472266937,
                -0.01419508071738917,
                -0.014066341134214474,
                -0.014127972816328122
              ],
              [
                -0.013438767347175634,
                -0.01347258806635793,
                -0.013026043630246259,
                -0.013030131839825713,
                -0.014030261881937445,
                -0.014206413097904111,
                -0.01405487459820324,
                -0.014125231280197334
              ],
              [
                -0.007715828153148316,
                -0.0077604293541854805,
                -0.007485593128520011,
                -0.007390365392029098,
                -0.009470200031674172,
                -0.009587378367936855,
                -0.0095279931793356,
                -0.009547666753311985
              ],
              [
                -0.007713560467315199,
                -0.007723377872033592,
                -0.007476780128631273,
                -0.007394126285615539,
                -0.009329225943257219,
                -0.009469825340543688,
                -0.009479506636742742,
                -0.00954106584906543
              ],
              [
                -0.007722755033099224,
                -0.00790255179206383,
                -0.00785133524935638,
                -0.007755761763944281,
                -0.009723172831560125,
                -0.009808642838130868,
                -0.00968157566093742,
                -0.00958266465174346
              ],
              [
                -0.00770135339019488,
                -0.007882420953450781,
                -0.00799645359467557,
                -0.007965798652595772,
                -0.009891444140189855,
                -0.00981309184492735,
                -0.009650327389602847,
                -0.009546036716367761
              ]
            ]
          },
          {
            "label": "Skip before crop · 8×8 pooled thumbnail",
            "values": [
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            ]
          },
          {
            "label": "Skip after crop · 8×8 pooled thumbnail",
            "values": [
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ],
              [
                0,
                0,
                0,
                0,
                0,
                0,
                0,
                0
              ]
            ]
          }
        ],
        "vectors": [
          {
            "label": "Decoder / skip / joined channel counts",
            "values": [
              8,
              8,
              16
            ]
          }
        ],
        "metrics": [
          {
            "label": "Skip spatial width before crop",
            "value": 42
          },
          {
            "label": "Shared width after crop",
            "value": 34
          },
          {
            "label": "Pixels cropped from each side",
            "value": 4
          }
        ]
      },
      {
        "id": "fine",
        "label": "Fine skip: 92 → 60 pixels",
        "target": "join1",
        "note": "Each square below is an average-pooled thumbnail of one recorded feature channel. The skip is center-cropped to match the upsampled decoder; concatenation keeps both channel sets. These randomly initialized features are not a learned segmentation or an explanation of pixel importance.",
        "matrices": [
          {
            "label": "Decoder channel 0 · 8×8 pooled thumbnail",
            "values": [
              [
                0.17855490938319776,
                0.17862867322908835,
                0.17877741245572118,
                0.17891897716326094,
                0.17891674652303538,
                0.1788405409860767,
                0.17855004847066688,
                0.17856694187221525
              ],
              [
                0.1785475278776386,
                0.17857678064202318,
                0.17873269215196766,
                0.17888360984527826,
                0.17889819309088995,
                0.17887769579715054,
                0.1786224265106748,
                0.17856552958481897
              ],
              [
                0.17855604034725686,
                0.17857003106352273,
                0.1786542552439345,
                0.1787913186044501,
                0.17880770919376657,
                0.17880847209102932,
                0.17860934155919295,
                0.17857416869622314
              ],
              [
                0.17855691143299904,
                0.1785693215115575,
                0.17864851988657449,
                0.17878732802943995,
                0.1788037251436974,
                0.1788062622471854,
                0.17860768405976601,
                0.1785740949018832
              ],
              [
                0.17855688795004504,
                0.17856920873219018,
                0.17864816871483488,
                0.17878699916626026,
                0.1788033835717817,
                0.17880586547346083,
                0.17860748967018317,
                0.17857409850244155
              ],
              [
                0.17855657544885167,
                0.17856651782637736,
                0.17863950706243825,
                0.1787739855957343,
                0.17878999556589867,
                0.1787941316924029,
                0.17859963593039282,
                0.1785726446282669
              ],
              [
                0.17855562459607646,
                0.17848879345600505,
                0.1785000922000058,
                0.17860517546199378,
                0.17862591387565271,
                0.17865371103433372,
                0.17856138879003033,
                0.17857916632445006
              ],
              [
                0.17857508903875985,
                0.17846130480371206,
                0.17819195133458685,
                0.1781870930233484,
                0.17819033119006325,
                0.17828244645676633,
                0.17846021895452344,
                0.1785751925955184
              ]
            ]
          },
          {
            "label": "Skip before crop · 8×8 pooled thumbnail",
            "values": [
              [
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.09826085618198895,
                0.08932911870134341,
                0.08932911870134341,
                0.10395272751760752,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.05762941691009827,
                0.0008492707392610185,
                0.0008492707392610185,
                0.06737896264593758,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.0569851982871242,
                0,
                0,
                0.06793282639138991,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.0569851982871242,
                0,
                0,
                0.06793282639138991,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.05733041221338578,
                0.0001847638359969555,
                0.0001847638359969555,
                0.06740951825904999,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.10681662632697053,
                0.1017694508869189,
                0.1017694508869189,
                0.10667967875384358,
                0.1107112281180097,
                0.1107112281180097
              ],
              [
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097,
                0.1107112281180097
              ]
            ]
          },
          {
            "label": "Skip after crop · 8×8 pooled thumbnail",
            "values": [
              [
                0.11071122811800935,
                0.09713112573407252,
                0.06533477418887111,
                0.0660730665871505,
                0.0660730665871505,
                0.06643312953305144,
                0.10819647583562428,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.08615197170004343,
                0.0014122706867803246,
                0.0012739061088915277,
                0.0012739061088915277,
                0.0011736366241140161,
                0.1001163625901488,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.08547779743068634,
                0,
                0,
                0,
                0,
                0.10189923958708479,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.08547779743068634,
                0,
                0,
                0,
                0,
                0.10189923958708479,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.08547779743068634,
                0,
                0,
                0,
                0,
                0.10189923958708479,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.08547779743068634,
                0,
                0,
                0,
                0,
                0.10189923958708479,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.08565557898120817,
                0.0007375226605644443,
                0.00027714575399543327,
                0.00027714575399543327,
                0.0002425025347460041,
                0.1006178666315717,
                0.11071122811800935
              ],
              [
                0.11071122811800935,
                0.10581578509272167,
                0.08405970605056069,
                0.08373680451061755,
                0.08373680451061755,
                0.08326625642520591,
                0.10639960831623728,
                0.11071122811800935
              ]
            ]
          }
        ],
        "vectors": [
          {
            "label": "Decoder / skip / joined channel counts",
            "values": [
              4,
              4,
              8
            ]
          }
        ],
        "metrics": [
          {
            "label": "Skip spatial width before crop",
            "value": 92
          },
          {
            "label": "Shared width after crop",
            "value": 60
          },
          {
            "label": "Pixels cropped from each side",
            "value": 16
          }
        ]
      }
    ]
  },
  "revision": "3a861b8cdaf42ce4",
  "files": {
    "graph.tensorviz.json": {
      "url": "/models/unet/3a861b8cdaf42ce4/graph.tensorviz.json",
      "sha256": "50e343b593ea679ee60525b8463e249fe390657d84216a6739fc07073c96483d",
      "bytes": 105297
    },
    "model.py": {
      "url": "/models/unet/3a861b8cdaf42ce4/model.py",
      "sha256": "27af400b501694077500e40027cc19b66d217ee26708e30e805bf0e12b373dbc",
      "bytes": 6725
    },
    "run.py": {
      "url": "/models/unet/3a861b8cdaf42ce4/run.py",
      "sha256": "560c1ffd305fca1acc5be953b26417c97affdcdbaec0e235e19541d4dfabe549",
      "bytes": 649
    },
    "requirements.txt": {
      "url": "/models/unet/3a861b8cdaf42ce4/requirements.txt",
      "sha256": "edb86016b42cb3cc6cdc0c490aab929d3bb098ced4515394f0b55766033e0daf",
      "bytes": 91
    },
    "preview.svg": {
      "url": "/models/unet/3a861b8cdaf42ce4/preview.svg",
      "sha256": "507148d7a56b371342fec72bbff4f3369b5e0c6d0b901f8fe7bb805be7667758",
      "bytes": 2543
    }
  }
}
