如何将2×2张量Resize为4×4张量并以零填充插值?
实现2×2张量到4×4张量的间隔填充转换
我来帮你搞定这个张量转换的需求!你要的是把2×2张量扩展成4×4,原元素间隔一行一列放置、其余位置填充为0,这个用常用的数值计算库就能轻松实现,下面给你两种主流库的具体实现方法:
NumPy 实现方案
NumPy是Python中处理数组(张量)的基础库,代码简洁直观:
import numpy as np # 定义原始2×2张量 original_tensor = np.array([[1, 2], [3, 4]]) # 创建4×4的全零张量 target_tensor = np.zeros((4, 4), dtype=original_tensor.dtype) # 将原始张量的元素赋值到目标张量的偶数索引位置(行和列都取0、2) target_tensor[::2, ::2] = original_tensor print(target_tensor)
运行这段代码后,输出结果就是你需要的:
[[1 0 2 0] [0 0 0 0] [3 0 4 0] [0 0 0 0]]
PyTorch 实现方案
如果是用PyTorch处理深度学习张量,逻辑完全一致,只是API略有不同:
import torch # 定义原始2×2张量 original_tensor = torch.tensor([[1, 2], [3, 4]]) # 创建4×4的全零张量 target_tensor = torch.zeros((4, 4), dtype=original_tensor.dtype) # 同样赋值到偶数索引位置 target_tensor[::2, ::2] = original_tensor print(target_tensor)
扩展说明
这个方法不仅适用于2×2转4×4,还能通用到n×n张量转2n×2n张量的场景,只要保持切片步长为2,就能实现原元素间隔放置、其余填0的效果。
内容的提问来源于stack exchange,提问作者xSooDx
相关产品推荐
相关产品推荐

