神经网络卷积层

一、卷积操作

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

二、代码

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoaderdataset = 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 = dataoutput = 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 +=1writer.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_sizeoutput = 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.rhkb.cn/news/411888.html

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

相关文章

2024最全网络安全工程师面试题(附答案),金九银十找工作必看!

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

浅析车辆类型检测算法实际应用车辆类型检测算法源码

随着交通运输和物流需求的不断增长,车辆类型检测的准确性和效率成为了一个关键问题。传统的检测方法往往依赖人工和基础的识别技术,面对日益复杂的交通环境,这些方法显得力不从心。幸运的是,智能算法的应用为这一问题带来了突破性…

JavaEE(servlet搭建)

Web开发概述 什么是Web? 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互。流程图如下: Web服务器是指驻留与因特网上的某种类型计算机程序。 他可以向Web客户端提供文档也可以放置网站文件,让全世界浏览;它是一个容器…

基于协同过滤算法Spring Boot+Vue的图书商城系统

基于协同过滤算法的图书商城系统 1、系统流程图 网络书城购物系统由用户端,管理员端两大模块组成,各个模块下边又有许多小模块组成,每个模块的作用各不相同,但彼此之间又存在一定关系,通过分析上述模块之间的联系以及…

APP服务可用性监控与运维方案

一、引言 随着信息化业务的不断扩展,很多APP已关联众多外部服务,涵盖了互联网及内网环境。为确保用户体验,保障服务的高可用性成为运维团队的首要任务。本方案旨在建立一套全面的服务可用性监控体系,及时发现并解决潜在问题&#…

昇思AI框架实践1:安装MindSpoe和MindFormers

mindspore的python环境安装 项目需要安装MindSpoe和MindFormers两个软件包,最简单的安装方法是pip install安装: pip install mindspore2.2.0 mindformers-1.0.0 下面是详细的安装过程。 下载安装miniconda(python环境) mini…

python基础(13魔法方法介绍)

python系列文章目录 python基础(01变量&数据类型&运算符) python基础(02序列共性) python基础(03列表和元组) python基础(04字符串&字典) python基础(05集合set) pytho…

滚雪球学MyBatis-Plus(01):学前导读

🌀写在前面 我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,掘金等各大社区平台签约作者&#xff…

CS2饰品价格趋势怎么看?以及最佳入手时机

CS2饰品价格趋势怎么看?以及最佳入手时机 CS2饰品价格趋势怎么看?以及最佳入手时机 CS2选品时价格趋势图到底怎么看?什么时候值得真正入手?? 8月中上旬这波涨势大家抓住了吗?反正我们是抓住了。然而很多人都是听别人说行情上涨…

Linux之ip命令详解

华子目录 1.ip命令是什么1.1ip命令的由来1.2ip命令的安装包1.2ip选项(基本不用) 2.查看网络信息2.1显示全部网络接口信息2.2显示单个网络接口信息2.3显示单个接口状态2.4查看路由表2.5查看arp缓存 3.设置网卡ip地址3.1启用或停用网卡3.2设置默认网关3.3新…

Priority_Queue 的使用和模拟

目录 一基本的介绍 优先队列是一种容器适配器;他的第一个元素总是他包含所有元素里面最大的一个。 他的底层容器可以是任何标准容器类模板,也可以是其他特定设计的容器类。 这个底层容器应该可以通过随机访问迭 代器,并支持以下操作&#x…

【Java】—— Java面向对象进阶:Java银行账户管理系统设计与实现

目录 1. 账户类(Account) 2. 客户类(Customer) 3. 银行类(Bank) 4. 测试类(BankTest) 运行结果 在今天的博文中,我们将一起探讨一个简单的Java银行账户管理系统的设…

前端Vue使用AES的GCM模式加密

文章目录 前端加密测试Java加解密代码 写了个新的前端项目,公司要求,账号密码这些必须是加密传输的;后端使用了GCM模式加密,前端是复制的一个以前项目的代码,原来是有写加密的,使用的是CryptoJS组件CTR模式…

2024-8-28作业C++/QT

代码&#xff1a; #include <iostream> #include <cstring> #include <array> #include <iomanip> using namespace std; int main() { //array<char,128> a; //array<char,128>::iterator iter; string str; getline(c…

YOLO | YOLO目标检测算法(基础入门)

github&#xff1a;https://github.com/MichaelBeechan CSDN&#xff1a;https://blog.csdn.net/u011344545 YOLO目标检测算法 深度学习经典检测方法1、两阶段&#xff08;Two-stage&#xff09;2、单阶段&#xff08;One-stage&#xff09; 深度学习经典检测方法 1、两阶段&a…

jenkins发布文件到远程服务器

jenkins安装 安装教程 后台启动脚本 创建脚本&#xff1a;start_jenkins.sh ls for pid in $(ps -ef|grep jenkins.war|grep -v grep|cut -c 10-16); doecho $pid;kill -9 $pid; done;nohup java -Djava.awt.headlesstrue -jar /usr/local/jenkins/jenkins.war --webroot/…

游戏分享网站|基于SprinBoot+vue的游戏分享网站系统(源码+数据库+文档)

游戏分享网站 目录 基于SprinBootvue的游戏分享网站 一、前言 二、系统设计 三、系统功能设计 5.1系统功能模块 5.2后台登录 5.2.1管理员功能模块 5.2.2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#x…

SpringCloud乐尚代驾学习笔记:环境搭建(二)

文章目录 1、前端环境1.1、注册微信开发者账号1.2、开通服务与插件1.3、微信开发者工具使用 2、服务器端环境2.1、安装mysql2.2、安装rabbitmq2.3、安装redis2.4、安装nacos2.5、安装minio 3、导入初始化项目 1、前端环境 1.1、注册微信开发者账号 虽然开发微信小程序可以使用…

牛客NC313 两个数组的交集 C++

牛客NC313 两个数组的交集 C 思路&#x1f914;&#xff1a; 用哈希表存储第一个数组&#xff0c;再和第二个数组对比&#xff0c;对比成功就添加到新的数组中&#xff0c;之后将哈希表的该位置变为false&#xff0c;防止重复添加。这里数据范围仅有1000&#xff0c;所以我们可…

nginx转发接口地址【非常实用】

使用场景 由于客户的需求是要访问一个外网接口 比如http://58.20.57.190:6652 实例 http://58.20.57.190:6652//uploadBasePatient?Barcode1000000073&customerCode1 比如外网才能访问&#xff0c;科室电脑是访问不了外网的 我们就需要中间在一个既有外网又有内网的前置…