Flatten

https://pytorch.org/docs/stable/generated/torch.nn.Flatten.html

flatten_demo.py
import svetoviz_webgpu as sv

# 1. Prepare 2D image data (64x64)
img = Image.open("sample_image.jpg").convert("RGB")
img_np = np.array(img.resize((64, 64))).astype(np.float32) / 255.0
input_tensor = torch.from_numpy(img_np).permute(2, 0, 1).unsqueeze(0)

# 2. Define Flatten
# start_dim=2 flattens spatial (H, W) into one dimension, keeping C separate
flatten = nn.Flatten(start_dim=2)

def terminal_callback(buffer, message, images, files):
    # 3. Apply flattening
    output = flatten(input_tensor)

    buffer.send_system_message(f"Input Shape: {list(input_tensor.shape)}")
    buffer.send_system_message(f"Flattened Size: {output.shape[1]}")
    buffer.send_system_message(f"Output Shape: {list(output.shape)}")

# 4. Start the interactive session
sv.pytorch_web(module=flatten, terminal_callback=terminal_callback)
Dimensional Collapse
Flatten activations
Flattening collapses a range of contiguous dimensions into a single vector, a standard step when transitioning from convolutional layers to fully connected ones.