卷积是如何计算的?

  • 卷积操作简图:(类似于矩阵运算)
    7_1.jpg
  • 示例代码
  1. import torch
  2. import torch.nn.functional as F
  3. input = torch.tensor([[1,2,0,3,1],
  4. [0,1,2,3,1],
  5. [1,2,1,0,0],
  6. [5,2,3,1,1],
  7. [2,1,0,1,1]])
  8. kernel = torch.tensor([[1,2,1],
  9. [0,1,0],
  10. [2,1,0]])
  11. print(input.shape)
  12. print(kernel.shape)
  13. # 需要更改数据类型适应conv2d()函数
  14. input = torch.reshape(input,(1,1,5,5))
  15. kernel = torch.reshape(kernel,(1,1,3,3))
  16. print(input.shape)
  17. print(kernel.shape)
  18. # stride参数
  19. output = F.conv2d(input,kernel,stride=1)
  20. # stride = 1 步长为1,移动矩阵kernel(卷积核)的步长为1
  21. print(output)
  22. output = F.conv2d(input,kernel,stride=2)
  23. # stride = 2 步长为1,移动矩阵kernel(卷积核)的步长为2
  24. print(output)
  25. # padding参数:填充input周围,padding为几就填充几维
  26. output = F.conv2d(input,kernel,stride=1,padding=1)
  27. print(output)