Download VALIDATION.md from tensorviz-org/pytorch-shape-lab: direct link, hf CLI and curl.
- Browser
- Download file 5.82 kB
-
https://huggingface.co/spaces/tensorviz-org/pytorch-shape-lab/resolve/main/VALIDATION.md
- Command line
-
hf download hf://spaces/tensorviz-org/pytorch-shape-lab/VALIDATION.md
-
curl -L -o VALIDATION.md https://huggingface.co/spaces/tensorviz-org/pytorch-shape-lab/resolve/main/VALIDATION.md
Validation
This page models a fixed CPU-compatible PyTorch example. It does not execute Python in the browser or provide a general-purpose shape inference engine.
The JavaScript tests cover the canonical mismatch, batch-preserving fixed head, non-square inputs, floor pooling for odd dimensions, adaptive-pooling dimensions, unsafe reshape, and invalid input rejection. The separate Python check invokes actual PyTorch Conv2d, ReLU, MaxPool2d, Flatten, Linear and AdaptiveAvgPool2d, then compares their shapes and errors with the JavaScript calculator for 21 cases. For successful paths it also compares full-batch and per-image outputs.
Executed checks — October 11, 2026
Environment: Node.js 26.5.0, Python 3.12.14, PyTorch 2.7.1, CPU. No dependencies were downloaded or installed for this check.
- 5 JavaScript tests passed, zero failures and zero skips.
- 21 actual PyTorch comparisons passed: all three heads for batch/image
combinations
(1,16,16),(2,16,16),(5,16,16),(2,16,20),(3,17,19),(2,8,8)and(1,3,3). - Successful paths preserved the number of samples, and full-batch outputs
matched concatenated per-image outputs (
atol=1e-6,rtol=1e-5). - JavaScript syntax checks passed for both application modules.
Representative observations:
| Input NCHW | Flatten before optional adaptive pool | Original 128 head | Fixed 512 head | Adaptive pool + 8 head |
|---|---|---|---|---|
[2,3,16,16] |
[2,512] |
Exact error (2x512 and 128x5) |
[2,5] |
[2,5] |
[2,3,16,20] |
[2,640] |
Mismatch | Exact error (2x640 and 512x5) |
[2,5] |
[3,3,17,19] |
[3,576] |
Mismatch | Mismatch | [3,5] |
[2,3,8,8] |
[2,128] |
[2,5] |
Mismatch | [2,5] |
[1,3,3,3] |
[1,8] |
Mismatch | Mismatch | [1,5] |
For the default input, reshape(-1,128) changes [2,512] to [8,128] and
produces [8,5] through the original head. The operation runs but does not
preserve one output row per image. Odd-sized pooling and impossible/redundant
reshape cases were also checked against PyTorch.
Browser rendering and interaction acceptance are not established by these tests. No model accuracy, checkpoint compatibility or extension capture result is claimed by this standalone lesson.
Browser QA — October 11, 2026
A separate in-app browser pass checked the locally served lesson at 1280 × 720 and 390 × 844. It verified these interactions:
- The default input displays
512 ≠ 128at the original classifier. - Choosing the 512-feature head produces the calculated output
[2,5]. - Changing the image to 16 × 20 produces
640 ≠ 512with that fixed head. - Adding adaptive pooling produces
[2,5]and shows the explicit warning that the architecture and computation change. - A 17 × 19 image pools to spatial size 8 × 9.
- Batch zero shows the validation message; Reset restores the starting lesson.
The 390-pixel-wide page had readable text and no horizontal overflow. A full-page
mobile screenshot was saved as tensorviz-shape-lab-mobile-2026-10-11.png.
No lesson-origin console errors were observed. These results cover the two
listed viewports; 320-pixel rendering and hosted Hugging Face behavior were not
established by this local pass.
A source review also confirmed the visible arithmetic-only notice, batch-preserving flatten, explicit adaptive-pooling semantics, unsafe-reshape sample-count warning, and distinction between this lesson and actual tensorViz model capture. The code adds no runtime fetch or tracking, and the footer limits its claim to calculations staying in the reader's browser.
Hosted verification and optional referral link — October 11, 2026
The public Hugging Face Space
was published through merged PR #1 at source commit
853be1018ddda93bd5866c07df5ab1f65f2b76d3. All 11 uploaded files matched the
checked local bytes, including the materialized logo stored through Git LFS.
A hosted desktop check confirmed the default 512 ≠ 128 mismatch and switching
to the fixed 512-feature head to produce the calculated shape [2,5].
These are arithmetic interactions, not model execution in the browser.
A hosted 390 × 844 mobile check also passed: the iframe and outer document
both measured 390 pixels wide without page overflow, the controls were readable,
and selecting 16 × 20 changed the fixed 512-feature head to 640 ≠ 512.
The screenshot is tensorviz-huggingface-shape-lab-mobile-2026-10-11.png.
No lesson-origin error was identified. An earlier unattributed host-page error
preceded the live app; this is not a clean-console claim for Hugging Face's
hosting interface.
The optional recorded-model link in the lesson and README now uses this URL, without changing its visible label:
These query parameters label visits that follow the link for the website's existing attribution reporting. They add no tracking code, runtime request, cookie or analytics event to the lesson. Both locations share the same campaign tag, so it does not distinguish a lesson click from a README click. Copied links, blocked analytics and reporting delays also limit attribution. A tagged visit is not proof of a Marketplace install, product activation or conversion; no such outcome was measured by this change.
Local validation checked that both links resolve to the same exact URL and four requested UTM values, that the HTML preserves its visible anchor text, and that no calculation code changed. The tagged-link update requires its own hosted publication and verification; the source commit above describes the preceding published version.