当前位置: 首页 > news >正文

【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.lryc.cn/news/349542.html

相关文章:

  • WPF之DataGird应用
  • linux内核debug(二)在线调试内核kdb/kgdb工具使用及环境搭建
  • 解决“电脑开机黑屏Explorer进程卡死“问题
  • 阿里云学习笔记2
  • 【回溯】1240. 铺瓷砖
  • 【Unity Shader入门精要 第7章】基础纹理(一)
  • el-checkbox选中后的值为id,组件显示为label中文
  • 03-数据结构(一)
  • MySQL问题记录-主机被锁问题
  • 用好 explain 妈妈再也不用担心我的 SQL 慢了
  • 【漏洞复现】泛微OA E-Cology SignatureDownLoad SQL注入漏洞
  • 前端工程化,前端监控,工作流,部署,性能
  • 浅析Java贪心算法
  • vue3.0(五) reactive全家桶
  • Selenium 自动化 —— 四种等待(wait)机制
  • 每日两题 / 437. 路径总和 III 105. 从前序与中序遍历序列构造二叉树(LeetCode热题100)
  • matlab使用2-基础绘图
  • 嵌入式开发四大平台介绍
  • 《Python编程从入门到实践》day28
  • STC8增强型单片机开发【定时器Timer⭐】
  • C语言实训项目源码-02餐厅饭卡管理系统-C语言实训C语言大作业小项目
  • Linux第四节--常见的指令介绍集合(持续更新中)
  • Apache Sqoop:高效数据传输工具搭建与使用教程
  • 【C++初阶】第十一站:list的介绍及使用
  • 【devops】Linux 日常磁盘清理 ubuntu 清理大文件 docker 镜像清理
  • 2024年资阳市企业技术中心申报条件、流程要求及支持政策须知
  • 社交媒体数据恢复:如流
  • 【微信小程序开发(从零到一)【婚礼邀请函】制作】——任务分析和效果实现的前期准备(1)
  • 独孤思维:模仿别人赚钱太难,很痛苦
  • 图片转base64【Vue + 纯Html】