我想执行与此功能相同的操作,但在内存中,我真的不知道该怎么做。
操作:输入是一个扫描,由叠加图像组成,产生一个维度(高度、宽度、图像数量),我想使用单个操作获得一个具有维度(图像数量)的向量,其中值将对于扫描中的每个图像都是非零元素。
我能做的最好的事情就是遍历每个图像。
def get_plane_where_tumor_is_thelargest_v2(brain_scan_label: torch.Tensor):
slices_areas = torch.zeros(brain_scan_label.shape[-1])
for i in range(brain_scan_label.shape[-1]):
slices_areas[i] = brain_scan_label[:, :, i].count_nonzero()
return slices_areas.argmax()
编辑:
我设法解决了这个问题,我没有看到一次将多个维度传递给 torch.count_nonzero() 的可能性,这样做就足够了:
brain_scan_label.count_nonzero(dim=(0, 1))