Рассеивание кубоида - PullRequest
0 голосов
/ 04 мая 2020

У меня есть некоторые кубоидные данные, хранящиеся в numpy массивах, например, формы (512, 512, 512).

Мне нужно распространить значения в массиве до среднего значения соседей первого порядка каждой точки кубоида. В результате должен получиться массив такой же формы (512, 512, 512).

1 Ответ

0 голосов
/ 05 мая 2020

Как отметил Susmit в комментариях, можно использовать свертки.

import torch
import torch.nn.functional as F
import numpy as np

def dilute(data, order=1):
    size = 1 + order * 2

    weights = torch.ones((1, 1, size, size, size)) / (size ** 3)
    weights = weights.to(torch.float32)

    data = np.pad(data, order, mode='reflect')
    data = torch.tensor(data, dtype=torch.float32)
    data = data.view((1, 1, *data.shape))

    data = F.conv3d(data, weights, stride=1)
    return data                              

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...