首页 > 其他分享 >简述卷积操作

简述卷积操作

时间:2022-10-10 17:13:31浏览次数:63  
标签:10 kernel 卷积 torch stride 简述 input 操作

 卷积操作

将一个人为规定大小(3*3)的卷积核,先以左上角的输入数据重合,按对应元素做乘法运算,再将该卷积核范围内的所有乘积求和。

步长(stride 卷积核每次移动的步数) stride=1 纵向横向都是1步 stride=(sH,Sw)控制纵向横向的步长不一致。

当卷积核移动到超过边缘时,不会在进行计算。

卷积核的大小是自己设置的,卷积核上每个位置相当于一个权重w,比如一个3*3的卷积核,就是9个w,训练网络的目的就是学习这9个权值

 

 1 # -*- coding = utf-8 -*-
 2 # @Time: 2022/10/10 16:24
 3 # @Author: Liu Yun tao
 4 # @File:nn_conv.py
 5 # @Software: PyCharm
 6 
 7 import torch
 8 import torch.nn.functional as F
 9 
10 input = torch.tensor([[1, 2, 0, 3, 1],
11                       [0, 1, 2, 3, 1],
12                       [1, 2, 1, 0, 0],
13                       [5, 2, 3, 1, 1],
14                       [2, 1, 0, 1, 1]])
15 
16 kernel = torch.tensor([[1, 2, 1],
17                        [0, 1, 0],
18                        [2, 1, 0]])
19 '''
20 weight – filters of shape (out_channels, in_channels/groups , kH , kW)
21 按照说明文档将输入转换成对应格式
22 '''
23 input = torch.reshape(input, (1, 1, 5, 5)) # 通道数是1 batchsize是1
24 kernel = torch.reshape(kernel, (1, 1, 3, 3))
25 
26 print(input.shape)
27 print(kernel.shape)
28 
29 output = F.conv2d(input, kernel, stride=1)
30 print(output)
31 
32 output2 = F.conv2d(input, kernel, stride=2)
33 print(output2)
34 
35 output3 = F.conv2d(input, kernel, stride=1, padding=1) # padding是对输入进行纵向 横向进行填充
36 print(output3)
# 输出结果
torch.Size([1, 1, 5, 5])
torch.Size([1, 1, 3, 3])
tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
tensor([[[[10, 12],
          [13,  3]]]])
tensor([[[[ 1,  3,  4, 10,  8],
          [ 5, 10, 12, 12,  6],
          [ 7, 18, 16, 16,  8],
          [11, 13,  9,  3,  4],
          [14, 13,  9,  7,  4]]]])

进程已结束,退出代码0

 

padding是对输入图像进行行与列的填充(一般默认为0)

padding = 1 时输出的尺寸会和原来输入的图像大小一致。

 

标签:10,kernel,卷积,torch,stride,简述,input,操作
From: https://www.cnblogs.com/lyt-cloud/p/16776352.html

相关文章

  • 关于多个 Kubernetes 集群指标的采集操作
    简介在使用观测云期间,有时需要针对一个工作空间接入多个Kubernetes集群指标,通过观测云提供的全局Tag的方式来进行区分,大大提高了效率。下面是我总结的操作步骤。当集......
  • pipeline 具体化操作
    1.添加参数   2.生成流水线语法。  3.放入gitlab中的 jenkinsfile  4.使用mvn编译pipeline工程。    5.把上述流水线语法添加到gitlab......
  • linux操作系统防火墙
      Centos6,Centos7启动服务命令对比Centos6:对于Centos6系统来说,直接使用chkconfig命令即可。例如我们以nginx服务为例:chkconfig--addnginx#添加ng......
  • python编程从入门到实践--第4章 操作列表
    一。遍历整个列表注意缩进,与不要遗漏冒号。magicians=['alice','david','carolina']formagicianinmagicians:#print(magician)print(f"{magician......
  • containerd推送+kaniko build配置简述
    前置条件设置清华yum源https://mirrors.tuna.tsinghua.edu.cn/help/centos/安装一些工具yum-yinstallwgetjqpsmiscvimnet-toolsnfs-utilstelnetyum-utilsdevice......
  • 卷积神经网络
    卷积神经网络:CNN应用领域:CV领域、检测任务、分类与检索、超分辨率重构、医学任务、无人驾驶、人脸识别卷积网络与传统网络区别:维度:三维二维输......
  • 关于对象转换赋值的骚操作
    场景,前端提交List<Object>,后端接收后要进行一系列数据验证,最后转成JSon存入mysql,问题,Bo对象是List<Object>,Entity是String.失败方案,Bo属性List<Objetct>attr......
  • 基础干货:高效卷积,降内存提速度保精度(附论文下载)
    公众号ID|ComputerVisionGzq学习群|扫码在主页获取加入方式论文地址:​​https://arxiv.org/pdf/1901.01928v1.pdf​​计算机视觉研究院专栏作者:Edison_G深度学习模型在目标检......
  • SQL操作:WITH表达式及其应用
    SQL标准1999中,在传统SQL语法的基础上增加了with表达式的使用,使得SQL语句的编程可以更加灵活和具备可扩展性。本文将围绕with,以及更高阶的withrecursive表达式介绍其语法特......
  • 稀疏&集成的卷积神经网络学习
    计算机视觉研究院专栏作者:Edison_G今天主要和大家说的是分类检测过程中,一些稀疏和集成学习的相关知识,首先和大家说下图像目标定位与检测的方法分类。公众号ID|ComputerVision......