UpsamplingNearest2d

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

upsampling_nearest_demo.py
import svetoviz_webgpu as sv

# 1. Prepare 2D image data
input_tensor = torch.from_numpy(img_np).permute(2, 0, 1).unsqueeze(0)

# 2. Define Upsampling Parameters
# scale_factor=2: doubles the spatial dimensions via replication
upsample = nn.UpsamplingNearest2d(scale_factor=2)

def terminal_callback(buffer, message, images, files):
    output = upsample(input_tensor)

    buffer.send_system_message(f"Original Resolution: {input_tensor.shape[2:]}")
    buffer.send_system_message(f"Upsampled Resolution (2x): {output.shape[2:]}")
    buffer.send_system_message("Method: Nearest Neighbor (Pixel Replication)")
    buffer.send_system_message("Status: Size increased without blurring, but with 'blocky' artifacts.")

# 3. Start the interactive session
sv.pytorch_web(module=upsample, terminal_callback=terminal_callback)
Nearest Neighbor Interpolation
UpsamplingNearest2d activations
Nearest neighbor upsampling maps each output pixel to the nearest input pixel. It is computationally inexpensive and preserves sharp edges, though it often results in "staircase" or blocky aliasing.