卷积神经网络(CNN)基础

目录

卷积神经网络介绍

卷积神经网络原理

卷积层:通过在原始图片上平移来提取特征

激活层:增加非线性分割能力

池化层polling(下采样层):减少学习参数,去掉不重要的样本,降低网络的复杂度


卷积神经网络介绍

卷积神经网络与传统多层神经网络对比

传统多层神经网络只是输入层、隐藏层、输出层,其中隐藏层的层数根据需要而定,没有明确理论推导说明到底多少层合适

卷积神经网络,在原来多层的基础上加入更加有效的特征学习部分,具体就是在全连接层之前加上卷积层和池化层。

卷积神经网络原理

结构:卷积层  激活层  池化层  全连接层

卷积层:通过在原始图片上平移来提取特征

1、卷积神经网络中每层卷积层由若干卷积单元(卷积核)组成,每个卷积单元的参数都是通过反向

传播算法最佳化得到的。卷积运算的目的是特征提取,第一层卷积层可能只能提取一些低级的特征

如边缘、线条和角等层级,更多层的网络能从低级特征中选代提取更复杂的特征。

2、 卷积核

卷积核 - filter -过滤器 -模型参数

卷积如何计算?带着若干权重和偏置,进行特征加权运算            

卷积核常用大小:1*1  3*3  5*5

                个数:多个卷积核进行卷积,得到多个结果  不同卷积核带的权重和偏置不一样

                 步长:每次平移步长

                 零填充大小:在图片像素外围填充一圈值为0的像素(根据需求定大小)

输出大小计算:

例:输出图像32*32*1,50个Filter,大小5*5,移动步长1,零填充大小1,求出输出大小?

H1 = 32      D1 = 1      K = 50    F = 5   S = 1   P = 1

H2 = (32-5+2) / 1 + 1 = 30

D2 = 50

输出为(30,30,50)

3、卷积网络API

tf.nn.conv2d(input, filter, strides=, padding=, name=None)     

               计算给定4-D input和filter张量的2维卷积    

               input:输入图像,形状具有[batch,heigth,width,channel],类型为float32,64
       
              filter:指定过滤器的权重数量,[filter_height,filter_width,in_channels,out_channels]

             strides:strides=[1,stride,stride,1],步长

             padding:“SAME”,“VALID”
           
              SAME(使用更多):越过边缘取样,取样的面积和输入图像的像素宽度一致。

              VALID:不越过边缘取样,取样的面积小于输入人的图像的像素宽度。不填充

不能保证每次都完全在取的范围内,增加零填充就不会存在超出边缘

激活层:增加非线性分割能力

之前使用的sigmold计算量大,反向传播可能会出现梯度消失

1、ReLU

ReLU = max(0,x)  

         计算速度非常快

         解决了梯度消失

         图像没有负的像素值

2、激活函数API

tf.nn.relu(feature,name = None)

            ferture:卷积后加上偏置的结果

            return:结果

池化层polling(下采样层):减少学习参数,去掉不重要的样本,降低网络的复杂度

   max_polling:取池化窗口的最大值

   avg_polling:取池化窗口的平均值

  池化层计算与卷积层一样

池化层API

tf.nn.max_pool(value, ksize=, strides=, padding=,name=None)

             输入上执行最大池数
         
             value: 4-D Tensor形状batch, height, width, channels]

              channel:并不是原始图片的通道数,而是多少filter观察

               ksize:池化窗口大小,[1,ksize,ksize,1]

               strides:步长大小,[1,strides,stride,1]

               padding:“SAME”,“VALID”,使用的填充算法的类型,默认使用“SAME”

使用max_polling进行池化

           

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

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

相关文章

java多线程-并发和并行

进程 并发 进程中的线程是由CPU进行调度的,但是CPU能够处理的进程数量有限为了保证所有的线程都在运行,CPU会快速切换,给外界的感觉就是所有的线程都在运行,这就是并发。 并行

钟薛高创始人称卖红薯也把债还上:网友,您可千万别……

网红雪糕品牌钟薛高,是真的网红属性强到让所有消费品牌羡慕。 纵使跌落神坛、纵使站在「破产」边缘,依然话题感满满,隔段时间,总能上一个热搜。 比如欠薪上热搜、产品降价上热搜、甚至官网微博微信停更,也得上个热搜&…

【数学建模】虫子追击问题(仿真)

已知 有四个虫子,分别是 A , B , C , D A,B,C,D A,B,C,D A , B , C , D A,B,C,D A,B,C,D分别在 ( 0 , 0 ) , ( 0 , 1 ) , ( 1 , 1 ) , ( 1 , 0 ) (0,0),(0,1),(1,1),(1,0) (0,0),(0,1),(1,1),(1,0)四个虫子A追B,B追C,C追D,D追A四个速度相同 …

《计算思维导论》笔记:《第10章 数据化思维-数据聚集与管理》计算思维第17讲-从表的管理看数据库

《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学) 《计算思维第17讲-从表的管理看数据库----结构化与非结构化数据管理》 一、引言 今天我们从表的管理看数据库,给大家讲一下结构化与非结构化数据管理的思维。 二、为什么需要数据库–工…

机器学习(二)之监督学习

前言: 上一节大概讲解了几种学习方式,下面几张就具体来讲讲监督学习的几种算法。 以下示例中和都是权重的意思!!! 注:本文如有错误之处,还请读者指出,欢迎评论区探讨! 1…

Matlab进阶绘图第51期—带填充等高线的三维特征渲染散点图

带填充等高线的三维特征渲染散点图是填充等高线图与特征渲染三维散点图的组合。 其中,填充等高线图与特征渲染的三维散点图的颜色用于表示同一个特征。 由于填充等高线图无遮挡但不直观,特征渲染的三维散点图直观但有遮挡,而将二者组合&…

Python | Leetcode Python题解之第44题通配符匹配

题目: 题解: class Solution:def isMatch(self, s: str, p: str) -> bool:def allStars(st: str, left: int, right: int) -> bool:return all(st[i] * for i in range(left, right))def charMatch(u: str, v: str) -> bool:return u v or v…

【Hadoop】- MapReduce YARN 初体验[9]

目录 提交MapReduce程序至YARN运行 1、提交wordcount示例程序 1.1、先准备words.txt文件上传到hdfs,文件内容如下: 1.2、在hdfs中创建两个文件夹,分别为/input、/output 1.3、将创建好的words.txt文件上传到hdfs中/input 1.4、提交MapR…

XYK欺诈检测简介

1. 背景 用30w左右的信用卡欺诈数据集测试下IF,看看每个参数的选择对最后结果的影响。信用卡欺诈是指故意使用伪造、作废的信用卡,冒用他人的信用卡骗取财物,或用本人信用卡进行恶意透支的行为,信用卡欺诈形式分为3种:…

开源协议的对比和商业上的安全使用

开源协议的对比和商业上的安全使用 开源组件是:“任何人都可以自由使用、更改和共享(以修改或未修改的形式)的软件”。当今企业依靠开源来加速开发、降低成本和推动创新。对开放源码的糟糕管理可能会使组织面临安全、法律和操作风险。 使用…

Python-VBA函数之旅-hash函数

目录 一、hash函数的定义: 二、hash函数的工作方式: ​三、hash函数的优缺点: 四、hash函数的常见应用场景: 1、hash函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页&…

VTC视频时序控制器原理以及Verilog实现

文章目录 一、前言二、视频时序控制原理三、Verilog实现3.1 代码3.2 仿真以及分析 一、前言 VTC(Video Timing Controller)是一种用于产生视频时序的控制器,在FPGA图像领域经常用到。Xilinx Vivado 也有专门用于生成视频时序的 IP&#xff0c…