当前位置:   article > 正文

小土堆-pytorch-土堆说卷积操作04_笔记_csdn 小土堆

csdn 小土堆

CONV2D 二维卷积计算操作

实现目标: input->卷积核计算->output     stride是移动的距离(步长)

 实战实现目标

一.输入图像与卷积核的实现

  1. import torch
  2. import torch.nn.functional as F
  3. # 输入图像
  4. input=torch.tensor([[1,2,0,3,1],
  5. [0,1,2,3,1],
  6. [1,2,1,0,0],
  7. [5,2,3,1,1],
  8. [2,1,0,1,1]])
  9. # 卷积核
  10. kernel=torch.tensor([[1,2,1],
  11. [0,1,0],
  12. [2,1,0]])

二.reshape input和kernel

平面channel通道是1,batch size'的大小是1 数据维度是5*5  这里面conv2d(N,C,H,W)里面的四个是N就是batch size 也就是输入图片的数量,C就是通道数这只是一个二维张量所以通道为1,H就是高,W就是宽,所以是1,1,,5,5
  1. input=torch.reshape(input,(1,1,5,5))
  2. kernel=torch.reshape(kernel,(1,1,3,3))
  3. print(input.shape)
  4. print(kernel.shape)
运行结果:

三.stride=1 时,输出output

  1. output=F.conv2d(input,kernel,stride=1) # stride 类似步长
  2. print(output)
运行结果:

四.stride=2 时,输出output

  1. output2=F.conv2d(input,kernel,stride=2)
  2. print(output2)
运行结果:

五.有填充时,padding=1时,输出output 

  1. # padding 填充 padding=1 左边,右边,下边,上边 插入一行 空的地方 默认为0
  2. output3=F.conv2d(input,kernel,stride=1,padding=1) # padding 默认是0-不进行填充
  3. print(output3)
运行结果:

 

完整代码:

  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. # 卷积核
  9. kernel=torch.tensor([[1,2,1],
  10. [0,1,0],
  11. [2,1,0]])
  12. input=torch.reshape(input,(1,1,5,5))
  13. kernel=torch.reshape(kernel,(1,1,3,3))
  14. # print(input.shape)
  15. # print(kernel.shape)
  16. # output=F.conv2d(input,kernel,stride=1) # stride 类似步长
  17. # print(output)
  18. # output2=F.conv2d(input,kernel,stride=2)
  19. # print(output2)
  20. #
  21. # padding 填充 padding=1 左边,右边,下边,上边 插入一行 空的地方 默认为0
  22. output3=F.conv2d(input,kernel,stride=1,padding=1) # padding 默认是0-不进行填充
  23. print(output3)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51805
推荐阅读
相关标签
  

闽ICP备14008679号