【Pytorch】torch.nn.conv2d

这个函数和我们之前提到的【Pytorch】6.torch.nn.functional.conv2d的使用的作用相似,都是完成CV领域的卷积操作,这里就不在过多赘述

torch.nn.conv2d的使用

打开pytorch的官方文档,我们可以看到
在这里插入图片描述
在这里插入图片描述
torch.nn.conv2d包含了若干参数

  • in_channels:代表输入的通道数
  • out_channels:代表输出的通道数
  • kernel_size:代表卷积核的大小,既可以是int类型,也可以是tuple元组类型,比如(2,5)代表卷积核大小为两行五列
  • stride:代表卷积每次的步长
  • padding:代表输入层的边缘填充
  • padding_mode:代表边缘填充的规则,默认为用0填充
  • dilation:代表膨胀,默认为1
    我们也可以通过官方的这个链接link来对每个参数进行了解

具体的使用方法为

# With square kernels and equal stride
m = nn.Conv2d(16, 33, 3, stride=2)
# non-square kernels and unequal stride and with padding
m = nn.Conv2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2))
# non-square kernels and unequal stride and with padding and dilation
m = nn.Conv2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2), dilation=(3, 1))
input = torch.randn(20, 16, 50, 100)
output = m(input)

具体用例

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10(root='./dataset', transform=torchvision.transforms.ToTensor(), train=False,download=False)dataLoader = DataLoader(dataset, batch_size=64, shuffle=True)class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)def forward(self, x):x = self.conv1(x)return xnet = Net()writer = SummaryWriter(log_dir='./logs')i = 0
for data in dataLoader:img, target = dataoutput = net.forward(img)# print(output.shape)writer.add_images('input', img, i)# -1是一个占位符,让Pytorch自动计算维度大小output = torch.reshape(output,(-1, 3, 30, 30))# 无法直接传入6通道,只能3通道writer.add_images("output", output, i)i = i + 1writer.close()

需要注意一下几点

  • 再使用TensorBoard进行可视化时,需要使用writer.add_images而不是writer.add_image要加s
  • 再使用writer进行可视化时,tensor格式只支持3通道,如果是其他通道数,需要使用torch.reshape来进行通道数转换

在这里插入图片描述
因为output上是64个图片为一组,通道数为6,所以转化为通道数为3的话,有64*2的图片

下面附上输入输出通道数与像素数的计算方法
在这里插入图片描述

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

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

相关文章

考研数据结构:栈与队列

栈与队列 栈Stack 栈的结构体定义及基本操作。 #define MaxSize 50 typedef struct {int data[MaxSize];//栈中存放数据类型为整型int top;//栈顶指针 }Stack; void InitStack(Stack& S) {//初始化栈S.top -1; } int IsEmpty(Stack S) {//判断栈是否为空if (S.top -1)…

一文读懂 Pencil 积分,打开 Pencils Protocol 生态权益大门

近日,Scroll 生态项目 Penpad 近期将品牌全新升级为 Pencils Protocol ,在升级后,其从一个 Scroll 生态的原生 LaunchPad 平台进一步拓展为集 Staking、Vault 以及 Shop 等功能于一体的全新生态。全新的品牌升级不仅让 Pencils Protocol 生态…

ubuntu18.04系统安装pangolin

1. 安装pangolin依赖项 ctrlaltt 打开终端,依次输入下面的命令 sudo apt update sudo apt upgrade sudo apt install libglew-dev cmake libboost-dev libboost-thread-dev libboost-filesystem-dev libeigen3-dev -y 2.在终端中输入下面的命令,克隆…

2024 年第一季度全球互联网中断事件

2024 年第一季度伊始,互联网发生了多起中断事件。陆地和海底电缆的损坏在多个地方造成了问题,而与持续中地缘政治冲突相关的军事行动影响了其他地区的连接。 几个非洲国家以及巴基斯坦的政府下令关闭互联网,主要针对移动网络连接。 被称为Ano…

Pyqt中QThread传递自己定义的参数、类、函数

Pyqt中QThread传递自己定义的参数、类、函数 1 pyqt中Qthread传递自己定义的参数2 pyqt中Qthread传递自己定义的类3 pyqt中Qthread传递自己定义的函数4 pyqt中Qthread内部定义自己的函数5 pyqt中Qthread传递参数到内部定义自己的函数 1 pyqt中Qthread传递自己定义的参数 在PyQ…

Android开发adb命令使用大全

Android开发中,adb(Android Debug Bridge)是一个多功能命令行工具,它允许你与连接的Android设备进行通信。以下是一些常用的adb命令及其用途的详细列表: 基本设备管理 adb devices:列出所有连接的设备和模拟…

(四)Spring教程——控制反转或依赖注入与Java的反射技术

IoC的底层实现技术是反射技术,目前Java、C#、PHP 等语言均支持反射技术。 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法;对任意一个对象,都能够调用它的任意方法和属性(包括私有的方法…

python的标准数据类型

四、标准数据类型 1、为什么编程语言中要有类型 类型有以下几个重要角色: 对机器而言,类型描述了内存中的电荷是怎么解释的。 对编译器或者解释器而言,类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。 对程序员而言…

vLLM推理服务库

一、定义 定义与目的为什么Cache只存储K、V,而不存储Q?为什么vllm和HF推理结果不一致?vLLM 实现原理pagedAttention 实现原理模型部署demo 二、实现 定义与目的 目的:减少显存、提高吞吐量。如何优化KV cache,节省显…

基于大模型训练的数字识别

创作原因 现在写电赛题,题目有识别数字的要求。但使用设备openmv使用模板匹配的算法帧率很低,且识别效果不是很好,于是我们就想到了利用神经网络训练模型来识别数字 正文部分 内容介绍 本文内容是基于openmv使用Edge Impulse训练大模型。…

爬虫工作量由小到大的思维转变---<第七十五章 > Scrapy爬虫回调函数在请求重试中的应用研究

前言: 在Scrapy框架中,利用回调函数进行请求重试的实践方法与其优劣势,与传统的中间件重试机制进行对比。通过深入分析回调函数的工作原理及其在网络爬虫项目中的应用,旨在提高网络爬虫的效率和稳健性。同时,本文将探讨…

服务攻防——应用协议ssh,rsync,proftpd,openssh,libssh

1.口令猜解 ftp-拿来文件传输的 rdp-windows远程连接 3389 ssh-linux远程连接 工具hydra 口令 1.windows 这就爆破成功了,现在,我们就可以ftp爆破,爆破出ftp的密码 爆破出来后 访问 2.ssh Rsync(配置不当,未授权…

【Docker】docker-compose简单实战

1、首先要准备好Jar包 docker-compose.yml version: "2.2.4" services:redis:image: rediscontainer_name: redisvolumes:- /redis/data:/data- /redis/redis.conf://usr/local/etc/redis/redis.confnetworks:- kewu-networkkewu:build:context: .dockerfile: dock…

[NOI Online #2 入门组] 未了

[NOI Online #2 入门组] 未了 题目描述 由于触犯天神,Sisyphus 将要接受惩罚。 宙斯命 Sisyphus 推一块巨石上长度为 L L L 的山坡。Sisyphus 匀速向上推的速度为每年 v v v 的长度(由于是匀速,故经过 1 2 \frac{1}{2} 21​ 年将能向上…

Gooxi发布最新AI服务器:加速生成式AI落地 更懂AI

近日,Gooxi发布最新训推一体AI服务器,以大容量内存和灵活的高速互连选项满足各种AI应用场景,最大可能支持扩展插槽,从而大幅提升智能算力性能,以最优的性能和成本为企业的模型训练推理落地应用提供更好的通用算力。 AI…

主从Reactor服务器

目录: 目录: 目标: 本文讲解思路: 各模块的功能以及代码: 1.服务器相关模块:服务器模块的功能是对所有的连接以及线程进⾏管理 2.协议相关模块:协议模块是对当前的Reactor模型服务器提供应…

【HarmonyOS】Stage 模型 - 应用配置文件

如图所示: Stage 模型应用配置文件主要有两类: 全局配置文件。放在 AppScope 目录下,app.json5。用来配置应用全局的信息。模块配置文件,放在每个模块里,module.json5。用来配置模块的信息。 一、全局配置文件 示…

python的取余与计算商的关系

在Python中,取余数使用的是 % 运算符。它计算一个数除以另一个数的余数,并将结果返回。 例如,如果你执行 a % b,它将返回 a 除以 b 的余数。 这在编程中有很多用途,其中一些包括: 判断奇偶性&#xff1a…

LeetCode1657确定两个字符串是否接近

题目描述 如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 : 操作 1:交换任意两个 现有 字符。例如,abcde -> aecdb操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符&#xff0…

【数据可视化01】matplotlib实例3之数据统计

目录 一、引言二、实例介绍1.百分位数为横条形图2.箱线图定制化3.带有自定义填充颜色的箱线图4.箱线图5.箱线图和小提琴图6.二维数据集的置信椭圆 一、引言 matplotlib库 可以用来创建各种静态、动态、交互式的图形,并广泛应用于数据分析和数据可视化领域。 二、实…