使用 NumPy 或 OpenCV 应用掩模是一个相对简单的过程。但是,如果我需要在优化算法的损失计算中使用蒙版图像,我需要专门使用 PyTorch,否则会干扰梯度计算。假设我有一个图像张量[1, 512, 512, 3](批次、高度、宽度、通道)和一个掩模张量[1, 20, 512, 512](批次、通道、高度、宽度),其中每个通道对应于 20 个分割类之一,我想获得一个填充的掩模图像张量每个像素都是黑色的(0, 0, 0),属于一个或多个指定分割类的像素除外。
这是使用 numpy 完成的方法:
import numpy as np
import torch
# Create dummy image and mask
image_tensor = torch.randn([1, 512, 512, 3])
mask_tensor = torch.randn([1, 20, 512, 512])
# Apply argmax to mask
mask_tensor = torch.max(mask_tensor, 1)[1] # -> 1, 512, 512
# Define mask function
def selective_mask(image_src, mask, dims=[]):
h, w = mask.shape
background = np.zeros([h, w, 3], …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 CodeXL 分析我的 pyopencl 项目,以便使用 .py 文件。我想不出还有什么比指向 Python.exe 并将路径作为参数传递给脚本更好的了。让事情变得复杂的是我使用 Anaconda 虚拟环境来解决模块之间的冲突,因为这样就不可能简单地将 CodeXL 指向某个虚拟环境中的 python 可执行文件 - 据我了解,必须首先激活该环境,而 CodeXL 不支持这一点。