You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyTorch中从扁平化补丁张量重建224x224图像?

解决PyTorch补丁张量还原为原始图像的问题

你的张量对应14×14网格的16×16像素补丁(224/16=14,14×14=196),直接用view会打乱像素顺序,得按以下步骤调整维度后拼接:

  • 第一步:将(196,256)的张量重塑为网格结构,对应14行14列的补丁,每个补丁保持16×16的像素维度:
    patches_reshaped = patches.view(14, 14, 16, 16)
    
  • 第二步:调整维度顺序,把每个补丁的高度维度和网格的列维度交换,让同一行的补丁像素能连续拼接:
    patches_transposed = patches_reshaped.permute(0, 2, 1, 3)
    
  • 第三步:将张量重塑为224×224的原始图像尺寸(14×16=224):
    img = patches_transposed.reshape(224, 224)
    

也可以合并为一行代码:

img = patches.view(14, 14, 16, 16).permute(0, 2, 1, 3).reshape(224, 224)

为什么直接用view不行?

patches.view(224,224)会按张量的连续内存顺序直接展开,而你的补丁是按网格行排列的,每个补丁内部是16×16的连续像素,直接view会把不同行的补丁像素混在一起,导致行序混乱。上面的方法先把补丁按网格分组,再按正确的顺序拼接行内和行间的像素,就能精准还原原始图像。

内容的提问来源于stack exchange,提问作者Edward Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:35:11