【发布时间】:2021-01-29 18:24:46
【问题描述】:
对于卷积,我想在一维应用圆形填充,在所有其他维度应用零填充。我该怎么做?
对于卷积,有 28 个通道,并且数据在球形箱中描述。半径乘以 20 个容器,极地乘以 20 个容器,倾角乘以 20 个容器。 圆形填充仅应用于倾斜。
小例子
# Example:
x = torch.tensor([[1,2,3],
[4,5,6],
[7,8,9]])
y = sphere_pad(x, pad=(0, 1))
# y is now tensor([[3, 1, 2, 3, 1],
# [6, 4, 5, 6, 4],
# [9, 7, 8, 9, 7]])
我已尝试申请
def sphere_pad(x, pad=(1,1)):
return x.repeat(*x.shape)[
(x.shape[0]-pad[0]):(2*x.shape[0]+pad[0]),
(x.shape[1]-pad[1]):(2*x.shape[1]+pad[1])]
然后应用具有正常零填充的卷积(并且在最后一维中没有填充)。 这适用于一个小例子,但这种方法超出了实际问题大小的 GPU 内存。 还有其他方法吗?
【问题讨论】:
标签: python machine-learning pytorch torch