神经网络卷积层

news2024/11/24 19:08:44

一、卷积操作

对应位置相乘相加,最终组成一个新的矩阵,实现了降维。

二、代码

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

dataset = torchvision.datasets.CIFAR10("../data", train= False, transform=torchvision.transforms.ToTensor(),
                                       download=True)
dataloader = DataLoader(dataset, batch_size=64)

# 搭建简单神经网络
class aying(nn.Module):
    def __init__(self): # 初始化
        super(aying, self).__init__() # 父类
        # 定义卷积层,self使用后,后面的参数在其他函数中也可以使用
        self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3, stride=1, padding=0)
     # 定义forward函数
    def forward(self, x):# x是输出
        x = self.conv1(x) # x 已经放进卷积层中
        return x
# 初始化该网络A
Aying = aying()
print(Aying) # 查看该网络结构

运行该代码,就可以在运行结果中,查看到:

aying(
  (conv1): Conv2d(3, 6, kernel_size=(3, 3), stride=(1, 1)))

 将加载的数据放进卷积神经网络中处理:

# 将加载的数据放进卷积神经网络中,对数据进行处理
for data in dataloader:
    imgs,targets = data
    output = Aying(imgs)
    print(imgs.shape)
    print(output.shape)

处理后,得到的输出:

  (conv1): Conv2d(3, 6, kernel_size=(3, 3), stride=(1, 1))
)
torch.Size([64, 3, 32, 32])
torch.Size([64, 6, 30, 30])

输入的imgs图片的batch_size为64,通道为3,图片大小为32*32

卷积后的输出output:batch_size为64,通道为6,图片大小为30*30(降维)

使用tensorboard查看:

writer = SummaryWriter("../juanji")
step =0

在for循环体中:

    # 卷积神经网络在tensorboard中查看
    writer.add_image("input", imgs, step)
    writer.add_image("output", output, step)
    step +=1

writer.close()

使用这样的方法按理说,我们能够在tensorboard中查看我们所需要的图像,但是出现了报错,显示的是,输入为3通道的图像,输出的却为6通道的图像,于是使用reshape的方法对其分开:

 # torch.Size([64, 3, 32, 32])
    writer.add_image("input", imgs, step, dataformats="NCHW")
    # torch.Size([64, 6, 30, 30]) ,六个chanel,不能显示
    # 将其拆分,6通道的拆分为3通道,使用-1实现划分batch_size
    output = torch.reshape(output,(-1, 3, 30, 30))
    writer.add_image("output", output, step, dataformats="NCHW")
    step +=1

 同时,会显示报错,代码中写入(-1,3,30,30)型的,但是在    writer.add_image("output", output, step)却只有三个参数,于是还有需要加入dataformats="NCHW"。

成功运行,显示结果:

输出进行卷积后图像。

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

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

相关文章

三级_网络技术_54_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写路由器RG的路由表项。 目的网络/掩码长度输出端口__________S0(直接连接)__________S1(直接连接)__________S0__________S1__________S0__________S1 2.如果将10.10.67.128/2…

C++----简单了解vector

大家好,今天我们来讲讲与string相似的向量类型。之所以说他们是相似的原因是他们其中的数据类型有些效果都是一样的。当然大家不能说,既然是差不多的干嘛还有一个这个啊。不如直接用string就可以了。当然世界名言存在即合理。既然我们都能想到的东西&…

Docker 部署 net6 webapi项目

摘要:记录 net6 webapi 项目在 docker 上部署步骤,方便自己后面查看,也方便他人学习。 1. 创建 webapi 项目 点击创建新项目 选择 ASP.NET Core Web API 项目,点击下一步。 给项目命名,然后勾选将解决方案和项目放在同…

C++初学(18)

18.1、读取数字的循环 假设要编写一个将一系列的数字读入到数组中的程序,并允许用户在数组填满之前结束输入。一种方法是利用cin: int n; cin>>n; 如果用户输入的是一个单词,而不是一个数字将会怎么样?可能会发生这些情况…

环境变量--永久 & 暂时

Linux 环境变量配置信息 查看环境变量 export 查看系统所有环境变量echo $PATH 查看 PATH 环境变量值 环境变量的命名规则为:变量名变量值 多个变量值之间使用 : 分隔 添加环境变量 环境变量分类 按照作用域分类 环境变量可以简单的分成用户自定义的环境变量…

OJ-0829

题目 示例1 输入: 5 4 1 1 2 3 5 1 2 3 1 4 3 4 5 2 3 4 输出: 3 4 1 2说明:测试用例的优先级计算如下: T1Pf1Pf2Pf31124 T2Pf1Pf4134 T3Pf3Pf4Pf523510 T4Pf2Pf3Pf41236 按照优先级从小到大,以及相同优先级,ID小的先执行的规则&…

#C++ 笔记三

七、异常处理 1.概念 异常是程序在执行期间产生的问题。 C异常是指在程序运行时发生的特殊情况,比如下标越界等。 异常提供了一种转移程序控制权的方式。 2.抛出异常 throw语句的操作数可以是任意表达式,表达式结果的类型决定了抛出异常的类型。 …

Elasticsearch Suggesters API详解与联想词自动补全应用

Elasticsearch Suggesters API详解与联想词自动补全应用 引言Elasticsearch Suggesters1. Term Suggester实现步骤示例 2. Phrase Suggester示例 3. Completion Suggester创建映射和插入数据查询示例 4. Context Suggester示例 Completion Suggester1. 工作原理2. 使用流程3. 使…

企业级低代码解决方案:JNPF平台深度解析

随着数字化转型的不断推进,企业对于快速开发、高效部署和灵活迭代的需求日益增长。低代码开发平台应运而生,成为加速企业应用开发的重要工具。在众多低代码平台中,JNPF凭借其强大的企业级特性脱颖而出,成为众多企业的首选。本文将…

【系统架构设计师-2019年】综合知识-答案及详解

文章目录 【第1题】【第2~3题】【第4题】【第5题】【第6~7题】【第8题】【第9~10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16~17题】【第18~19题】【第20~21题】【第22~23题】【第24~25题】【第26~28题】【第29~30题】【第31~32题】【第33题】【第34题】【第…

Java中三大容器类(List、Set、Map)详解

三大容器介绍 名称结构特点常见实现类List(列表)由有序的元素序列组成,可以包含重复元素可以通过索引访问元素,插入的顺序与遍历顺序一致ArrayList、LinkedList、VectorMap(映射)由键值对(Key-Value)组成的…

Axure 9 使用

一、界面初识 二、基础功能 1.菜单栏 1.1文件 新建文件:axure9包含四种文件.rp代表原型文件,.rplib代表元件库文件,.rpteam 团队项目文件 .html 网页文件 偏好设置:备份,需要备份文件再从备份中恢复 创建项目团…

GPT-SoVITS:零样本语音合成AI

GPT-SoVITS 是一种语音合成模型,于 2024 年 2 月 18 日发布。它支持使用参考音频进行零样本语音合成,并且可以进行微调以提高性能。 GPT-SoVITS 的功能特性包括: Zero-Shot TTS:零样本语音合成,输入 5 秒音频样本即可…

57.基于IIC协议的EEPROM驱动控制(4)

(1)顶层代码: module IIC_EEPROM(input wire clk ,input wire reset_n ,input wire key_r ,input wire key_w ,output wire …

DM一主一实时备一异步备守护集群安装

在前面章节中已经部署了一主一实时备机,此次实施过程中主要添加异步备库。 1. 环境描述 实例详情: 端口详情 2. 关闭主备库守护进程、监视器、数据库实例 [dmdbaray1 ]$ DmWatcherServiceDW stop Stopping DmWatcherServiceDW: …

基于ssm+vue+uniapp的图书管理系统小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

JVM 内存参数

文章目录 引言I JVM基础知识Java 语言是解释型的OpenJDK和Sun/Oracle JDK和hotspot的关系JDK、JRE、JVM 之间的关系JVM基础功能JVM组成JIT:Just In Time CompilerJVM内存区域JVM运行时数据区JVM 堆内存布局II JVM 内存参数常用参数JIT编译参数GC信息打印GC参数III 例子引言 J…

M2BEV

Part 1: 2D 图像编码器 给定 NNN 张大小为 HW3的图像,我们对所有图像使用共享的 CNN 主干网络进行前向传播,例如使用 ResNet,并通过特征金字塔网络(FPN)创建四级特征 F1,F2,F3,F4。 然后,将这些特征全部上…

Quartus网盘资源下载与安装 附图文安装教程

如大家所了解的,Quartus是一种FPGA设计软件(相信理工科的小伙伴,很多都接触或学习过FPGA),旨在为数字电路设计师提供一个高效、便捷的开发环境。它可以帮助用户完成数字逻辑电路的设计、仿真、综合和布局,以…

webpack4手动搭建Vue项目

小满视频 很多解释使用通义灵码搜的,通义灵码的搜索结果也是有错误的全程使用pnpm包管理工具,和npm的用法基本一样 学习总结 1. 多看看webpack官网 2. webpack的作用:配置一堆东西,达到运行程序的目的 3. 无论什么东西都转成js,…