pytorch学习(二)、网络的构建和卷积层

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

    • 前言
    • 一、nn.Module(网络的构建)
    • 二、torch.nn.functional.conv2d(卷积运算)
    • 三、神经网络--卷积层(一层卷积网络的构建)


前言

如果对卷积层和卷积不是很了解的可以去看博主之前的文章:
卷积到底卷了个啥?五千字详细介绍数学卷积、图像卷积和卷积神经网络的卷积

一、nn.Module(网络的构建)

#导包
import torch.nn as nn
import torch.nn.functional as F
# 创类
class Model(nn.Module):def __init__(self):super(Model,self).__init__()#初始化子类self.conv1 = nn.Conv2d(1,20,5)self.conv2 = nn.Conv2d(20,20,5)# 向前传播def forward(self,x):x = F.relu(self.conv1(x))return F.relu(self.conv2(x))

二、torch.nn.functional.conv2d(卷积运算)

  • 2维卷积

  • conv2d(input: Tensor,
    weight: Tensor,
    bias: Tensor | None = None,
    stride: int | Size | list[int] | tuple[int, …] = 1,
    padding: str = “valid”,
    dilation: int | Size | list[int] | tuple[int, …] = 1,
    groups: int = 1) -> Tensor)

#导包
import torch.nn.functional as F
import torch
#设置输入矩阵
input = torch.tensor([[1,2,0,3,1],[0,1,2,3,1],[1,2,1,0,0],[5,2,3,1,1],[2,1,0,1,1]])
#设置卷积核大小
kernel = torch.tensor([[1,2,1],[0,1,0],[2,1,0]])
#转换成函数参数要求的形状
input = torch.reshape(input,(1,1,5,5))
kernel = torch.reshape(kernel,(1,1,3,3))
#调用函数
output = F.conv2d(input,kernel,stride=1)
print(output)
'''
tensor([[[[10, 12, 12],[18, 16, 16],[13,  9,  3]]]])
'''

三、神经网络–卷积层(一层卷积网络的构建)

  • 主要对2维卷积进行演示
  • Conv2d(self,
    in_channels: int,
    out_channels: int,
    kernel_size: Union[int, tuple[int, int]],
    stride: Union[int, tuple[int, int]] = 1,
    padding: Union[str, int, tuple[int, int]] = 0,
    dilation: Union[int, tuple[int, int]] = 1,
    groups: int = 1,
    bias: bool = True,
    padding_mode: str = ‘zeros’,
    device: Any = None,
    dtype: Any = None) -> None)
  • in_channels:输入通道数
  • out_channels:输出通道数
  • kernel_size:卷积核大小
  • stride:步子(一次移动距离为多少)
  • padding:间距

import torchvision
import torch
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
# 从官网下载数据
dataset = torchvision.datasets.CIFAR10('./dataset/CIFAR10',transform=torchvision.transforms.ToTensor(),download=True)
# 加载数据
dataloader = DataLoader(dataset,batch_size=64)
# 构建网络
class Model(nn.Module):def __init__(self):super(Model, self).__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 x
# 实例化网络
model = Model()
#对数据进行卷积
for data in dataloader:img,target = dataoutput = model(img)print(output.shape)

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

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

相关文章

Mysql中的日志系统

文章目录 1. 慢查询日志(Slow Query Log)1.1 是否开启慢查询日志1.2 开启慢查询日志,设置时间阈值1.2.1 修改文件my.ini1.2.2 重启mysql后配置生效 1.3 查看慢查询日志1.3.1 直接用文本编辑器打开1.3.2 使用mysqldumpslow进行分析 2. InnoDB …

C语言从入门到实战——文件操作

文件操作 前言一、 为什么使用文件二、 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 三、 二进制文件和文本文件四、 文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开和关闭4.4 文件的路径 五、 文件的顺序读写5.1 顺序读写函数介绍fgetcfp…

【音视频原理】图像相关概念 ③ ( RGB 色彩简介 | RGB 排列 | YUV 色彩简介 | YUV 编码好处 )

文章目录 一、RGB 色彩1、RGB 色彩简介2、RGB 排列 二、YUV 色彩1、YUV 色彩简介2、YUV 编码好处 一、RGB 色彩 1、RGB 色彩简介 RGB 是 计算机 中的 颜色编码方法 , 红 ( R ) / 绿 ( G ) / 蓝 ( B ) 三个颜色通道 可以设置不同的值 , 每个 通道 的 颜色值都可以取值 0 ~ 255 ,…

【已解决】namespace “Ui“没有成员 xxx

先说笔者遇到的问题,我创建一个QWidget ui文件,然后编辑的七七八八后,想要用.h与.cpp调用其,编译通过,结果报了这个错误,本方法不是普适性,但是确实解决了这个鸟问题。 问题来源 搭建ui后&…

数据分析师不加班的秘密,三行代码教你Python自动发送邮件

作为一名数据分析师,每天除了做数据日报,还要编写邮件正文和添加数据日报附件,发送给对应的负责人及销售个人,一般一封邮件应包含邮箱账户名、邮箱密码、发送人邮箱、邮件主题以及邮件正文。 本文借助Python工具,使用y…

MyBatis框架基础到进阶

1、为什么要学习MyBatis 如果没有MyBatis框架,我们依靠JDBC和连接池已经能够很好的和数据库进行交互了,而学习MyBatis框架最核心的原因是为了减少SQL语句对代码的侵入性。 因为在过往不管是使用连接池还是JDBC Templete,所有的SQL语句都写在代…

java.sql.SQLException: Failed to fetch schema of XXX 问题

遇到问题:java.sql.SQLException: Failed to fetch schema of pay_record表 i.s.r.d.s.s.c.AbstractTableMetaCache : get table meta of the table pay_record error: Failed to fetch schema of pay_record 原因分析: springcloud项目中使用了se…

上海亚商投顾:沪指冲高回落 旅游板块全天强势

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落,创业板指跌近1%,北证50指数跌超3%。旅游、零售板块全天强势&#xf…

200. 岛屿数量(js)

示例 1: 输入:grid [["1","1","1","1","0"],["1","1","0","1","0"],["1","1","0","0","0"…

Angular 表单的validation校正学习

概念: Angular中的表单valid是指表单中的输入项是否符合预设的规则和条件。在Angular中,可以通过使用表单控件的属性和方法来判断表单的valid状态,例如使用form.valid属性来判断整个表单是否valid,或者使用formControl.valid属性来…

记自动化测试发现的一个因表空间不足引发的BUG

0 背景介绍 这是一个BS架构的项目,数据库是SQL Server,前端浏览器呈现数据,操作数据。 1 现象介绍 功能为发送消息,类似广播,相关人员在系统中都可以接收到。之前功能都正常,这两天跑自动化测试时&#x…

python类继承之__init__函数覆盖问题

目录 1.问题描述 2.代码演示 3.总结 在Python这个广受欢迎的编程语言中,类继承是一项强大而精巧的特性。通过类继承,我们可以构建出更加灵活、可重用和易维护的代码,同时实现代码的模块化和扩展性。 但是如果对于熟悉C和java的人而言&…

R语言学习 case2:人口金字塔图

step1&#xff1a;导入库 library(ggplot2) library(ggpol) library(dplyr)step2&#xff1a;读取数据 data <- readxl::read_xlsx("data_new.xlsx", sheet 1) datareadxl::read_xlsx() 是 readxl 包中的函数&#xff0c;用于读取Excel文件。 step3&#xff1…

ckman:非常好用的ClickHouse可视化集群运维工具

概述 什么是ckman ckman&#xff0c;全称是ClickHouse Management Console&#xff0c; 即ClickHouse管理平台。它是由擎创科技数据库团队主导研发的一款用来管理和监控ClickHouse集群的可视化运维工具。目前该工具已在github上开源&#xff0c;开源地址为&#xff1a;github…

全网最详细丨2024年AMC8真题及答案来了

目录 前言 真题回忆 真题解析 结尾 前言 相信大家都已经知道今年AMC8出事情了吧&#xff0c;但最重要的还是要从中学到新知识。 听说今年考生被提前12分钟强制交卷了&#xff0c;肯定因为试题泄露了。 最新回复&#xff1a;我们这边已经退费了 真题回忆 需要word文档的请…

快速幂 算法

暴力算法 我们可以采用暴力算法 #include<bits/stdc.h> using namespace std; #define ll long long int main() {ll a, b, c;cin >> a >> b >> c;ll ans 1;for (ll i 1; i < b; i) {ans * a;}ans % c;cout << ans; } 不过这样肯定会超时…

计算机网络基础概念解释

1. 什么是网络 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即以多个计算机协同⼯作来完成业务&#xff0c;于是有了网络互连。 网络互连&#xff1a;将多台计算机连接在⼀起&#xff0c;完成数据共享。 数据共享本质是网络…

Android System Service系统服务--1

因为工作中经常需要解决一些framework层的问题&#xff0c;而framework层功能一般都是system service 的代理stub&#xff0c;然后封装相关接口&#xff0c;并提供给APP层使用&#xff0c;system service则在不同的进程中运行&#xff0c;这样实现了分层&#xff0c;隔离&#…

「 网络安全常用术语解读 」杀链Kill Chain详解

1. 简介 早在2009年&#xff0c;Lockheed Martin公司就提出了杀链(Kill Chain)理论&#xff0c;现在也称之为攻击者杀链(Attacker Kill Chain)。杀链其实就是攻击者进行网络攻击时所采取的步骤。杀链模型包括7个步骤&#xff1a;1侦察 -> 2武器化 -> 3交付 -> 4利用 …

不要长期把焦点放在让你烦恼的事情上

不要长期把焦点放在让你烦恼的事情上 在快节奏的生活中&#xff0c;我们经常会遇到各种各样让我们担心的事情。这些事情可能是工作上的压力&#xff0c;家庭中的矛盾&#xff0c;或者是个人的迷茫和困惑。然而&#xff0c;长期将焦点放在这些让我们烦恼的事情上&#xff0c;不…