深度学习基础之《TensorFlow框架(18)—卷积神经网络(2)》

news2024/11/17 8:16:38

一、卷积层

1、卷积层(Convolutional Layer)介绍
卷积神经网络中每层卷积层由若干卷积单元(卷积核)组成,每个卷积单元的参数都是通过反向传播算法最佳化得到的
卷积运算的目的是特征提取,第一层卷积层可能只能提取一些低级的特征,如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征

2、卷积核(Filter)的四大要素
卷积核 - Filter - 过滤器 - 模型参数
(1)卷积核个数
(2)卷积核大小
(3)卷积核步长
(4)卷积核零填充大小
接下来我们通过计算案例讲解,假设图片是黑白图片(只有一个通道)

3、卷积如何计算-大小
卷积核我们可以理解为一个观察的人,带着若干权重和一个偏置去观察,进行特征加权运算

注:上述要加上偏置

输入的图像:5 * 5,filter是3 * 3 * 1,乘以1个通道1
步长:是1,一次移动1格
输出:3 * 3 * 1

卷积核常用的大小:1 * 1,3 * 3,5 * 5
通常卷积核大小选择这些大小,是经过研究人员实验证明比较好的效果

观察之后会得到一个运算结果,那么这个人想观察所有这张图的像素怎么办?那就需要平移:

4、卷积如何计算-步长
需要去平移卷积核观察这张图片,需要的参数就是步长

假设移动的步长为一个像素,那么最终这个人观察的结果以下图为例:
5 * 5的图片,3 * 3的卷积大小,一个步长运算得到3 * 3的大小观察结果

如果移动的步长变成2,那么结果是这样:
5 * 5的图片,3 * 3的卷积大小,2个步长运算,得到2 * 2的大小观察结果

5、卷积如何计算-卷积核个数
那么如果在某一层结构当中,不止是一个人观察,多个人(卷积核)一起去观察,那就得到多张观察结果(盲人摸象?)
不同的卷积核带的权重和偏执都不一样,即随机初始化的参数

我们已经得出输出结果的大小由大小和步长决定的,但是只有这些吗?
还有一个就是零填充。Filter观察窗口的大小和移动步长有时会导致超过图片像素宽度!

6、卷积如何计算-零填充大小
零填充就是在图片像素外围填充一圈值为0的像素

7、总结-输出大小计算公式
如果已知输入图片形状,卷积核数量,卷积核大小,以及移动步长,那么输出图片形状如何确定?

通过一个例子来理解公式:
计算案例:
(1)假设已知条件:输入图像32*32*1,50个Filter,大小为5*5,移动步长为1,零填充大小为1。请求出输出大小?
H1 = 32
W1 = 32
D1 = 1
K = 50
F = 5
S = 1
P = 1

H2 = (H1 - F + 2P) / S + 1 = (32-5+2*1)/1+1 = 30
W2 = (H1 - F + 2P) / S + 1 = (32-5+2*1)/1+1 = 30
D2 = K = 50
所以输出大小为[30, 30, 30]

(2)假设已知条件:输入图像32*32*1,50个Filter,大小为3*3,移动步长为1,未知零填充,输出大小32*32,求零填充大小?
H1 = 32
W1 = 32
D1 = 1
K = 50
F = 3
S = 1
P = ?
H2 = 32

H2 = (H1 - F + 2P) / S + 1 = (32-3+2*P)/1+1 = 32
W2 = (H1 - F + 2P) / S + 1 = (32-3+2*P)/1+1 = 32
所以零填充大小为:1 * 1

8、多通道图片如何观察
如果是一张彩色图片,那么就有三种表分别为R,G,B。原本每个需要带一个3*3或者其他大小的卷积核,现在需要带3张3*3的权重和一个偏置,总共就27个权重。最终每个人还是得出一张结果:

输入图片:7 * 7 * 3
Filter:3 * 3 * 3 + bias,有2个filter
H1 = 5
D1 = 3
K = 2
F = 3
S = 2
P = 1
H2 = (5-3+2)/2+1 = 3
W2 = 和H2一样 = 3
D2 = 2

输出:3 * 3 * 2

9、卷积网络API
tf.nn.conv2d(input, filter, strides=, padding=, name=None)
说明:
(1)计算给定4-D input和filter张量的2维卷积
(2)input:输入图像,给定的输入张量,具有[batch, height, width, channel]四阶的形状,类型为float32,64
(3)filter:指定过滤器的权重数量,[filter_height, filter_width, in_channels, out_channels]
    filter_height:filter的高
    filter_width:filter的宽
    in_channels:输入图片的通道数
    out_channels:输出图片的通道数
(4)strides:需要传一维数组,strides = [1, stride, stride, 1],步长
(5)padding:"SAME","VALID",具体解释见下面

Tensorflow的零填充方式有两种,SAME和VALID
(1)SAME:越过边缘取样,取样的面积和输入图像的像素宽度一致
    公式:ceil(H/S)
    H为输入的图片的高或者宽,S为步长
    无论过滤器的大小是多少,零填充的数量由API自动计算
(2)VALID:不越过边缘取样,取样的面积小于输入人的图像的像素宽度。不填充

在Tensorflow当中,卷积API设置"SAME"之后,如果步长为1,输出高宽与输入大小一样(重要)

二、激活函数

1、sigmoid函数
随着神经网络的发展,大家发现原有的sigmoid等激活函数并不能达到好的效果,所以采取新的激活函数

2、ReLU函数

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

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

相关文章

word页眉线如何置于文字上方

然后 敲黑板,点这里

学硕都考11408的211院校!河北工业大学计算机考研考情分析!

河北工业大学(Hebei University of Technology),简称河北工大,坐落于天津市,由河北省人民政府、天津市人民政府与中华人民共和国教育部共建, 隶属于河北省,是国家“双一流”建设高校、国家“211…

Linux磁盘高级操作

RAID RAID存储系统是一种数据存储虚拟化技术,它将多个物理磁盘驱动器组合成一个或多个逻辑单元,以提供数据冗余和/或提高性能。 1. RAID 0 无奇偶校验与冗余(磁盘容错)的条带存储(带区卷/条带卷) 由两块…

科技巨头的下一个目标:Web3与物联网融合

引言 随着技术的不断演进和创新,科技巨头们正在将目光聚焦到Web3与物联网的融合领域,这将开启一个全新的数字时代。本文将深入探讨科技巨头们在这一领域的动向,以及融合可能带来的影响和未来发展方向。 Web3与物联网的融合趋势 技术发展的趋…

【手写大跟堆详解】

文章目录 大跟堆介绍大跟堆的结构大跟堆的应用场景大跟堆的代码实现 大跟堆介绍 大根堆(Max Heap)是一种特殊的二叉树结构,它满足以下两个条件: 1.完全二叉树:大根堆是一棵完全二叉树,即除了最后一层外&am…

Web Server项目实战4-服务器编程基本框架和2种高效的事件处理模式

服务器编程基本框架 虽然服务器程序种类繁多,但其基本框架都一样,不同之处在于逻辑处理 模块功能I/O处理单元处理客户连接,读写网络数据逻辑单元业务进程或线程网络存储单元数据库、文件或缓存请求队列各单元之间的通信方式 I/O 处理单元是…

520主题趣味小游戏玩法线上互动的作用是什么

行业商家借势520气氛,往往能低成本达到预期效果,包括但不限于品牌传播、渠道引流涨粉、用户促活引导等,除了前面推荐的互动玩法外,在【雨科】平台的这几款520趣味小游戏同样值得关注。 1、爱你不止520 这是一款九宫格抽奖活动&am…

【Java面试】三、Redis篇(下)

文章目录 1、抢券场景2、Redis分布式锁3、Redisson实现分布式锁4、Redisson实现的分布式锁是可重入锁5、Redisson实现分布式锁下的主从一致性6、面试 1、抢券场景 正常思路: 代码实现: 比如优惠券数量为1。正常情况下:用户A的请求过来&a…

利用神经网络学习语言(六)——总结与常见面试问题

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 文章列表: 利用神经网络学习语言(一)——自然语言处理的基本要素利用神经网络学习语言&…

基于STM32看Cortex-M内核相关的一些底层知识

文章目录 固件起始地址存储了主栈指针和向量表内容启动文件分析程序启动流程Code,RO Data,RW Data, ZI Data启动流程Regin$$Table 固件起始地址存储了主栈指针和向量表内容 《ARM Cortex-M3与Cortex-M4权威指南》中的4.8章节复位和复位流程中有下面这段的描述: 在复…

医疗软件供应链安全治理:保障医疗服务质量和患者安全的当务之急!

如今,随着医疗数智化的不断深入,医共体网络、远程医疗网络、区域医疗网络、互联网医院等系统建设日益普及,医疗信息系统从基础应用进阶到智能医疗阶段。医疗机构对医疗软件采购、外包开发以及调用第三方开发资源的需求日益增加。 然而&#x…

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key,典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…

S-Clustr+H4vdo 僵尸网络锁屏播放锁屏插件

项目地址:https://github.com/MartinxMax/S-Clustr-Ring 视频 用法 安装H4vdo依赖 在Install目录中选择你的操作系统安装依赖Windows_H4vdo_plugin_installation 启动H4vdo服务端 $ python3 Generate.py [Device Type (Number)]>7 [] [0] Start RTMP server [1] Skip &g…

家政预约小程序05服务管理

目录 1 设计数据源2 后台管理3 后端API4 调用API总结 家政预约小程序的核心是展示家政公司提供的各项服务的能力,比如房屋维护修缮,家电维修,育婴,日常保洁等。用户在选择家政服务的时候,价格,评价是影响用…

关于抖音小程序开发代码修改了,但是真机调试代码不更新问题解决(全网第一成功解决方案,无论安卓或苹果)

各位铁铁,今天开发小程序在抖音小程序适配时,终于是又一次踩到这个恶心的坑了,现在就记录一下,方便我以后查找,也希望帮助到当前被它所坑害的你! 具体实现步骤如下: 1.到你的抖音开发平台&…

高效利用键盘上的 caps lock(大写键)实现中英切换

先看效果 在中文输入环境中,Caps Lock 键经常被忽视,占据了键盘上的黄金位置却很少派上用场。接下来,我将介绍如何将这个闲置的键合理利用,让它变得更加实用。 第一步 设置: 我以五笔为例: 1.输入法默认…

国内快速下载hugging face大模型的方法

由于众所周知的原因,从hugging face下载大模型比较困难,幸好国内有人做了镜像站,可以通过国内的镜像站进行快速下载,以下是配置方法。 我的系统是ubuntu 22,这里记录的方法只对debian/ubuntu有效。 git-lfs/INSTALLI…

精准安全运维,统信UOS服务器版V20(1070)漏洞修复指南丨年度更新

随着信息安全威胁的不断升级,操作系统的安全性已成为企业运维的关键要素。 为了确保业务运行环境的安全无忧,统信软件持续致力于技术创新和优化,并于日前重磅推出了统信UOS服务器版V20(1070)。该系统提供了高频补丁更…

将黑白图的白色部分叠加在彩色原图

彩色原图: 黑白图: 合成后: 代码: import cv2 import numpy as np# 读取原图和轮廓线条图 original_img cv2.imread(..\\IMGS\\pp.png) # 替换为原图路径 contour_img cv2.imread(..\\IMGS\\pp_edge.png, cv2.IMREAD_GRAYSCAL…

1 计算机硬件-CPU-校验码-存储系统-输入输出设备-总线结构

计算机硬件 考情分析:趋势很小,22年考过,根据趋势以后考的可能较小 基本组成:运算器,控制器,储存器,输入设备,输出设备运算器和控制器也统称为中央处理单元(CPU&#xf…