所以我有我的最终形状特征,(1, 512, 90, 160)深度为 512(第 3 维)。我从 shape 的地面实况图像创建了一个二维二进制掩码(90, 160)。我正在尝试将此掩码应用于该功能以仅手动提取我的部分功能。然而,由于特征和掩码的形状不匹配,我得到了索引错误。有了np.expand_dims(),我已经做成了面具的形状(1,1,90,160)。现在,我怎样才能堆叠面具以获得形状(1, 512, 90, 160)?
1 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
您有 2 个选项:
创建 3d 蒙版-
final = np.ones((1,512,90,160))
final2 = np.copy(final)
mask = np.random.randint(1,10,size = (1,90,160)) > np.random.randint(1,10,size = (1,90,160))
masked = np.copy(final)
masked[:,0,:,:] = np.logical_and(masked[:,0,:,:],mask)
masked = np.logical_and.accumulate(masked,axis = 1)
np.putmask(final,masked == False, 0)
以上将创建一个 3d 蒙版,并用它来蒙版final。
另一种更简单的选择是乘法:
np.multiply(final,mask)
NP 处理尺寸,并为您提供屏蔽版本。
您可以通过以下方式验证:
(np.multiply(final2,mask) == final).all()
添加回答
举报
0/150
提交
取消