学习pytorch9 神经网络-卷积层

news2024/11/25 1:58:54

神经网络-卷积层

    • 官网
    • 卷积数据公式
    • 参数说明
    • 卷积运算演示
    • 输入输出channel
    • 代码
      • **注意点:**
      • code
    • 执行结果

官网

https://pytorch.org/docs/stable/nn.html#convolution-layers
图像识别常用conv2d 二维卷积 nn.Conv2d
https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d

卷积数据公式

在这里插入图片描述
在这里插入图片描述

参数说明

Parameters:

  • in_channels (int) – Number of channels in the input image 输入通道

  • out_channels (int) – Number of channels produced by the convolution 输出通道

  • kernel_size (int or tuple) – Size of the convolving kernel 卷积核大小

  • stride (int or tuple, optional) – Stride of the convolution. Default: 1 每次卷积走多少步,横向纵向的步径大小

  • padding (int, tuple or str, optional) – Padding added to all four sides of the input. Default: 0 是否在卷积过程中对输入图像的边缘进行填充

  • padding_mode (str, optional) – ‘zeros’, ‘reflect’, ‘replicate’ or ‘circular’. Default: ‘zeros’ 填充数据的模式是什么,默认为zeros,填充的都是0

  • dilation (int or tuple, optional) – Spacing between kernel elements. Default: 1 卷积核中间的距离? 一般不改 不常用

  • groups (int, optional) – Number of blocked connections from input channels to output channels. Default: 1 一般不改 不常用

  • bias (bool, optional) – If True, adds a learnable bias to the output. Default: True 添加偏置值,默认为True添加偏置值
    在这里插入图片描述

卷积运算演示

https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

绿色方格:表示输出图像
蓝色方格:表示输入图像
蓝色方格中的深色阴影部分:表示kernel 卷积核
白色虚线:表示padding填充
动画中深色阴影上下左右整体移动的方格数,表示stride的大小
在这里插入图片描述

输入输出channel

两个卷积核做两次卷积,叠加输出一起是out_channel=2
在这里插入图片描述

代码

注意点:

  1. super()括号里面没有内容,自动填充的self应该去掉
super().__init__() 

code

import torch
import torchvision
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

test_set = torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor(), download=True)

dataloader = DataLoader(test_set, batch_size=64, shuffle=False)

class NnConv2d(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)

    def forward(self, x):
        x = self.conv1(x)
        return x

nnconvd = NnConv2d()
writer = SummaryWriter('./logs')
step = 0
for data in dataloader:
    imgs, targets = data
    output = nnconvd(imgs)
    print(imgs.shape)
    print(output.shape)
    writer.add_images("input", imgs)
    output = output.reshape([-1, 3, 30, 30])
    writer.add_images("output", output)
    step += 1

执行结果

......
torch.Size([64, 6, 30, 30])
torch.Size([64, 3, 32, 32])
torch.Size([64, 6, 30, 30])
torch.Size([64, 3, 32, 32])
torch.Size([64, 6, 30, 30])
torch.Size([64, 3, 32, 32])
torch.Size([64, 6, 30, 30])
torch.Size([64, 3, 32, 32])
torch.Size([64, 6, 30, 30])
torch.Size([64, 3, 32, 32])
torch.Size([64, 6, 30, 30])
torch.Size([16, 3, 32, 32])
torch.Size([16, 6, 30, 30])  # 最后一个batch16是因为drop_last默认为False,最后没除尽的也要保留,参与训练

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件包含漏洞学习小结

目录 一、介绍 二、常见文件包含函数 三、文件包含漏洞代码举例分析 四、文件包含漏洞利用方式 4.1 本地文件包含 1、读取敏感文件 2、文件包含可运行的php代码 ①包含图片码 ②包含日志文件 ③包含环境变量getshell ④临时文件包含 ⑤伪协议 4.2 远程文件包含 4.…

【学习笔记】C++ 中 static 关键字的作用

目录 前言static 作用在变量上static 作用在全局变量上static 作用在局部变量上static 作用在成员变量上 static 作用在函数上static 作用在函数上static 作用在成员函数上 前言 在 C/C 中,关键字 static 在不同的应用场景下,有不同的作用,这…

指针进阶(一)

指针进阶 1. 字符指针面试题 2. 指针数组3. 数组指针3.1 数组指针的定义3.2 &数组名VS数组名 3.3 数组指针的使用4. 数组传参和指针传参4.1 一维数组传参4.2 二维数组传参4.3 一级指针传参4.4 二级指针传参 前言 指针的主题,我们在初级阶段的《指针》章节已经接…

腾讯音乐基于 Apache Doris + 大模型构建全新智能数据服务平台

当前,大语言模型的应用正在全球范围内引发新一轮的技术革命与商业浪潮。腾讯音乐作为中国领先在线音乐娱乐平台,利用庞大用户群与多元场景的优势,持续探索大模型赛道的多元应用。本文将详细介绍腾讯音乐如何基于 Apache Doris 构建查询高效、…

Python之调用shell两种写法(二十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

如何优雅的关闭流

https://blog.csdn.net/zy345293721/article/details/103654745 JDK1.7 开始使用 关闭流使用try-catch-finally 是jdk1.7 之前的语法 try (FileInputStream fis new FileInputStream(srcFile)){fis.read(fileContent);fis.close();} catch (IOException e) {e.printStackTr…

大模型参数高效微调技术原理综述(二)-BitFit、Prefix Tuning、Prompt Tuning

随着,ChatGPT 迅速爆火,引发了大模型的时代变革。然而对于普通大众来说,进行大模型的预训练或者全量微调遥不可及。由此,催生了各种参数高效微调技术,让科研人员或者普通开发者有机会尝试微调大模型。 因此&#xff0c…

【Unity3D】UI Toolkit样式选择器

1 前言 UI Toolkit简介 中介绍了样式属性,UI Toolkit容器 和 UI Toolkit元素 中介绍了容器和元素,本文将介绍样式选择器(Selector),主要包含样式类选择器(Class Selector)、C# 类选择器&#xf…

STM32f103入门(11)DMA直接存储器读取

DMA DMA简介数据转运ADC扫描模式DMADMA ADC 连续单词扫描初始化如下连续循环扫描 DMA简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源…

Vue + Element UI 前端篇(三):工具模块封装

Vue Element UI 实现权限管理系统 前端篇(三):工具模块封装 封装 axios 模块 封装背景 使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会引起越来越多的代码冗余&am…

Vue + Element UI 前端篇(七):功能组件封装

组件封装 为了避免组件代码的臃肿&#xff0c;这里对主要的功能部件进行封装&#xff0c;保证代码的模块化和简洁度。 组件结构 组件封装重构后&#xff0c;试图组件结构如下图所示 代码一览 Home组件被简化&#xff0c;包含导航、头部和主内容三个组件。 Home.vue <te…

mysql表操作-约束删除、用户填加、授权和撤权

目录 一、表的约束删除 1.查看所有表的约束条件 2.删除主键 3.删除唯一键 4.删除check键值 5.删除check键值 6.删除not null键值并删除check键值 7.删除键外值 8.检查表的约束条件是否存在 二、设置数据库密码策略 1.查看数据库密码的策略 2.修改数据库密码的长度 …

视频汇聚/视频云存储/视频监控管理平台EasyCVR安全检查的相关问题及解决方法2.0

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多…

Leetcode 1572.矩阵对角线元素之和

给你一个正方形矩阵 mat&#xff0c;请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1&#xff1a; 输入&#xff1a;mat [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;25 解释&#xff1a;对角线的和为&#xff…

C#使用proto

写多了go代码&#xff0c;被go mod tidy惯坏了&#xff0c;还以为全天下的都很好用呢&#xff0c;结果发现并不是这样。尤其是项目组的proto还是又封了个工具直接就能跑得&#xff0c;导致以为没那么复杂的事情变得复杂了起来。是有两套生成的规则&#xff0c;时间有点晚&#…

【漏洞复现】网御ACM上网行为管理系统bottomframe.cgi接口存在SQL注入漏洞

漏洞描述 网御上网行为管理系统(简称Leadsec ACM)是网御为互联网接入用户在信息内容安全、网络应用管理、组织运营效率、网络资源利用、法律风险规避及网络投资回报等方面提供的全方位解决方案。网御上网行为管理系统存在SQL注入漏洞。 网御 ACM上网行为管理系统 bottomfram…

docker快速安装-docker一键安装脚本

1.下载/配置安装脚本 touch install-docker.sh #!/bin/bash #mail:ratelcloudqq.com #system:centos7 #integration: docker-latestclear echo "######################################################" echo "# Auto Install Docker …

【ABAP】 如何实现点击不同按钮动态显示不同的选择屏幕?(附完整示例代码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;阿里云社区专家博主&#xff0c;华为云云享专家&#xff0c;腾讯云社区认证作者&#xff0c;CSDN SAP应用技术领域优质创作者。在学习工作中&#xff0c;我通常使用偏后端的开发语言ABAP&#xff0c;SQL进行任务的完成…

Docker实战:docker compose 搭建Rocketmq

1、配置文件准备 1.1、 新建目录&#xff1a;/home/docker/data/rocketmq/conf mkdir /home/docker/data/rocketmq/conf1.2、 在上面目录下新建文件broker.conf文件&#xff0c;内容如下 brokerClusterName DefaultCluster brokerName broker-a brokerId 0 deleteWhen 0…

Linux命令之目录管理(详解)

Linux命令之目录管理 创建目录删除目录显示目录目录的拷贝返回上层目录目录的移动 创建目录 创建目录用 mkdir命令 mk–>make dir–>direction 同样的mkdir有很多选项&#xff0c;你可以通过用man命令查这个mkdir命令来获得 mkdir [选项] 目录名创建多级目录 mkdir -r /…