【卷积神经网络】卷积,池化,全连接

随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(Convolution Neural Network,CNN)是深度学习中一项代表性的工作,CNN 是受人脑对图像的理解过程启发而提出的模型,其雏形是 1998 年 LeCun 提出的 LeNet-5 模型。如今,卷积神经网络已被广泛应用于计算机视觉领域。本文主要介绍卷积神经网络中几个基础的运算,包括卷积、池化与全连接。

目录

1 卷积

2 池化

3 全连接


1 卷积


        卷积神经网络中的卷积运算,通常指应用于处理图像的二维卷积。卷积运算是卷积神经网络(Convolution Neural Network,CNN)中不可缺少的部分,使得神经网络具备处理图像的能力。

        在介绍卷积运算之前,需要了解卷积运算涉及的几个必要的概念。

(1)卷积核。卷积核通常是一个 3 x 3,或 5 x 5 大小的矩阵,矩阵的元素表示邻近像素值的权重。在卷积运算时,卷积核与图像中某个小区域(也叫局部感受野)的像素值进行加权平均运算。


(2)填充。填充是指处理输入特征图边界的方式。为了不丢失边界信息,可以对输入图像进行边界填充,再执行卷积操作。


(3)步长。步长指卷积核在输入图像上移动的像素数。步长为 1,则每次移动一个像素;步长为 2,则每次移动两个像素;以此类推。


        对于输入图像 P,使用 3 x 3 卷积核进行卷积运算,运算步骤如下:
(1)用 0 对图像 P 的边界进行填充,得到扩充图像 P_padding;

 
(2)按照从上到下、从左到右的顺序,在 P_padding 上移动卷积核,计算像素值的加权平均值,并按照移动的顺序排列,得到输出特征图。

        TensorFlow 中使用 tf.nn.conv2d 函数进行卷积运算。

tf.nn.conv2d 用法

tf.nn.conv2d(input,filter,strides,padding,data_format='NHWC',dilations=None,name=None
)

tf.nn.conv2d 示例

import numpy as np
import tensorflow as tfx_in = np.array([[[[1], [2], [1]], [[1], [2], [1]],[[1], [2], [1]],
]])kernel_in = np.ones((1,9)).reshape(3, 3, 1, 1)x = tf.constant(x_in, dtype=tf.float32)
kernel = tf.constant(kernel_in, dtype=tf.float32)x_feature = tf.nn.conv2d(x, kernel, strides=[1,1,1,1], padding='SAME')
x_feature.numpy().reshape(3, 3)

Spyder 运行结果

 

        一个卷积核只能生成一张特征图像,在实际应用中,为了增强卷积层的表示能力,会使用多个不同的卷积核进行卷积运算,得到若干特征图像。

2 池化

        “池化” 一词来源于其英文 pooling,意思是 “使 ...... 集中”。在卷积神经网络中,池化是降低特征图像分辨率的运算,在神经网络中起到二次提取特征的作用。

        常用的池化运算有:

(1)最大池化:对局部感受野中的像素值求最大值,作为输出特征图像对应位置的像素值;

(2)平均池化:对局部感受野中的像素值求平均值,作为输出特征图像对应位置的像素值。

下图是对输入图像进行 2 x 2 最大池化的输出结果。

        TensorFlow 常用的池化运算如下:

(1)tf.nn.max_pool2d  最大池化

(2)tf.nn.avg_pool2d   平均池化

tf.nn.max_pool2d 用法

tf.nn.max_pool2d(input,ksize,strides,padding,data_format='NHWC',name=None
)

tf.nn.max_pool2d 示例

import tensorflow as tfx = tf.constant([[[[4], [6], [1], [3] ], [[0], [9], [7], [13]], [[4], [3], [7], [10]], [[1], [0], [3], [8] ],
]])result = tf.nn.max_pool2d(x, ksize=(2,2), strides=(2,2), padding='SAME')
result.numpy().reshape(2, 2)

Spyder 运行结果

 

3 全连接

        与多层感知机类似,全连接层中的每个神经元与前一网络层中的所有神经元相连。在卷积神经网络中,多个卷积层和池化层后连接着一个或者多个全连接层,全连接运算负责融合卷积层或池化层的局部信息。

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

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

相关文章

从零基础到精通IT:探索高效学习路径与成功案例

文章目录 导语:第一步:明确学习目标与方向选择适合的IT方向设定具体的学习目标咨询和调研 第二步:系统学习基础知识选择适合的编程语言学习数据结构和算法掌握操作系统和计算机网络基础 第三步:实践项目锻炼技能选择合适的项目编写…

-Webkit-Box 在 Safari 中出现的兼容性问题

一、问题背景: UI要求要实现这样的效果,使用 display:-webket-box在chrome浏览器下完美解决 但是马上啪啪打脸,在safari浏览器下显示空白 ,不能不说浏览器之间的兼容性简直就是天坑 二、解决办法 通过浏览器调试发现原本float的…

探索性测试及基本用例

1 测试决策5要素 测试目标:所有的重要任务都完成了,而剩下没做的事情是比较次要的,我们做到这一点就可以尽早尽可能地降低发布风险。 测试方法:测试是一个不断抉择的过程,测试人员必须理解运行测试用例时和分析现有信…

Java算法_ 二叉树的最大深度(LeetCode_Hot100)

题目描述:给定一个二叉树 ,返回其最大深度。root 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 获得更多?算法思路:代码文档,算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/…

去年校招面试中Hadoop高频都问些什么?秋招在即,快收藏!

1 总述 校招是远不同于社招的,企业对学生的要求更多的是一些概念性的东西,即所谓的八股文。但有些场景类的题目也是会涉及到,尤其是在一些中大厂的面试题中。场景题固然是能不能中大厂中必不可少的部分,但是基础牢不牢才是能不能…

idea如何建立web项目???

我们需要用到tomcat,没有下在着小伙伴,可以借鉴这篇博客: 如何正确下载tomcat???_明天更新的博客-CSDN博客 1.建立普通的Java项目。 2.简单编写index.jsp文件 3.添加tomcat 4.运行服务器 5.构建Servlet 最后…

如何优雅做好项目管理?

导言 项目本身无好坏之分,项目管理有做好与做坏之别。在互联网大厂的体制下,想要做坏一个项目很难(可以通过换人、追加资源等方式消除风险),想要做好一个项目不容易,需要团队及PM付出大量心血和精力。在这…

【数据结构】树和二叉树

一、树的概念及结构 1、树的概念 树 是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…

基于C#的消息处理的应用程序 - 开源研究系列文章

今天讲讲基于C#里的基于消息处理的应用程序的一个例子。 我们知道,Windows操作系统的程序是基于消息处理的。也就是说,程序接收到消息代码定义,然后根据消息代码定义去处理对应的操作。前面有一个博文例子( C#程序的启动显示方案(无窗口进程发…

HTTP响应状态码大全:从100到511,全面解析HTTP请求的各种情况

文章目录 前言一、认识响应状态码1. 什么是HTTP响应状态码2. Http响应状态码的作用3. 优化和调试HTTP请求的建议 二、1xx 信息响应1. 认识http信息响应2. 常见的信息响应状态码 三、2xx 成功响应1. 认识HTTP成功响应2. 常见的成功响应状态码 四、3xx 重定向1. 认识http重定向2.…

mysql从传统模式切到GTID模式后启动主从,主从异常报错1236

一 前言 MySQL 的主从复制作为一项高可用特性,用于将主库的数据同步到从库,在维护主从复制数据库集群的时候,作为专职的MySQL DBA,笔者相信大多数人都会遇到“Got fatal error 1236 from master when reading data from binary …

日常BUG——SpringBoot关于父子工程依赖问题

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 在父子工程A和B中。A依赖于B,但是A中却无法引入B中的依赖,具体出现的…

全自动模拟量采集软件框架详解

Monitor.Analog采用一种MVVM架构模式,用于将用户界面(View)与业务逻辑(Model)进行分离,并通过ViewModel来进行连接和交互。以下是MVVM框架的介绍: 1. Model(模型)&#x…

【CTF-web】buuctf-[极客大挑战 2019]EasySQL 1(sql注入)

题目链接 根据题目判断出可能需要sql注入,看源码可知数据是通过GET的方式传输的,即放在url的username和password两个参数中。 只要将username输入为1 or 11#,password可以为任何值,即可顺利登录。 需要注意的是url中的井号表示…

【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像

关于 Cloud Studio Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用Cloud Studio 时无需安装,随时随地打开浏览器就能在线编程。 Cloud Studio 作为在线IDE,包含代码高亮、自动补全、Gi…

8.深浅拷贝和异常处理

开发中我们经常需要复制一个对象。如果直接用赋值会有下面问题: 8.1 浅拷贝 首先浅拷贝和深拷贝只针对引用类型 浅拷贝:拷贝的是地址 常见方法: 1.拷贝对象:Object.assgin() / 展开运算符{…obj} 拷贝对象 2.拷贝数组:Array.prototype.con…

1 树 1.1 树的基本概念 1.1.1 什么是树? 树是n(n > 0)个结点的有限集。当n 0时,称为空树。在任意一颗非空树上应该满足: 有且仅有一个特定的称为根的结点当n>1时,其余结点可分为m(m>0)个互不相…

微信支付报非法的密钥大小: Caused by: java.security.InvalidKeyException: Illegal key size

在Linux环境中出现 java.security.InvalidKeyException: Illegal key size 异常通常是由于Java默认的加密限制引起的。Java默认的加密强度限制了加密算法密钥的最大长度 方式一 1. 找到该目录 /usr/java/jdk1.8.0_121/jre/lib/security 2. 替换local_policy.jar 和 US_export_…

单因素多变量方差分析

多变量方差分析:是对多个独立变量是否受单个或多个因素影响而进行的方差分析。它不仅能够分析多个因素对观测变量的独立影响,更能够分析多个因素的交互作用能否对观测变量产生影响。本章以单因素多变量分析为例,即一个分组变量和多个欲分析的…

怎么开通Tik Tok海外娱乐公会呢?

TikTok作为全球知名的社交媒体平台,吸引了数亿用户的关注和参与。许多公司和个人渴望通过开通TikTok直播公会进入这一领域,以展示自己的创造力和吸引更多粉丝。然而,成为TikTok直播公会并非易事,需要满足一定的门槛和申请找cmxyci…