python - 扩散一个长方体
问题描述
我有一些长方体数据存储在 numpy 数组中,形状为(512、512、512)。
我需要将数组中的值扩散到长方体中每个点的一阶邻居的平均值。所以结果应该是一个形状相同的数组(512、512、512)。
解决方案
正如 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
推荐阅读
- java - 为什么 Oracle 声称 java.util.Random.nextFloat() 生成 2^24 种可能性而不是 2^23?
- react-native - React-Native:按两次按钮只会更新 this.setState
- css - 如何将帖子标题放在两列的表格中
- javascript - 在特定 div 上打开页面
- powershell - Powershell 查询以显示 AD 组或 OU 中的所有帐户
- python - 将 Python 中的变量保存为不带括号的列
- python - Xpath 表达式选择相对于当前节点的元素
- autodesk-forge - 如何使用“Autodesk.Geolocation”为模型设置地理位置
- reactjs - getDerivedStateFromProps() 覆盖 reactjs 中的 setstate 值
- sql - 从另一个表中插入唯一值