Pytorch深度学习-----神经网络的卷积操作

系列文章目录

PyTorch深度学习——Anaconda和PyTorch安装
Pytorch深度学习-----数据模块Dataset类
Pytorch深度学习------TensorBoard的使用
Pytorch深度学习------Torchvision中Transforms的使用(ToTensor,Normalize,Resize ,Compose,RandomCrop)
Pytorch深度学习------torchvision中dataset数据集的使用(CIFAR10)
Pytorch深度学习-----DataLoader的用法
Pytorch深度学习-----神经网络的基本骨架-nn.Module的使用


文章目录

  • 系列文章目录
  • 一、卷积操作是什么?
  • 二、使用步骤(以二维卷积操作conv2d函数为例)
    • 1.手动运算过程
    • 2.conv2d参数
    • 3.验证第1步的运算


一、卷积操作是什么?

卷积操作是一种线性操作,通常用于处理信号和图像等数据。在图像处理中,卷积操作可以用于提取图像的特征,例如边缘、纹理等
卷积操作是通过卷积核(也称滤波器)与输入数据进行逐元素乘积、求和运算的过程,从而得到卷积特征图。所以卷积操作就是一种运算

二、使用步骤(以二维卷积操作conv2d函数为例)

1.手动运算过程

如下小土堆图所示
在这里插入图片描述
如下文章所示

在这里插入图片描述

2.conv2d参数

在这里插入图片描述
input:输入矩阵,为tensor型,
weight:卷积核 ,为tensor型,
bias:即误差/偏差值
stride:步长,默认为1
padding:填充大小,默认为0
dilation:控制卷积核之间的间距
groups:控制输入和输出之间的连接
注意:
input中的shape:
minibatch:batch中的样例个数
in_channels:每个样例数据的通道数
iH:每个样例的高(行数)
iW:每个样例的宽(列数)

weight中的shape:
out_channels:卷积核的个数
in_channels/groups:每个卷积核的通道数
kH:每个卷积核的高(行数)
kW:每个卷积核的宽(列数)

3.验证第1步的运算

代码如下:

import torch.nn.functional as F
import torch

# 创建二维矩阵,并为tensor数据类型
input = torch.tensor([[1,2,0,3,1],
                      [0,1,2,3,1],
                      [1,2,1,0,0],
                      [5,2,3,1,1],
                      [2,1,0,1,1]])
# 创建tensor数据类型的卷积核
kernel = torch.tensor([[1,2,1],
                       [0,1,0],
                       [2,1,0]])
# 打印核验看input和kernel的shape是不是有4个数据
print(input.shape)  # torch.Size([5, 5])
print(kernel.shape)  # torch.Size([3, 3])
# 由上面可以知道shape不是4个数据,而是只有h和w的2个数据,故进行reshape
input = torch.reshape(input,(1,1,5,5)) # 表示样例个数1,每一个样例数据的通道数1,高5,宽5
kernel = torch.reshape(kernel,(1,1,3,3))
# 进行conv2d卷积运算
output = F.conv2d(input,kernel,stride=1)  # stride=1即每一次只进行一步移动操作
print(output)
"""
tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
"""


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/50799.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA将本地项目上传到码云

一、创建本地仓库并关联 用IDEA打开项目,在菜单栏点击vcs->create git repository创建本地仓库, 选择当前项目所在的文件夹当作仓库目录。 二、将项目提交本地仓库 项目名右键就会出现“GIT”这个选项->Add->Commit Directory, 先将项目add…

【嵌入式学习笔记】嵌入式基础11——STM32常用轮子(SYSTEM)

1.deley文件夹介绍 1.1.delay文件夹介绍 函数名函数功能OSdelay_osschedlockus级延时时,关闭任务调度(防止打断us级延迟)OSdelay_osschedunlockus级延时时,恢复任务调度OSdelay_ostimedlyus级延时时,恢复任务调度OSSysTick_Handlersystick中断服务函数OSdelay_init初始化延迟…

【学习笔记】关于图像YUV格式分类和排布方式的全学习

这里是尼德兰的喵学习笔记相关文章,欢迎您的访问! 如果文章对您有所帮助,期待您的点赞收藏 让我们一起为芯片前端全栈工程师而努力 目录 前言 YUV格式导图 YUV444 packed planar I444 YV24 semi-planar NV24 NV42 YUV422 packed …

c++静态代码扫描工具clang-tidy详细介绍

clang-tidy 文章目录 clang-tidy1. 什么是clang-tidy2. clang-tidy可以解决什么问题3. 工作原理4. 如何使用clang-tidy4. 总结5. 举例说明: 1. 什么是clang-tidy Clang-Tidy是一个由LLVM项目提供的开源工具,是一个静态分析工具,用于进行静态…

【雕爷学编程】MicroPython动手做(15)——掌控板之AB按键3

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

win10日程怎么同步到安卓手机?电脑日程同步到手机方法

在如今快节奏的生活中,高效地管理时间变得至关重要。而对于那些经常在电脑上安排日程的人来说,将这些重要的事务同步到手机上成为了一个迫切的需求。因为目前国内使用win10系统电脑、安卓手机的用户较多,所以越来越多的职场人士想要知道&…

macos下安装john the ripper并配置zip2john+破解加密zip文件

为了破解加密的zip文件,需要用到john进行爆破密码。 1、首先使用homebrew安装john,可以安装它的增强版john-jumbo: brew install john-jumbo 2、安装后可以使用 john 命令验证: john 3、配置zip2john的环境——.zshrc下,&#x…

HashMap查找

文章目录 1 哈希表的基本概念1.1 两个例子1.2 如何查找1.3 若干术语 2 哈希函数的构造方法2.1 直接定址法2.2 除留余数法 3 处理冲突的方法3.1 开放地址法3.1.1 线性探测法3.1.2 二次探测法3.1.3 伪随机探测法 3.2 链地址法(拉链法)3.2.1 创建步骤3.2.2 …

C#..上位机软件的未来是什么?

C#是一种流行的编程语言,广泛应用于桌面应用程序和上位机软件开发。未来,C#上位机软件将继续不断发展和创新,以满足用户日益增长的需求。以下是我认为C#上位机软件未来可能会涉及的一些方向: 更加智能化:随着人工智能…

idea连接远程服务器上传war包文件

idea连接远程服务器&上传war包 文章目录 idea连接远程服务器&上传war包1. 连接服务器2.上传war包 1. 连接服务器 选择Tools -> Start SSH Session 添加配置 连接成功 2.上传war包 Tools -> Deployment -> Browse Remote Host 点击右侧标签,点击&…

Manjaro KDE 22.1.3vmware无法复制文件

Wayland 是 X11 的现代替代品,几十年来 X11 一直是 Linux 上的默认窗口系统。 Wayland 是一种通信协议,定义 X Window 显示服务器和客户端应用程序之间的消息传递。 软件还不兼容 使用X11即可

linux查看服务器系统版本命令

有时我们需要在linux服务器上安装DB、Middleware等,为了保证兼容性,我们需要知晓被提供的linux服务器版本是否满足需求,下面就说一说linux查看服务器系统版本命令。 1.cat /etc/redhat-release 适用于:rhel/centos等 2.cat /etc…

java static修饰的静态成员

静态成员 特点: 1.静态成员可以被本类所有对象共享2.静态成员可以通过类名调用也可以推荐对象调用,但是推荐使用类名调用!3.静态成员随着类的加载而加载,优先于对象存在的静态方法的注意事项: 1.非静态方法可以访问任…

大数据Flink(四十九):框架版本介绍和编程语言选择

文章目录 框架版本介绍和编程语言选择 一、框架版本介绍 二、编程语言选择 框架版本介绍和编程语言选择

1-Linux的目录结构

Linux的目录结构是规定好的,不可以随意进行更改! Linux的文件系统是采用级层式的树状目录结构,最上层是根目录–/,然后再在根目录下创建其它的目录。 各个目录中主要负责的功能和作用如下:(主体的结构一定…

Cisco 路由器配置管理

大多数网络中断的最常见原因是错误的配置更改。对网络设备配置的每一次更改都伴随着造成网络中断、安全问题甚至性能下降的风险。计划外更改使网络容易受到意外中断的影响。 Network Configuration Manager 网络更改和配置管理 (NCCM)解决方案&#xff…

springboot编写mp4视频播放接口

简单粗暴方式 直接读取指定文件,用文件流读取视频文件,输出到响应中 GetMapping("/display1/{fileName}")public void displayMp41(HttpServletRequest request, HttpServletResponse response,PathVariable("fileName") String fi…

掌握文件锁:使用flock实现多个进程之间的无缝文件同步

使用flock实现多个进程之间的无缝文件同步? 博主简介一、引言二、文件锁的概述2.1、定义文件锁2.2、文件锁的种类2.3、文件锁的作用 三、使用flock实现文件锁3.1、flock的简介3.2、flock的使用方法3.3、flock文件锁命令3.4、flock对文件同步的帮助 四、实现多个进程…

GRE TAP的工作原理与5G工业物联网中的应用

随着互联网新技术的发展以及智能化水平的提高,各企业对实时数据传输的需求也在不断提升,企业愈发重视数据中心的建设,以保障企业内网数据安全。 GRE(Generic Routing Encapsulation,通用路由封装)协议属于…

物理机安装ESXI时遇到No Network Adapters

前不久在虚拟机下安装完成了ESXI,果断地使用了,确实很不错了, 配合我上次发的密匙(https://www.cnntt.com/archives/5556)妥妥爽。 虚拟机中试玩了一下,就开始布置到我的物理机上了,毕竟我以后…