如何在python中实现卷积层?

时间:2019-03-07 23:05:54

标签: python tensorflow filtering conv-neural-network pytorch

我正在尝试在python中创建一个自定义卷积层,它将使用3x3内核。我要尝试的是采用3x3内核,并将其沿32x32图像移动,在此我将像素值与内核之间的点积取值。

我所做的是创建两个嵌套的for循环,在其中我不断从图像中切出3x3的区域,然后使用torch.matmultorch.sum来过滤跨度= 1的像素值。

for i in range((x.shape[0]-3) + 1):
    for j in range((x.shape[1]-3) + 1):             
        x_out[i][j] = torch.sum(torch.matmul(kernel, x[i:i+3, j:j+3]))

x的形状为torch.size(32, 32)x_out的形状为torch.size(30,30)。内核是3x3张量。

问题是使用嵌套的for循环。如果我在神经网络中运行它,它将太慢。为了提高速度,我需要弄清楚如何在没有for循环的情况下执行此操作。那我该怎么办呢?

0 个答案:

没有答案