ResNet模型

news2024/11/26 2:03:55

使用pytoch实现

1.卷积神经网络

 conv2d的参数很简单

conv2d(input_channels, output_channels,kernel_size, stride, padding)

参数分别是输入通道,输出通道,卷积核大小,移动步长,填充数量。

输入通道是特征图的深度,输出通道是输出特征图的深度,卷积核大小一般取值1,3,5,7;

移动步长就是卷积核在特征图上每次移动的长度,取值不一样就会导致特征图的大小不一样,比如取值为2,则特征图会变得只有原图的一半大小。

如果想要特征图输出保持原本的大小,则需要在stride=1的前提下,padding = 0,建议padding的取值等于padding = stride/2向上取整。

2.残缺网络

resnet是一系列残缺网络结合起来的,其架构如图所示,

class ResLayer(nn.Module):
    def __init__(self,inputChannels, outputChannels, kernelSize, strides):
        super().__init__()
        paddings = int(kernelSize/2)
        self.convKernel_1 = nn.Conv2d(in_channels= inputChannels,out_channels=outputChannels,
                                      kernel_size=kernelSize, stride=1, padding=paddings)
        self.convKernel_2 = nn.Conv2d(in_channels= outputChannels,
                                      out_channels=outputChannels, kernel_size=kernelSize, stride=strides, padding=paddings)
        self.bn = nn.BatchNorm2d(outputChannels)
        self.activation = nn.ReLU()
        self.conv = nn.Conv2d(in_channels= inputChannels, out_channels=outputChannels,
                              kernel_size=1, stride=strides, padding=0)
        
    def forward(self, inputs):
        x = self.convKernel_1(inputs)
        x = self.bn(x)
        x = self.activation(x)
        x = self.convKernel_2(x)
        x = self.bn(x)
        x = self.activation(x)
        X = self.conv(inputs)
        x = x + X
        return x

 这个残差网络第一层的stride=1,第二层的stride=2,因此到输出时,特征图为原来的一半,所有当输出x与输入的特征图X相加时,旁边有一个卷积核大小为1*1的卷积层,stride=2,padding=0,到输出的时候才能匹配好维度。

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

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

相关文章

Android上的AES加密

基础算法说明 https://www.youtube.com/watch?vlnKPoWZnNNM 虽然这个视频讲的非常详细,但是涉及到具体底层算法,大致流程 1. 将数据转成HEX或者byte array 2.将数据分层一块块等大小的数据 3.将数据和key 进行一次混合,加密之后的输出&…

(vue)el-tabs标签页展示el-table动态表头表格

&#xff08;vue&#xff09;el-tabs标签页展示el-table动态表头表格 效果: 代码 <el-tabs v-if"showStatistics" type"border-card"><el-tab-panev-for"(item, index) in statisticsTable":key"index":label"item.pr…

C++游戏开发指南(新改)

目录 1. 引言 2. C的基础知识 2.1 面向对象编程与游戏开发 2.2 指针与内存管理 2.3 C和其他游戏开发语言的比较 3. 游戏引擎的选择 3.1 Unreal Engine 3.2 Unity 3.3 游戏引擎对比表 4. 游戏架构设计 4.1 ECS架构 4.2 游戏循环 5. C中的图形编程基础 5.1 DirectX…

Panasonic Programming Contest 2024(AtCoder Beginner Contest 375)题解

A - Seats 思路&#xff1a;从前往后扫&#xff0c;判断有多少个.的左右各有一个# #include<bits/stdc.h> using namespace std; #define int long longint n; string s;signed main() {cin>>n;cin>>s;int cnt0;if(s.size()<3){cout<<0<<&quo…

python中双引号和单引号的区别是什么

python3中的单引号‘’和双引号“”的作用一样。 3个单引号的作用&#xff1a; 1、表示注释 #3个单引号表示注释多行gf_of_archerzon "Wang" print("archerzon的女盆友是",gf_of_archerzon) print("archerzon的女盆友是%s"%gf_of_archerzon)2…

PolarCTF靶场[web]file、ezphp WP

[WEB]file 知识点&#xff1a;文件上传漏洞 工具&#xff1a;Burp Suite、dirsearch 方法一&#xff1a; 根据页面提示&#xff0c;先用dirsearch工具扫一扫 访问/upload.php&#xff0c;发现一个上传区 在访问/uploaded/,再点击Parent Directory&#xff0c;发现链接到首页…

NVIDIA GPGPU的通信架构解析

NVIDIA GPGPU- 通信架构 写在前面 在本部分&#xff0c;我们将深入探讨NVLink、NCCL、NVSwitch和GPGPU之间的紧密联系。重点关注通信系统及其与计算的耦合性&#xff0c;以揭示Nvlink & NVSwitch System在支持NVIDIA GPGPU大规模计算和超大算力方面的重要作用。为了更好地…

新生入门季 | 学习生物信息分析,如何解决个人电脑算力不足的问题?

随着生物信息学在科研和教育中的快速普及&#xff0c;越来越多的新生开始接触基因组测序、RNA分析等复杂计算任务。然而&#xff0c;在面对这些大规模数据时&#xff0c;个人电脑的算力往往显得捉襟见肘。你是否也在为自己的笔记本性能不足而苦恼&#xff1f; 这篇文章将为你提…

【读书笔记-《30天自制操作系统》-27】Day28

本篇的内容不少&#xff0c;主要围绕着文件操作与文字显示展开。 1. alloca函数 在开发文件操作与文字显示之前&#xff0c;需要先做一些准备&#xff0c;引入alloca函数。首先看下面的代码&#xff1a; #include <stdio.h> #include "apilib.h"#define MA…

美畅物联丨剖析 GB/T 28181 与 GB 35114:视频汇聚领域的关键协议

我们在使用畅联云平台进行视频汇聚时&#xff0c;经常会用的GB/T 28181协议&#xff0c;前面我们写了关于GB/T 28181的相关介绍&#xff0c;​ 详见《畅联云平台&#xff5c;关于GB28181你了解多少&#xff1f;》。 ​最近也有朋友向我们咨询GB 35114协议与GB/T 28181有什么不同…

基于STM32的智能运输机器人设计

引言 本项目设计了一个基于STM32的智能运输机器人&#xff0c;能够自动识别路径、避开障碍物&#xff0c;并根据用户的指令将物品运输到指定地点。该机器人集成了超声波传感器、红外传感器、无线通信模块等&#xff0c;通过STM32对电机的控制&#xff0c;实现平稳、智能的运输…

【深度学习】RNN的简单实现

目录 1.RNNCell 2.RNN 3.RNN_Embedding 1.RNNCell import torchinput_size 4 hidden_size 4 batch_size 1idx2char [e, h, l, o] x_data [1, 0, 2, 2, 3] # 输入&#xff1a;hello y_data [3, 1, 2, 3, 2] # 期待&#xff1a;ohlol# 独热向量 one_hot_lookup [[1, …

滑雪——记忆化搜索

题目 代码 //#pragma GCC optimize(3)#include <bits/stdc.h> const int N 310; using namespace std; int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1}; int ans; int g[N][N]; int r, c; int f[N][N]; int dfs(int x, int y) {if(~f[x][y]) return f[x][y];f[x][y] …

TikTok直播带货话术分享,轻松实现销量翻倍

随着TikTok直播带货的不断壮大&#xff0c;越来越多的国内用户开始尝试使用英语进行直播带货。这不仅能够吸引国际观众&#xff0c;还能够扩大市场和提升品牌影响力。 TikTok直播通用带货话术 1. 开场白 开场时&#xff0c;主播可以用热情的语言吸引观众的注意力&#xff1a;…

闭着眼学机器学习——支持向量机分类

引言&#xff1a; 在正文开始之前&#xff0c;首先给大家介绍一个不错的人工智能学习教程&#xff1a;https://www.captainbed.cn/bbs。其中包含了机器学习、深度学习、强化学习等系列教程&#xff0c;感兴趣的读者可以自行查阅。 1. 算法介绍 支持向量机(Support Vector Mach…

AI 能否替代程序员?且听我来一唠!

关于 AI 替代程序员这事儿&#xff0c;咱得仔细唠唠。随着 AI 技术的飞速发展&#xff0c;越来越多人担心程序员会被 AI 取代。程序员会不会失业呢&#xff1f;答案是&#xff1a;没那么简单&#xff01; 首先&#xff0c;AI 确实已经可以干很多程序员的活儿了&#xff0c;比如…

如何构建高效的公路工程资料管理系统?

本文介绍了构建高效的公路工程资料管理系统的方法&#xff0c;涵盖了系统需求分析、功能设计、开发平台选择、开发过程、系统上线与培训、持续改进与维护等关键环节。通过合理规划和科学管理&#xff0c;可以确保系统满足用户需求&#xff0c;提高工作效率&#xff0c;保障公路…

基于Java的超级玛丽游戏的设计与实现(论文+源码)-kaic

摘 要 “超级玛丽”游戏是是任天堂情报开发本部开发的Family Computer横版卷轴动作游戏&#xff0c;它因操作简单、娱乐性强而广受欢迎。Java 的优势在于网络编程与多线程&#xff0c;但其作为一门全场景语言&#xff0c;依然提供了强大的GUI开发API。本论文利用Java的GUI界…

某普SSLVPN 任意文件读取

0x01 产品描述&#xff1a; ‌ 迪普科技的VPN产品是一款面向广域互联应用场景的专业安全网关产品&#xff0c;集成了IPSec、SSL、L2TP、GRE等多种VPN技术&#xff0c;支持国密算法&#xff0c;实现分支机构、移动办公人员的统一安全接入&#xff0c;提供内部业务跨互联网的…

公开课 | 2024最新清华大模型公开课 第4课 大模型学习方法

本文由readlecture.cn转录总结。ReadLecture专注于音、视频转录与总结&#xff0c;2小时视频&#xff0c;5分钟阅读&#xff0c;加速内容学习与传播。 大纲 引言 介绍大模型的训练方法 强调大模型在多领域的应用 大模型的训练阶段 预训练过程 Tokenization的重要性 预训练模…