当前位置: 首页 > news >正文

cnn突破七(四层bpnet网络公式与卷积核bpnet公式相关)

我们要有一个概念,就是卷积核就是我们的w1,w12,w2

那么我们的5*5卷积核怎么表达,当他在14*14的图像中流动时,对应的像素也在变化

这个和我们的上面w1,w12,w2不同,因为这几个都是全连接,比如,w1【0,0】对应图像第一像素和hi的第一个。

假定我们给5*5卷积核起名w1cnn,图像第一像素和hi的第一个对应w1cnn【0】,那么5*5卷积核走到第二个像素又用到了w1cnn【0】,w1cnn应该有25个,即w1cnn【0-24】

我们backward时,求\frac{\partial E}{\partial w1cnn[0]}应该对应哪个像素?

我们先用这一个5*5卷积核,捋一下forward:

14*14(w1cnn【25】)-》10*10(2*2池化,取最大)-》5*5-》80-》10,期望d【10】

14*14图像x第一个像素即x【0】所在位置5*5方阵像素与5*5的卷积核(w1cnn【25】)生成了10*10图像temphicnn的第一个像素。

我们用公式描述一下:

temphicnn【0】+=x[i=j=0,5*5方阵像素]*w1cnn[0-24],

temphicnn【1】+=x[i=1,j=0,5*5方阵像素]*w1cnn[0-24],

。。。。。。。。

这样重复下去,我们就有100个temphicnn【0-99】图像,来自14*14图像x每一个像素卷积。

然后temphicnn【0-99】图像2*2池化,取最大,变成25个像素图像hicnn【0-24】。

这里要注意的是,我们要记录下这25个最大值图像,在10*10图像中的位置,以及在14*14图像中开始卷积的位置,我找到一个公式:如果在25个最大值图像中,i=3;j=4,池化时记录最大位置在(1,0)

那么在10*10中位置(j*2+0)*10+i*2+1

那么在14*14中开始卷积的位置(j*2+0)*14+i*2+1

这有什么用,都是为backward时方便,找哪一个x【?】值

当我们图像变成25hicnn,使用sigmod函数,得到25个hocnn,接下来就变成三层bpnet,即25-》80-》10

到了这里,我们看的就很明显:一个卷积核的cnn很像我们的四层bpnet神经网络。

四层网络backward时,公式:

 \frac{\partial E}{\partial w1[i,j]}=\sum_{k=0}^{9}\frac{\partial E}{\partial yo[k]}\frac{\partial yo[k]}{\partial yi[k]}\frac{\partial yi[k]]}{\partial h2o[m]}\frac{\partial h2o[m]}{\partial h2i[m]}\frac{\partial h2i[m]}{\partial ho[j]}\frac{\partial ho[j]}{\partial hi[j]}\frac{\partial hi[j]}{\partial w1[i,j]}

=\sum_{k=0}^{9}(yo[k]-d[k])*ds(yo[k])*w2【m,k】*ds(h2o[m])*w12【j,m】*ds(ho[j])*x[i]

我们这个卷积核公式怎么写?

 \frac{\partial E}{\partial w1cnn[i]}=\sum_{k=0}^{9}\frac{\partial E}{\partial yo[k]}\frac{\partial yo[k]}{\partial yi[k]}\frac{\partial yi[k]]}{\partial h2o[m]}\frac{\partial h2o[m]}{\partial h2i[m]}\frac{\partial h2i[m]}{\partial hocnn[j]}\frac{\partial hocnn[m]}{\partial hicnn[j]}\frac{\partial hicnn[j]}{\partial w1cnn[i]}

=\sum_{k=0}^{9}(yo[k]-d[k])*ds(yo[k])*w2【m,k】*ds(h2o[m])*w12【j,m】*ds(hocnn[j])*x[i->?]

从上面分析,我们从j就能推出i,通过公式(h*2+0)*14+w*2+1,所以x【?】中这个问号就能定下来!

当你习惯了全连接,突然变成这一种,一般情况思路转不过来!

法宝就一个,仔细的分析从前到后forward,从后到前backward,当你熟悉起来,就ok了!

公式推导,到了,就是,结果很明显,想是想不出来的!

相关文章:

cnn突破七(四层bpnet网络公式与卷积核bpnet公式相关)

我们要有一个概念,就是卷积核就是我们的w1,w12,w2 那么我们的5*5卷积核怎么表达,当他在14*14的图像中流动时,对应的像素也在变化 这个和我们的上面w1,w12,w2不同,因为这几个都是全…...

PHP中的PEAR是什么

PHP中的PEAR是PHP Extension and Application Repository的缩写,即PHP扩展与应用库。它是一个PHP扩展及应用的代码仓库,提供了许多常用的PHP库和工具,涵盖了页面呈现、数据库访问、文件操作、数据结构、缓存操作、网络协议、WebService等许多…...

(C语言贪吃蛇)4.贪吃蛇地图优化及算法说明

上节代码示例&#xff1a; #include <curses.h>void initNcurse() {initscr();keypad(stdscr,1); }void gamePic() {int hang;int lie;for(hang 0;hang < 20;hang ){if(hang 0){for(lie 0;lie < 20;lie ){printw("--");}printw("\n");for(…...

国外电商系统开发-运维系统拓扑布局

点击列表中设备字段&#xff0c;然后定位到【拓扑布局】中&#xff0c;可以看到拓扑发生了变化 再回头&#xff0c;您再次添加一个服务器到系统中&#xff0c;并且选择该服务器的连接节点为您刚才创建的“SDN路由器”&#xff0c;保存后&#xff0c;您可以看到这个服务器连接着…...

使用winsock和ip相关指令重置Window网络配置

netsh winsock reset 和 netsh int ip reset 是 Windows 中用于修复网络问题的命令。它们分别用于重置 Winsock 和 TCP/IP 网络配置&#xff0c;以解决可能由于配置错误或网络堆栈损坏而导致的网络连接问题。 1. netsh winsock reset 1.1 作用 重置 Winsock 目录。Winsock 是…...

用AI做电子萌宠,快速涨粉变现

今天给大家分享一个很热门的小副业—AI宠物视频 项目介绍 前一阵刷到一个萌宠账号&#xff0c;爆款率可真高&#xff0c;涨粉可真快呀。 28篇笔记涨粉3.2万&#xff0c;点赞更是达到了十几万。其中有6篇点赞上万。 至于究竟是不是AI其实没那么重要&#xff0c;重要的是&…...

如何在 Axios 中封装事件中心EventEmitter

在 Axios 中封装一个事件中心 EventEmitter 允许你在请求的不同阶段&#xff08;如请求开始、请求成功、请求失败等&#xff09;触发事件。这可以通过创建一个自定义的 Axios 实例&#xff0c;并结合 Node.js 的 events 模块来实现。以下是一个详细的步骤指南和示例代码&#x…...

计算机网络——ftp

在网络通信中&#xff0c;控制连接和数据连接是两种不同类型的连接&#xff0c;它们各自具有特定的功能和用途。 一、控制连接 定义与功能&#xff1a; 控制连接主要用于在通信双方之间传输控制信息&#xff0c;以建立、维护和终止数据连接。它负责协调和管理数据传输的过程&am…...

Redis:set类型

Redis&#xff1a;set类型 set命令SADDSMEMBERSSISMEMBERSCARDSPOPSRANDMEMBERSMOVESREM 集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码intsethashtable 当把一些关联的数据放到一起&#xff0c;就构成一个集合。在Redis中&#xff0c;使用set类型维护…...

九大排序之插入排序

1.前言 插入排序是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。实际中我们玩扑克牌时&#xff0c;就用了插入排序的思想。 本章重点&#xff1a;主要着重的介绍两种插入排序…...

DNABERT: 一个基于 Transformer 双向编码器表征的预训练 DNA 语言模型

本文结合 DNABERT 的原文&#xff0c;主要介绍了&#xff1a; Overview of DNABERT 开发 DNABERT 的背景 DNABERT 的 tokenization DNABERT 的模型架构 DNABERT 的预训练 基于微调 DNABERT 的应用 1. Overview of DNABERT 我们之前介绍了 BERT&#xff0c;它是一个基于 Transfo…...

基于Hive和Hadoop的电商消费分析系统

本项目是一个基于大数据技术的电商消费分析系统&#xff0c;旨在为用户提供全面的电商消费信息和深入的消费行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 S…...

记一次炉石传说记牌器 Crash 排查经历

大家好这里是 Geek技术前线。最近在打炉石过程中遇到了HSTracker记牌器的一个闪退问题&#xff0c;尝试性排查了下原因。这里简单记录一下 最近炉石国服回归&#xff1b;由于设备限制&#xff0c;我基本只会在 Mac 上打炉石。并且由于主要打竞技场&#xff0c;所以记牌器是必不…...

精益驱动的敏捷开发

1. 什么是精益&#xff1f;精益能给软件开发带来什么&#xff1f; 精益是一种起源于制造业的管理哲学&#xff0c;尤其是从丰田的生产体系中发展而来。它的核心目标是通过最小化浪费、提高效率和优化流程来实现高效的生产。精益的核心原则包括&#xff1a; 消除浪费&#xff…...

SolidWorks机器转ROS2 URDF

文章目录 开发环境SolidWords插件使用生成urdf文件之后的处理CMakeLists文件修改package.xml变更Launch更改运行 开发环境 Linux系统&#xff1a;Ubuntu 22.04 Ros2版本&#xff1a;humble Solidwords版本&#xff1a;2023 &#xff08;2019以上版本应该都是可以的&#xff09…...

(Linux驱动学习 - 6).Linux中断

一. Linux 中断 API 函数 1.中断号 每个中断都有一个中断号&#xff0c;通过中断号即可区分不同的中断&#xff0c;有的资料也把中断号叫做中 断线。在 Linux 内核中使用一个 int 变量表示中断号。 2.申请中断 - request_irq 函数原型&#xff1a; int request_irq(unsigne…...

SpringBoot驱动的明星周边产品电商解决方案

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…...

C++、Ruby和JavaScript

C C最初被称为带类的C, 兼容C的语法&#xff0c;此既是C得以流行的前提&#xff0c;也是C某些语法被捆绑的根源。C的来源于C语言的递增运算符&#xff0c;代表增加&#xff0c;意义为扩展。 C的历史 C类的设计思想来源于Simula. Simula为模拟的意思&#xff0c;被称为最早的面向…...

32单片机 低功耗模式

以下是一个基于STM32的低功耗模式示例代码&#xff0c;展示如何将STM32微控制器置于低功耗模式&#xff0c;并在特定条件下唤醒它。这个示例使用的是STM32 HAL库。 ### 示例代码&#xff1a;进入睡眠模式并使用外部中断唤醒 c #include "stm32f4xx_hal.h" // 函数声明…...

501、二叉搜索树中的众数

1、题目描述 . - 力扣&#xff08;LeetCode&#xff09; 要求&#xff1a;给一个包含重复值的BST&#xff0c;找出并返回BST中的众数(出现频次最高的元素)。 注&#xff1a;如果树中有不止一个众数可以按任意顺序返回&#xff0c;即如果有多个众数多个都要返回。 ps&#xff1…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...