返回顶部
首页 > 资讯 > 后端开发 > Python >Caffe卷积神经网络视觉层Vision Layers及参数详解
  • 728
分享到

Caffe卷积神经网络视觉层Vision Layers及参数详解

2024-04-02 19:04:59 728人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录引言1、Convolution层:2、Pooling层3、Local Response NORMalization (LRN)层4、im2col层引言 所有的层都具有的参数,如n

引言

所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe卷积神经网络数据层及参数

本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling,Local Response Normalization (LRN), im2col等层。

1、Convolution层:

就是卷积层,是卷积神经网络(CNN)的核心层。

层类型:Convolution

lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.prototxt配置文件中的base_lr。

如果有两个lr_mult, 则第一个表示权值的学习率,第二个表示偏置项的学习率。一般偏置项的学习率是权值学习率的两倍。

在后面的convolution_param中,我们可以设定卷积层的特有参数。

必须设置的参数:

  • num_output: 卷积核(filter)的个数
  • kernel_size: 卷积核的大小。如果卷积核的长和宽不等,需要用kernel_h和kernel_w分别设定

其它参数:

  • stride: 卷积核的步长,默认为1。也可以用stride_h和stride_w来设置。
  • pad: 扩充边缘,默认为0,不扩充。 扩充的时候是左右、上下对称的,比如卷积核的大小为5*5,那么pad设置为2,则四个边缘都扩充2个像素,即宽度和高度都扩充了4个像素,这样卷积运算之后的特征图就不会变小。也可以通过pad_h和pad_w来分别设定。
  • weight_filler: 权值初始化。 默认为“constant",值全为0,很多时候我们用"xavier"算法来进行初始化,也可以设置为”gaussian"
  • bias_filler: 偏置项的初始化。一般设置为"constant",值全为0。
  • bias_term: 是否开启偏置项,默认为true, 开启

group: 分组,默认为1组。如果大于1,我们限制卷积的连接操作在一个子集内。如果我们根据图像的通道来分组,那么第i个输出分组只能与第i个输入分组进行连接。

如果设置stride为1,前后两次卷积部分存在重叠。如果设置pad=(kernel_size-1)/2,则运算后,宽度和高度不变。

示例:

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1
  }
  param {
    lr_mult: 2
  }
  convolution_param {
    num_output: 20
    kernel_size: 5
    stride: 1
    weight_filler {
      type: "xavier"
    }
    bias_filler {
      type: "constant"
    }
  }
}

2、Pooling层

也叫池化层,为了减少运算量和数据维度而设置的一种层。

层类型:Pooling

必须设置的参数:

kernel_size: 池化的核大小。也可以用kernel_h和kernel_w分别设定。

其它参数:

  • pool: 池化方法,默认为MAX。目前可用的方法有MAX, AVE, 或STOCHASTIC
  • pad: 和卷积层的pad的一样,进行边缘扩充。默认为0
  • stride: 池化的步长,默认为1。一般我们设置为2,即不重叠。也可以用stride_h和stride_w来设置。

示例:

layer {
  name: "pool1"
  type: "Pooling"
  bottom: "conv1"
  top: "pool1"
  pooling_param {
    pool: MAX
    kernel_size: 3
    stride: 2
  }
}

pooling层的运算方法基本是和卷积层是一样的。

如果设置stride为2,前后两次卷积部分不重叠。100*100的特征图池化后,变成50*50.

3、Local Response Normalization (LRN)层

此层是对一个输入的局部区域进行归一化,达到“侧抑制”的效果。可去搜索AlexNet或GoogLenet,里面就用到了这个功能

层类型:LRN

参数:全部为可选,没有必须

  • local_size: 默认为5。如果是跨通道LRN,则表示求和的通道数;如果是在通道内LRN,则表示求和的正方形区域长度。
  • alpha: 默认为1,归一化公式中的参数。
  • beta: 默认为5,归一化公式中的参数。
  • norm_region: 默认为ACROSS_CHANNELS。有两个选择,ACROSS_CHANNELS表示在相邻的通道间求和归一化。WITHIN_CHANNEL表示在一个通道内部特定的区域内进行求和归一化。与前面的local_size参数对应。

归一化公式:对于每一个输入, 去除以

得到归一化后的输出

示例:

layers {
  name: "norm1"
  type: LRN
  bottom: "pool1"
  top: "norm1"
  lrn_param {
    local_size: 5
    alpha: 0.0001
    beta: 0.75
  }
}

4、im2col层

如果对matlab比较熟悉的话,就应该知道im2col是什么意思。它先将一个大矩阵,重叠地划分为多个子矩阵,对每个子矩阵序列化成向量,最后得到另外一个矩阵。

看一看图就知道了:

在caffe中,卷积运算就是先对数据进行im2col操作,再进行内积运算(inner product)。这样做,比原始的卷积操作速度更快。

看看两种卷积操作的异同:

以上就是Caffe卷积神经网络视觉层Vision Layers及参数详解的详细内容,更多关于Caffe视觉层Vision Layers的资料请关注编程网其它相关文章!

--结束END--

本文标题: Caffe卷积神经网络视觉层Vision Layers及参数详解

本文链接: https://lsjlt.com/news/118966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Caffe卷积神经网络视觉层Vision Layers及参数详解
    目录引言1、Convolution层:2、Pooling层3、Local Response Normalization (LRN)层4、im2col层引言 所有的层都具有的参数,如n...
    99+
    2024-04-02
  • Caffe卷积神经网络视觉层Vision Layers及参数实例分析
    这篇“Caffe卷积神经网络视觉层Vision Layers及参数实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2023-07-02
  • Caffe卷积神经网络数据层及参数
    目录引言数据层1、数据来自于数据库(如LevelDB和LMDB)2、数据来自于内存3、数据来自于HDF54、数据来自于图片5、数据来源于Windows引言 要运行caffe,需要先创...
    99+
    2024-04-02
  • Caffe卷积神经网络数据层及参数实例分析
    这篇文章主要介绍了Caffe卷积神经网络数据层及参数实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Caffe卷积神经网络数据层及参数实例分析文章都会有所收获,下面我们一起来看看吧。引言要运行caffe,...
    99+
    2023-07-02
  • Caffe卷积神经网络solver及其配置详解
    目录引言Solver的流程:训练测试模型参数引言 solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一...
    99+
    2024-04-02
  • Caffe卷积神经网络solver及配置的方法
    这篇文章主要介绍“Caffe卷积神经网络solver及配置的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Caffe卷积神经网络solver及配置的方法”文章能帮助大家解决问题。引言solver...
    99+
    2023-07-02
  • PyTorch实现卷积神经网络的搭建详解
    目录PyTorch中实现卷积的重要基础函数1、nn.Conv2d:2、nn.MaxPool2d(kernel_size=2)3、nn.ReLU()4、x.view()全部代码PyTo...
    99+
    2024-04-02
  • TensorFlow卷积神经网络AlexNet实现示例详解
    2012年,Hinton的学生Alex Krizhevsky提出了深度卷积神经网络模型AlexNet,它可以算是LeNet的一种更深更宽的版本。AlexNet以显著的优势赢得了竞争激...
    99+
    2024-04-02
  • Python编程pytorch深度卷积神经网络AlexNet详解
    目录 容量控制和预处理读取数据集2012年,AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。AlexNet使用了8...
    99+
    2024-04-02
  • Python卷积神经网络图片分类框架详解分析
    【人工智能项目】卷积神经网络图片分类框架 本次硬核分享当时做图片分类的工作,主要是整理了一个图片分类的框架,如果想换模型,引入新模型,在config中修改即可。那么走起来瓷!!!...
    99+
    2024-04-02
  • 卷积神经网络(CNN)的整体框架及细节(详细简单)
    一:引言 我们传统的神经网络和卷积神经网络有什么区别? 下图所示,左图就是我们传统的神经网络(NN)(想了解NN的小伙伴可以先划到最后的参考文章部分),右图就是卷积神经网络(Convolutional Neural Network)(CNN...
    99+
    2023-09-05
    深度学习 神经网络 python
  • Python深度学习pytorch神经网络图像卷积运算详解
    目录互相关运算卷积层特征映射由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cros...
    99+
    2024-04-02
  • python神经网络Keras实现LSTM及其参数量详解
    目录什么是LSTM1、LSTM的结构2、LSTM独特的门结构3、LSTM参数量计算a、遗忘门b、输入门c、输出门d、全部参数量在Keras中实现LSTM实现代码什么是LSTM 1、L...
    99+
    2024-04-02
  • 使用拓扑数据分析理解卷积神经网络模型过程
    简介神经网络在各种数据方面处理上已经取得了很大的成功,包括图像、文本、时间序列等。然而,学术界或工业界都面临的一个问题是,不能以任何细节来理解其工作的过程,只能通过实验来检测其效果,而无法做出合理的解释。相关问题是对特定数据集经常存在某种过...
    99+
    2023-06-04
  • Python利用三层神经网络实现手写数字分类详解
    目录前言一、神经网络组成二、代码实现1.引入库2.导入数据集3.全连接层4.ReLU激活函数层5.Softmax损失层6.网络训练与推断模块三、代码debug四、结果展示补充前言 本...
    99+
    2024-04-02
  • python神经网络学习数据增强及预处理示例详解
    目录学习前言处理长宽不同的图片数据增强1、在数据集内进行数据增强2、在读取图片的时候数据增强3、目标检测中的数据增强学习前言 进行训练的话,如果直接用原图进行训练,也是可以的(就如我...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作