pytorch学习(六):卷积层的使用

卷积函数的概念

  • 卷积核从输入特征图的左上角开始,按照设定的步长(Stride)滑动。步长决定了卷积核每次滑动的像素数,这里我们假设步长 s=1
  • 在每次滑动时,卷积核与输入特征图对应位置的元素相乘,然后将这些乘积相加得到一个输出值。

torch.nn.functional 

conv2d卷积函数的参数为例:

参数说明:

input:要求的输入shape为4个。(minibatch,通道,高,宽)

        如果输入的input的shape不符合要求,可以通过torch.reshape来进行reshape。

stride:步数,卷积核移动的步长 

padding:在图像的上下左右进行填充(填充的数一般设置为0),可以指定一个数,也可以指定一个元组。填充的目的是为了增加感受野,充分利用边缘信息,使里面的数被用到的次数均匀一些。

遇见问题1:为什么二维张量卷积后变成了四维张量呢?

解决办法:在进行规范性输入的时候,二维张量reshpe成了四维张量,所以变成了四维张量。

torch.nn

卷积层:

in_chanels:输入图片的数量,比如,输入一个图片就是in_chanel为1.

out_chanels:输出的由卷积后产物的数量,比如out_chanel=1就是卷积后的产物有一个;out_chanel=2就是卷积核会有两个,每个卷积核分别与输入进行卷积,得到两个卷积后的产物,然后两个叠加起来(三明治有两篇面包)就是一个输出。

dilation: 卷积核对应位的距离

bias:对卷积的结果是否加减一个常数。

groups:分组卷积(一半设置为1,很少使用)

padding:在图像的上下左右进行填充(填充的数一般设置为0),可以指定一个数,也可以指定一个元组。填充的目的是为了增加感受野,充分利用边缘信息,使里面的数被用到的次数均匀一些。

padding_mode:填充模式,选择0填充还是1填充。

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

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

dataloader=DataLoader(dataset,batch_size=64)
class WWJ(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 =Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1)

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

wang=WWJ()

print(wang)

# write=SummaryWriter('logs')
# step=0
for data in dataloader:
    imgs,targets=data
    output=wang(imgs)
    # print(imgs.shape) #torch.Size([64, 3, 32, 32])
    # print(output.shape)  #torch.Size([64, 6, 30, 30])
    # write.add_images("input",imgs,step)
    # write.add_image("output",output,step)
    # step=step+1

    

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

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

相关文章

ENSP中VLAN的设置

VLAN的详细介绍 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将一个物理的局域网在逻辑上划分成多个广播域的技术。 以下是关于 VLAN 的一些详细介绍: 一、基本概念 1. 作用: - 隔离广播域&#xff1a…

Linux 安装 Docker Compose

Docker Compose 是一种用于定义、运行和管理多容器Docker应用程序的工具,通过YAML文件配置服务,实现一键启动和停止所有服务。 以下是如何在 Linux 系统上安装 Docker Compose 的步骤 1. 下载 Docker Compose 可执行文件 wget https://github.com/dock…

c++ primer plus 第16章string 类和标准模板库,16.1.3 使用字符串

c primer plus 第16章string 类和标准模板库,16.1.3 使用字符串 c primer plus 第16章string 类和标准模板库,16.1.3 使用字符串 文章目录 c primer plus 第16章string 类和标准模板库,16.1.3 使用字符串16.1.3 使用字符串程序清单16.3 hangman.cpp 16.1.3 使用字符串 现在&a…

暑期大数据人工智能企业项目试岗实训班

在数字化转型的浪潮中,大数据和人工智能等前沿技术已成为推动经济发展和科技进步的关键动力。当前,全球各行各业都在积极推进数字化转型,不仅为经济增长注入新活力,也对人才市场结构产生了深刻影响,尤其是对数字化人才…

2024.7.16作业

使用结构体完成学生(学号、姓名、性别、成绩)管理系统 1> 使用菜单实现 2> 功能1:完成对学生信息的录入,确定人数,完成输入 2> 功能2:完成对学生信息的输出 3> 功能3:输出成绩最…

Linux C | 管道open打开方式

Linux C | 管道open打开方式 1.参考 1. 管道 2.现象 是的,这段代码在调用 open(AUDIOIN_FIFO, O_RDONLY) 时可能会被阻塞。原因是 FIFO(命名管道)在以只读模式打开时,如果没有其他进程以写模式打开该 FIFO,open 调用将…

ASP.NET Core----基础学习07----ViewStart ViewImports文件的使用

文章目录 1._ViewStart.cshtml的使用2.更换Layout文件3._ViewImports.cshtml文件的使用 1._ViewStart.cshtml的使用 step1: 在Views文件夹下面创建_ViewStart.cshtml文件 step2: 删掉视图文件中的Layout设置行 step3: 最终显示效果&#xff…

Redis的单线程讲解与指令学习

目录 一.Redis的命令 二.数据类型 三.Redis的key的过期策略如何实现? 四.Redis为什么是单线程的 五.String有关的命令 Redis的学习专栏:http://t.csdnimg.cn/a8cvV 一.Redis的命令 两个基本命令 在Redis当中,有两个基本命令&#xff1…

企业智能制造赋能的环境条件为什么重要?需要准备什么样的环境?

在全球制造业不断演进的今天,智能制造已经成为推动行业创新和转型的关键力量。它不仅代表了技术的革新,更是企业管理模式和运营思路的全面升级。然而,智能制造的落地实施并非一蹴而就,它需要企业在环境条件上做好充分的准备&#…

Java设计模式的7个设计原则

Java设计模式的7个设计原则是面向对象设计领域中的重要指导方针,它们旨在提高软件系统的可维护性、可扩展性、可复用性和灵活性。以下是这7个设计原则的详细解释: 1. 开闭原则(Open-Closed Principle, OCP) 定义:一个…

tinymce vue拓展多图上传 实现拖拽切换位置,图片排序

实现功能:基于tinymce TinyMCE中文文档中文手册 拖拽图片排序,去掉全部上传按钮,点击保存上传图片并关闭弹窗,优化了一些交互提示 声明:本人不是做vue前端的,可能有些更好的方法实现拖拽或者其他一些开源…

TS 入门(五):TypeScript接口与类

目录 前言回顾高级类型与类型操作1. 接口a. 基本接口b. 可选属性和只读属性c. 函数类型接口d. 可索引类型e. 接口继承 2. 类a. 基本类b. 类的成员(属性和方法)c. 构造函数d. 继承和派生类e. 公有、私有和受保护的修饰符f. 静态属性和方法g. 抽象类 扩展知…

算法篇 滑动窗口 leetcode 长度最小的子数组

长度最小的子数组 1. 题目描述2. 算法图分析2.1 暴力图解2.2 滑动窗口图解 3. 代码演示 1. 题目描述 2. 算法图分析 2.1 暴力图解 2.2 滑动窗口图解 3. 代码演示

React基础学习-Day04

React基础学习-Day04 常见的钩子函数及基础使用方式 1.useState useState 是 React 的一个 Hook,用于在函数组件中添加状态。它返回一个状态变量和一个更新该状态的函数。与类组件的 this.state 和 this.setState 相对应,useState 让函数组件也能拥有…

借助 Aspose.Words,在 C# 中将 Word 转换为 JPG

有时我们需要将 Word 文档转换为图片,因为 DOC 或 DOCX 文件在不同设备上的显示可能会有所不同,但图像(例如 JPG 格式)在任何地方看起来都一样。 Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作…

设计模式-UML类图

1.UML概述 UML-统一建模语言,用来设计软件的可视化建模语言; 1.1 UML分类 静态结构图:类图、对象图、组件图、部署图动态行为图:状态图、活动图、时序图、协作图、构件图等 类图:反应类与类结构之间的关系&#xff0…

非法闯入智能监测摄像机:安全守护的新利器

在当今社会,安全问题愈发受到重视。随着科技的进步,非法闯入智能监测摄像机应运而生,成为保护家庭和财产安全的重要工具。这种摄像机不仅具备监控功能,还集成了智能识别和报警系统,能够在第一时间内检测到潜在的入侵行…

【三维AIGC】扩散模型LDM辅助3D Gaussian重建三维场景

标题:《Sampling 3D Gaussian Scenes in Seconds with Latent Diffusion Models》 来源:Glasgow大学;爱丁堡大学 连接:https://arxiv.org/abs/2406.13099 提示:写完文章后,目录可以自动生成,如何…

Vue3 组件向下通信 祖孙组件的通信 provide与inject

介绍 当父子间通信可以使用props,祖孙使用provide(传递)或inject(接收), 这时不管组件套的多深都可以向下传递。 例子 现在有一个需求,把App.vue的数据传递到MusciPlay.vue里。 App.vue …

Latte: Latent Diffusion Transformer for Video Generation

文章目录 AbstractIntroductionMethodology潜在扩散模型的初步研究Latte的模型变体Latte的实验验证潜在视频片段的patch embeddingTimestep-class information injectionTemporal positional embedding通过学习策略增强视频生成 Experiments Abstract Latte首先从输入的视频提…