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

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

随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(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 全连接

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

相关文章:

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

随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(Convolution Neural Network,CNN)是深度学习中一项代表性的工作,CNN 是受人脑对图像的理解过程启发而提出的模型,其…...

【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总

【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总 1、配置文件:/mnt/etc/system/config/thermal-engine.conf2、获取当前SOC所有温度传感器的温度:cat /dev/thermalmgr3、查看所有 Thermal 默认配置和自定义配置:echo query config > /dev/th…...

以太网(一):PoE供电

一、定义: PoE系统包括供电端设备(PSE)和受电端设备(PD)两部分PoE(Power over Ethernet):​是一种可以在以太网中透过双绞线来传输电力与数据到设备上的技术PSE(Power S…...

骨传导耳机游泳能戴吗?骨传导游泳耳机哪个牌子好?

溽热的夏日,如果能够跳入水中畅游一番,那真的是再好不过了,既能强身健体,又能降温解暑。公共的游泳场馆人声鼎沸,像我这种“社恐”患者,如果在场馆中要待好几个小时,难免会觉得时间漫长&#xf…...

18万字应急管理局智慧矿山煤矿数字化矿山技术解决方案WORD

导读:原文《18万字应急管理局智慧矿山煤矿数字化矿山技术解决方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目 录 第一章 项目概述 1.1项目…...

【mysql】MySQL CUP过高如何排查?

文章目录 一. 问题锁定二. QPS激增会导致CPU飘高三. 慢SQL会导致CPU飘高四. 大量空闲连接会导致CPU飘高五. MySQL问题排查常用命令 一. 问题锁定 通过top命令查看服务器CPU资源使用情况,明确CPU占用率较高的是否是mysqld进程,如果是则可以明确CUP飘高的原…...

lua实现http的异步回调

想用lua实现与http服务器的通信,请求一些数据会回来,默认lua.socket.http是同步的,所以想弄一个异步的方式 测试环境 lua 5.1 同步 以下是同步的代码,其中http.request会被阻塞住的 local function send_request()local res,…...

云服务 Ubuntu 20.04 版本 使用 Nginx 配置SSL证书和nginx从HTTP跳转到HTTPS

1.云服务申请免费的SSL证书 2.从云服务SSL证书下载到本地解压上传到服务器 3.配置Nginx下的 nginx.cof 文件 4.开放安全组,内部与外部 5.测试配置与跳转是否成功 1.云服务申请免费的SSL证书 1.1.登录云平台找到SSL证书 注意:博主这里是腾讯云&#x…...

隧道代理技术解析:为批量数据采集提供强大支持

嘿!作为一名专业的爬虫程序员,我今天要和大家分享一个强大的技术,它能够为批量数据采集提供强大的支持——隧道代理技术。如果你在进行大规模数据采集任务时遇到了IP封禁和限制的问题,那么这项技术将是你的救星。废话不多说&#…...

小程序制作教程:从零开始搭建企业小程序

在如今的数字化时代,企业介绍小程序成为了企业展示与推广的重要工具。通过企业介绍小程序,企业可以向用户展示自己的品牌形象、产品服务以及企业文化等内容,进而提高用户对企业的认知度和信任度。本文将介绍如何从零开始搭建一个企业介绍小程…...

Redis-秒杀

唉 就记得当时抢冰墩墩的时候的秒杀了 我们要注意什么问题呢? 1.几百万人在这个瞬间抢冰墩墩 这个瞬间会有大量的请求 服务器要能抗的住 2.不能超卖,就那些冰墩墩 卖多了压根没有 好不容易抢到你说没货了怕不是要被冲烂 3.避免少卖 拢共就那些 你再少卖点 没屁了 4.防黄牛…...

2022年下半年信息安全工程师下午真题及答案解析

试题一 (20分) 已知某公司网络环境结构主要由三个部分组成,分别是DMZ区、内网办公区和生产区,其拓扑结构如图1-1所示。信息安全部的王工正在按照等级保护2.0的要求对部分业务系统开展安全配置。图1-1当中,网站服务器的IP地址是192.168.70.14…...

【前端|Javascript第5篇】全网最详细的JS的内置对象文章!

前言 在当今数字时代,前端技术正日益成为塑造用户体验的关键。我们在开发中需要用到很多js的内置对象的一些属性来帮助我们更快速的进行开发。或许你是刚踏入前端领域的小白,或者是希望深入了解内置对象的开发者,不论你的经验如何&#xff0c…...

Python pycparser(c文件解析)模块使用教程

文章目录 安装 pycparser 模块模块开发者网址获取抽象语法树1. 需要导入的模块2. 获取 不关注预处理相关 c语言文件的抽象语法树ast3. 获取 预处理后的c语言文件的抽象语法树ast 语法树组成1. 数据类型定义 Typedef2. 类型声明 TypeDecl3. 标识符类型 IdentifierType4. 变量声明…...

解决IDEA tomcat控制台只有server日志

解决IDEA tomcat控制台只有server日志 确认tomcatxxx/conf/logging.properties文件是否存在,存在就会有。前提是在run configuration配置了打印多个日志...

Java版本+企业电子招投标系统源代码+支持二开+Spring cloud tbms

​ 项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以…...

FinalShell SSH工具安装教程及编辑窗口修改背景颜色,自定义背景图片,修改字体,修改快捷键(详细图文教程)

FinalShell 在 Windows 上提供了一个方便、安全、功能完备的远程管理工具。它的中文支持和自定义功能让其适合国内 Linux 系统管理者使用。与 Xshell 等软件相比,FinalShell 更注重功能实用性。 目录 FinalShellFinalShell的安装教程FinalShell 的一些主要功能和特点…...

uni-app中监听网络状态,并在嵌入webView页面的组件中添加网络监测

uni-app中监听网络状态,并在嵌入webView页面的组件中添加网络监测 uni-app中监听网络状态 下载插件 打开网络异常组件页面,点击"下载插件并导入HBuilderX"按钮,打开HBuilderX软件后,选择需要导入插件的项目&#xff…...

TP5前后端分离RBAC权限管理API

TP5前后端分离RBAC权限管理API 1.创建配置项目2.管理员功能2.1登录验证2.2.返回分页数据2.3增删改功能 3.角色功能3.权限管理4.给管理员分配角色5.给角色分配权限6.导航菜单功能 坑神的博客文章可以参考,还可以和他交流请教,坑神人很nice! 1.…...

p-级数的上界(Upper bound of p-series)

积分判别法-The Integral Test https://math.stackexchange.com/questions/2858067/upper-bound-of-p-series https://courses.lumenlearning.com/calculus2/chapter/the-p-series-and-estimating-series-value/ 两个重要级数(p级数和几何级数) ht…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​:下载安装 ​​De…...