神经网络学习3-卷积层

膨胀卷积,也被称为空洞卷积或扩张卷积,是一种特殊的卷积运算,它在标准卷积的基础上引入了一个额外的超参数,即膨胀率(dilation rate)。这个超参数决定了在卷积核的元素之间插入多少额外的空间。通过这种方式,膨胀卷积能够在不增加计算复杂度的同时,扩大卷积运算的采样范围,从而增加感受野(receptive field)的大小。感受野指的是卷积神经网络中某一层输出结果中一个元素所对应的输入层的区域大小,它代表了卷积核在图像上看到的区域大小。感受野越大,包含的上下文关系越多,有利于捕捉更广泛的图像信息。

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoaderdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform,download=True)
dataloader=DataLoader(dataset=test_data,batch_size=64)
class Yizhou(nn.Module):def __init__(self) -> None:super().__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 xyizhou=Yizhou()
print(yizhou)

输出的是init中定义的卷积
Yizhou(
(conv1): Conv2d(3, 6, kernel_size=(3, 3), stride=(1, 1))
)

卷积后的结果是H-kernel_size +1,W也是

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoaderdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform,download=True)
dataloader=DataLoader(dataset=test_data,batch_size=64)
class Yizhou(nn.Module):def __init__(self) -> None:super().__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 xyizhou=Yizhou()
for data in dataloader:imgs,targets=dataoutput=yizhou(imgs)print(imgs.shape)print(output.shape)

在这里插入图片描述
如图所示可得输出3通道转为了6通道
大小变为了30x30

一个错误:

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform,download=True)
dataloader=DataLoader(dataset=test_data,batch_size=64)
class Yizhou(nn.Module):def __init__(self) -> None:super().__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 xyizhou=Yizhou()
step=0
writer=SummaryWriter('../logs')
for data in dataloader:imgs,targets=dataoutput=yizhou(imgs)print(imgs.shape)print(output.shape)writer.add_images('input',imgs,step)writer.add_images('output',output,step)step=step+1

在这里插入图片描述
这里出现了报错
因为add_images方法一般只接受三通道CHW或者1通道的
因此要用reshape方法进行调整

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdata_transform=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)
test_data=torchvision.datasets.CIFAR10('./dataset',train=False,transform=data_transform,download=True)
dataloader=DataLoader(dataset=test_data,batch_size=64)
class Yizhou(nn.Module):def __init__(self) -> None:super().__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 xyizhou=Yizhou()
step=0
writer=SummaryWriter('logs')#../是父文件夹
for data in dataloader:imgs,targets=dataoutput=yizhou(imgs)print(imgs.shape)print(output.shape)writer.add_images('input',imgs,step)output=torch.reshape(output,(-1,3,30,30))#这里的-1指的是占位,让torch自行计算batchsizewriter.add_images('output',output,step)#SummaryWriter 的 add_images 方法希望输入张量有1个或3个通道#因为这里输出的是6通道,我们需要将6通道转为3通道,多余的放在batchsize里面step=step+1
writer.close()

在这里插入图片描述
在这里插入图片描述
卷积层:多少个卷积核就输出多少层

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

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

相关文章

04-对原生app应用中的元素进行定位

本文介绍对于安卓原生app应用中的元素如何进行定位。 一、uiautomatorviewer uiautomatorviewer是Android-SDK自带的一个元素定位工具,非常简单好用,可以使用该工具查看app应用中的元素属性,帮助我们在代码中进行元素定位。 1)使…

为什么要用较短的域名?

在互联网的世界中,域名是网站身份的重要标识。一个好记、易于输入的域名对于网站的成功至关重要。在众多域名中,较短的域名因其独特的优势而受到青睐。本文将探讨为什么要选择较短的域名,并分析其带来的益处。 易记性 优势:较短…

黑龙江游戏行业需不需要做等保?

游戏行业是否需要进行等保 游戏行业作为当今最受欢迎的娱乐方式之一,其用户数量庞大且用户粘性强,因此成为了网络安全攻击的重点目标。为了保障游戏行业的网络安全,等级保护制度(简称“等保”)的实施显得尤为重要。 …

el-table 固定前n行 配合 max-height 生效

:row-class-name"TableRowClassName" 加上类名 <el-table:data"computedTableList"borderstyle"width: 100%":row-class-name"TableRowClassName"max-height"800"><el-table-column fixed prop"name"…

【OS基础】符合AUTOSAR标准的RTAOS-Alarms详解

目录 前言 正文 7.报警Alarms 7.1配置Alarms 7.1.1激活一个任务 7.1.2 设置一个事件 7.1.3报警回调Alarm Callback 7.1.4 增加计数器值 7.2设置Alarms 7.2.1 绝对Alarms 7.2.2 相对Alarm 7.3自启动Alarms 7.4 删除Alarms 7.5确认何时会发生Alarm 7.6非周期Alarm…

CC攻击需要成本吗

CC攻击几乎不需要成本。这是因为CC攻击很容易发起&#xff0c;大部分进行CC攻击的人都是使用在网上下载的工具&#xff0c;这些工具很少去伪造特征&#xff0c;因此会留下一些痕迹。这意味着&#xff0c;尽管CC攻击可能会对目标系统造成严重影响&#xff0c;但其发起者几乎不需…

Josephus问题

Josephus问题&#xff0c;又称为“约瑟夫环”或“丢手绢问题”&#xff0c;是一个经典的计算机科学和数学问题。这个问题的起源有一个古老的故事背景&#xff0c;但与解决问题的具体算法设计并无直接关联。以下是Josephus问题的详细描述和一种可能的解决方案&#xff1a; ### …

细致解析跨境电商多平台搭建利器-179海关接口源码应用方法

介绍 跨境电商已成为当前电商行业的热门发展方向之一。为满足跨境电商的需求&#xff0c;各大平台纷纷推出了多平台搭建利器。其中&#xff0c;179海关接口源码是一款非常实用的工具&#xff0c;本文将对其应用方法进行细致解析。 了解179海关接口源码 179海关接口源码可以帮…

Vue插件开发:Vue.js的插件架构允许开发者扩展Vue的核心功能,我们可以探讨如何开发一个Vue插件并与社区分享

了解Vue插件 Vue插件的概念: Vue插件用于为Vue.js添加全局级别的功能。它提供了一种开箱即用的机制来应用全局性的功能扩展。这些插件通常用来将全局方法或属性,组件选项,Vue实例的方法,或者注入一些组件选项比如mixins和自定义方法添加至Vue.js。 Vue插件的使用场景:…

2024最新版Vcpkg安装第三方库报错error: building XXXX failed with: BUILD_FAILED

很多朋友用Vcpkg安装第三方库的时候基本都会遇到报错的情况&#xff0c;而且大部分都会出现下面这个页面里面的红色报错信息&#xff0c;但是实际上真正错误应该是上面的Cmake Error提示&#xff0c;下面的红色警告只是Vcpkg官方提供给我们的一个最基础的解决方式&#xff0c;而…

mvn dependency:tree查看依赖树时,报错:No plugin found for prefix ‘dependency’ 该如何解决

今天引入依赖出来问题&#xff0c;就像查看依赖树找找&#xff0c;结果依赖树也不行&#xff0c;好吧&#xff0c;又多了个bug任务。从字面英文意思来看就是没有安装相关的查看依赖树的插件&#xff0c;其实也就是这么简单。&#xff08;我的SpringBoot版本是2.6.3&#xff09;…

【杂记-浅谈数据的封装与解封装】

一、数据封装 概述 Encapsulation&#xff0c;数据封装&#xff0c;是计算机网络中的一个核心概念&#xff0c;涉及将数据从一个地方传输到另一个地方的过程。封装不仅包括数据的传输&#xff0c;还包括一系列的处理步骤&#xff0c;以确保数据能够准确无误地到达目的地。这一…

【Docker系列】深入解析 Docker 容器部署脚本

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【稳定检索/投稿优惠】2024年生物技术与食品科学国际会议(ICBFS 2024)

2024 International Conference on Biotechnology and Food Science 2024年生物技术与食品科学国际会议 【会议信息】 会议简称&#xff1a;ICBFS 2024 大会时间&#xff1a;点击查看 截稿时间&#xff1a;点击查看 大会地点&#xff1a;中国厦门 会议官网&#xff1a;www.icb…

汇聚荣优势是什么?

汇聚荣优势是什么?在探讨企业成功之道时&#xff0c;我们不得不提及“汇聚荣优势”这一概念。简而言之&#xff0c;它指的是企业通过整合内外部资源&#xff0c;形成独特的竞争优势&#xff0c;以实现持续发展与市场领先地位的战略行为。这种优势的构建不是一蹴而就的&#xf…

生信网络学院|06月21日《SolidWorks Costing助力制造企业建立成本核算体系》

课程主题&#xff1a;SolidWorks Costing助力制造企业建立成本核算体系 课程时间&#xff1a;2024年06月21日 14:00-14:30 主讲人&#xff1a;张丹清 生信科技 售前顾问 Costing成本分析简介钣金件成本分析加工件成本分析装配体成本分析总结&答疑 安装腾讯会议客户端或…

Windows上使用vscode配置C/C++编译环境

GCC和GDB 一句话概括&#xff1a;gcc用来编译C&#xff0c;gdb用来调试C。 GCC (GNU Compiler Collection) GCC&#xff08;GNU编译器套件&#xff09;是一个由GNU项目开发的编译器系统&#xff0c;支持多种编程语言&#xff0c;如C、C、Objective-C、Fortran、Ada和Go等。G…

校验正则表达式:中文、英文、中英文、中英文/数字/符号

export const checkName (rule, value, callback) > { let test /^[\u4E00-\u9FA5]$/.test(value); if (!value && rule[required]) { return callback(new Error(请输入)) } else if (value && !test || !test && rule[required]) { return call…

ARM32开发-fat_fs文件系统

FAT_FS 文件系统 FAT (File Allocation Table) 文件系统是一种广泛使用的基于磁盘的文件系统,尤其适用于小型嵌入式系统和存储卡。FAT_FS 就是一个专门针对 FAT 文件系统的开源实现。 FAT_FS 的主要特点 轻量级和高度可移植: FAT_FS 是一个非常轻量级的文件系统实现,占用资源少…

学懂C#编程:让函数返回 多个返回值 的几种常用技术

1. 使用 out 或 ref 参数 out 和 ref 参数允许方法修改传入变量的值&#xff0c;并通过它们“返回”多个值。ref 需要变量事先初始化&#xff0c;而 out 不要求。 public void GetValues(out int val1, out string val2) {val1 10;val2 "Hello"; }// 使用示例 int…