有一个尺寸为N x C x H x W的张量inputs,一个尺寸为 N x H x W x 2张量sample,将inputs通过F.grid_sample(inputs, samples, padding_mode = "zeros")的方式采样得到输出outputs,outputs中一些元素由于采样超出inputs边界被设为零,现有一个尺寸为N x C x H x W的张量x,我希望将张量x中与outputs中被设为零的元素相同位置的元素也设为零,该怎么做,也就是说我希望通过sample获得一个mask来将x中对应位置的元素变成零
2条回答 默认 最新
- 木头人123。 2023-11-01 09:20关注
你可以使用如下步骤来达到你的目标:
- 创建一个全1张量,它的尺寸与
inputs
相同。 - 使用
F.grid_sample()
函数,将这个全1张量与samples
一起采样得到一个mask。 - 将得到的mask张量与
x
进行逐元素乘法。
在PyTorch中,你可以通过如下代码实现这个过程:
import torch import torch.nn.functional as F N, C, H, W = inputs.size() # Step 1: 创建一个全1张量 ones = torch.ones_like(inputs) # Step 2: 采样得到mask mask = F.grid_sample(ones, samples, padding_mode="zeros") # Step 3: 将mask与x进行逐元素乘法 x_masked = x * mask
在上述代码中,
F.grid_sample()
函数将全1张量ones
与samples
一起采样,得到一个新的mask张量。这个mask张量的元素值与outputs中的元素一一对应,如果outputs中的某个元素为0(表示采样超出边界),那么mask张量中的对应元素也为0。然后,我们将mask张量与x
进行逐元素乘法,得到的x_masked
就是你想要的结果。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 - 创建一个全1张量,它的尺寸与
悬赏问题
- ¥50 安装华大九天aether
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化
- ¥15 Mirare PLUS 进行密钥认证?(详解)
- ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证