PyTorch深度学习实践——卷积神经网络

news2024/12/22 22:39:17

卷积神经网络

说明

  1. 卷积神经网络就是特征提取器,前一部分叫Feature Extraction,后一部分叫classification。
  2. 卷积神经网络的过程是:卷积(线性变换,提取出重要的特征)、激活函数(非线性变换)、池化(对提取的特征进行压缩);这个过程经过若干次后,用view打平成一维向量,然后送入全连接层。

在这里插入图片描述

import torch
#输入的通道数为5,输出通道数为10
in_channels,out_channels=5,10
#图片大小为100*100
width,height=100,100
#卷积核的大小为3*3
kernel_size=3
#一批
batch_size=1

#构造输入特征
#构造一个通道数为5,大小为100*100的数据
input=torch.randn(batch_size,
                  in_channels,
                  width,
                  height
)

#构造卷积层
conv_layer=torch.nn.Conv2d(
                           in_channels,
                           out_channels,
                           kernel_size=kernel_size
)
output=conv_layer(input)
#输入特征维度为1*5*100*100
print(input.shape)
#输入特征维度为1*10*98*98
print(output.shape)
#
print(conv_layer.weight.shape)

最大池化

import torch
input=[1,2,3,4,
5,6,7,8,
8,9,7,4,
5,7,3,7]
#输入数据要转化为张量类型且卷积层要求输入输出是四维张量,1批1通道的4*4的数据
input=torch.Tensor(input).view(1,1,4,4)
#最大池化,池化面积为2*2
maxpooling_layer=torch.nn.MaxPool2d(kernel_size=2)
output=maxpooling_layer(input)
print(output)

如下图所示将一个12828维度的图片输入卷积神经网络,经过1055卷积层卷积后,维度变为102424,在经过22池化层的最大池化,维度变成1012*12,再经过一次卷积和池化,最后压缩成一维向量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class Net(torch.nn.Model):
      def __init__(self):
          super(Net,self).__init__()
          self.conv1=torch.nn.Conv2d(1,10,kernel_size=5)
          self.conv2=torch.nn.Conv2d(10,20,kernel_size=5)
          self.pooling=torch.nn.MaxPool2d(2)
          self.fc=torch.nn.Linear(320,10)
       def forward(self,x):
       #Flatten data from (n,1,28,28) to (n,784)
           batch_size=x.size(0)
           x=F.relu(self.pooling(self.conv1(x)))
           x=F.relu(self.pooling(self.conv2(x)))
           x=x.view(batch_size,-1)#Flatten
           x=self.fc(x)
           return x
           
   model=Net()

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

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

相关文章

【C++】:智能指针 -- RAII思想shared_ptr剖析

目录 一,内存泄漏二,智能指针的使用及原理2.1 RAII思想2.2 auto_ptr2.3 unique_ptr 三,shared_ptr(重点)3.1 shared_ptr的原理及使用3.2 shared_ptr的模拟实现1. 基本框架2. 引用计数的设计3. 拷贝构造4. 析构函数5. 赋值拷贝 3.3 shared_ptr…

Vue 3+Vite+Eectron从入门到实战系列之(三)一Electron热身运动(一)

前面我们已经把基础环境配置好了,在开始我们编写第一个页面之前,先尝试几个小的实验,体验下 electron 的乐趣。 更改我们应用的名称 系统默认的名字是从 package.json 中读取的,我们可以在这里更改。 {"name": "electron-vue3" }更改后,我们重新启动…

解决pycharm日志总是弹出“无法运行Git,未安装Git”的问题

需求分析 我电脑中安装了git,但是打开pycharm,右下角总是弹出 无法运行Git,未安装Git的日志。 解决方法 首先打开pycharm,按照以下路径,依次点击。 file -----settings-----version control -----Git----Git path(选择自己下载…

【Matplotlib】在 ax(Axes 对象)上使用 seaborn(简称 sns)绘图

在 ax(Axes 对象)上使用 seaborn(简称 sns)绘图时,你可以通过将 ax 作为参数传递给 seaborn 的绘图函数。这允许你将 seaborn 的图形绘制在指定的 ax 对象上,从而将多个图形组合在一个图形布局中。 示例代…

超高速直线模组究竟有多快?飞创直线模组最快速度是多少?

超高速直线模组的速度范围从每秒几毫米到每秒几十米,影响速度的因素包括电磁设计、冷却和机械结构等。超高速直线模组的速度也会因品牌、型号以及具体应用场景等因素而有所不同。 飞创直线模组的速度较快,最大速度可达10m/s,不同规格的直线模…

什么是护网?2024护网行动怎么参加?一文详解_护网具体是做啥的

前言 最近的全国护网可谓是正在火热的进行中,有很多网安小白以及准大一网安的同学在后台问我,到底什么是护网啊?怎么参加呢?有没有相关的学习资料呢?在下不才,连夜整理出来了这篇护网详解文章,希…

JavaWeb系列十一: Web 开发会话技术Cookie

会话技术-Cookie 基本介绍会话的两种技术cookie有什么用?cookie介绍二说cookiecookie可以用来干啥cookie常用方法cookie底层实现机制-创建和读取cookie应用实例-读取指定cookie和修改cookiecookie生命周期介绍应用实例 cookie有效路径有效路径规则应用实例作业布置cookie注意事…

日本求职面试时的注意事项、面试职场礼仪!

毋庸置疑的第一点就是—简历! 接到面试通知,就应该已经通过简历筛选的环节了。但也有些公司会要求面试时带上“履历书”和“职务经历书”。这时候也要好好查看简历上的日期、住址、电话等信息有没有误;以往职业经历有没有写清晰;…

批量修改文件名神器-文件名精灵

最近在网上发现一个批量修改文件名神器,这个软件叫“文件名精灵”,好用还免费。下载地址为

OJ-0807

题目 参考 import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);String input in.nextLine();String[] numStrs inp…

关于百度、微软语音合成的实现案例

关键词 自助机产品、排队呼叫功能、网络喇叭、百度语音合成SDK、微软TTS 阅读建议 对自助机产品功能扩展感兴趣的读者、需要实现远程语音呼叫功能的开发者、想要了解网络喇叭选型及其使用的技术人员、对百度语音合成SDK和微软TTS感兴趣的开发者 阅读时长 预计阅读时长&#xf…

智谱AI正式开源CogVideoX:视频生成技术的新里程碑

前沿科技速递🚀 随着大型模型技术的持续发展,视频生成技术正在逐步走向成熟。智谱AI团队宣布开源其创新的视频生成模型CogVideoX系列,这标志着视频内容创作的一个新里程碑。通过此次开源,智谱AI旨在让每一位开发者、每一家企业都能…

spring+SSM+Mybatis面试题(上)(30道)

目录 1. 何为Spring Bean容器?Spring Bean容器与Spring IOC 容器有什么不同吗?2. Spring IOC 如何理解?3. Spring DI 如何理解?4. Spring 中基于注解如何配置对象作用域?以及如何配置延迟加载机制?1.配置作用域需要注解Scope(“Singleton”)2.开启延迟加载:La…

AWS云账号注销还能重新注册吗

注销了AWS云账号后,是否还能重新注册,这是许多用户关心的问题。今天九河云和大家来详细探讨一下这个话题。 重新注册AWS账号的可能性 一旦你注销了AWS账号,意味着你已经彻底删除了该账户及其所有关联的资源和数据。因此,注销的A…

基于ENVI遥感解译的区域生态环境评价分析

原文链接:基于ENVI遥感解译的区域生态环境评价案例分析https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247611979&idx4&sn9239197610eff7d5ef75a625dcbb5315&chksmfa8277accdf5febaf916e044bf9f0fb23c31ca92ca2a3086ecf435f94a1503fcd59085f…

Mysql 脚本转换为drawio ER 脚本

Navicat 导出数据库脚本 通过代码转换脚本 import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** SQL 脚本转换为 drawio ER 脚本*/ pu…

ArkTS和TypeScript区别

一、对象字面量须标注类型 const point {x: 100,y: 100 }console.log(point) 运行之后会输出 { x: 100, y: 100 } 以上TS代码片段展示了没有类型的场景。如果编译器不知道变量point的确切类型,由于对象布局不能确定,编译器无法深度地优化这段代码&am…

gradle全局配置

搭建spring boot3.x开发环境的先决条件,咱们已经完成了JDK17安装与配置,然后就是项目构建工具,我们使用现在很流行的gradle,进行下全局配置,以方便和加速后续spring boot项目构建。 配置一个GRADLE_USER_HOME环境变量&…

【密码学】密码协议的安全性

密码协议是用来在不安全的网络环境中建立安全通信通道的方法。虽然密码协议中仅有很少的几组消息传输,但其中每条消息的组成都是经过巧妙的设计,而这些协议之间有着复杂的相互作用和制约。 若如果协议涉及上出现漏洞,那么协议将存在验证的安全…