caffe各层参数详解

简介: caffe各层参数详解

 在prototxt文件中,层都是用layer{}的结构表示,而里面包含的层的参数可以在caffe.proto文件中找到,比如说Data类型的结构由message DataParameter所定义,Convolution类型的结构由message ConvolutionParameter所定义。

具体说明下:

    • name表示该层的名称
    • type表示该层的类型,如Data或者Convolution类型
    • top表示该层后接的Blob结构的名称
    • bottom表示该层前接的Blob数据结构的名称
    • *_param表示该层的参数,比如对于某卷积层conv1来说,convolution_param
      • num_output表示输出通道数
      • pad表示卷积pad
      • kernel_size表示卷积核的大小

        这里我推荐一个资源:caffe网络模型各个层详解

        https://download.csdn.net/download/pbymw8iwm/10706680

        数据层

        {
          name: "data"
          type: "Data"
          top: "data"
          top: "label"
          transparam {
            scale: 0.003920625        // 归一化:1/256
          }
          include {
            phase: TRAIN/TEST         // 训练阶段
          }
          data_param {
            source: "examples/mnist/train_lmdb"
            batch_size: 64           // 批量处理数
            backend: LMDB            // 数据格式,LMDB/HDF5等
          }
        }

        image.gif

        卷积层

        卷积层是CNN网络的核心,一般用来提取图像特征。

        layer {
          name: "conv"
          type: "Convolution"
          bottom: "data"
          top: "conv"
          param {
            lr_mult: 1             // weight的学习率
            decay_mult: 1          // 权重衰减
          }
          param {
            lr_mult: 2            // bias的学习率
            decay_mult: 0
          }
          convolution_param {
            num_output: 20        // 通道数
            kernel_size: 5        // 卷积核大小
            stride: 1             // 步长
            weight_filter {       // 权重初始化,xavier/guassion/constant
              type: "xavier"      // 一种均匀化分布
            }
            bias_filter {         // 偏置初始化
              type: "constant"    // 值全为0
            }
          }
        }

        image.gif

        Pool层

        池化层,用来减小训练参数规模。

        layer {
          name: "pool"
          type: "Pooling"
          bottom: "conv"
          top: "pool"
          pooling_param {
            pool: MAX             // 最大化,还有均值化/最小化
            kernel_size: 2        // 卷积核大小,缩放效果
            stride: 2             // 步长
          }
        }

        image.gif

        全连接层

        类似卷积层

        layer {
          name: "ip"
          type: "InnerProduct"
          bottom: "pool"
          top: "ip"
          param {
            lr_mult: 1
          }
          param {
            lr_mult: 2
          }
          inner_product_param {
            num_output: 10
            weight_filter {
              type: "xavier"
            }
            bias_filter {
              type: "constant"
            }
          }
        }

        image.gif

        Relu层

        激活函数

        layer {
          name: "relu"
          type: "Relu"
          bottom: "ip"
          top: "ip"
        }

        image.gif

        Accuracy层

        一般在测试阶段看到训练精度。

        layer {
          name: "accuracy"
          type: "Accuracy"
          bottom: "ip"
          bottom: "label"
          top: "accuracy"
          include {
            phase: TEST
          }
        }

        image.gif

        Softmax层

        损失函数,常用于多个分类

        layer {
          name: "loss"
          type: "SoftmaxWithLoss"
          bottom: "ip"
          bottom: "label"
          top: "loss"
        }

        image.gif

        BatchNormal层

        批量正则化,不依赖于初始值,加快训练速度。

        layer {
          name: "batchnorm"
          type: "BatchNorm"
          bottom: "conv"
          top: "conv"
          batch_norm_param {
            use_global_stats: true
          }
          include {
            phase: TRAIN/TEST
          }
        }

        image.gif

        Scale层

        BN层后面一般都要带Scale层,和batchnorm计算公式中的参数有关。

        layer {
          name: "scale"
          type: "Scale"
          bottom: "conv"
          top: "conv"
          scale_param {
            bias_term: true
          }
        }

        image.gif

        Dropout层

        Dropout是一个防止过拟合的trick。可以随机让网络某些隐含层节点的权重不工作。

        layer {
          name: "drop7"
          type: "Dropout"
          bottom: "fc7-conv"
          top: "fc7-conv"
          dropout_param {
            dropout_ratio: 0.5
          }
        }

        image.gif


        相关文章
        |
        7月前
        |
        存储 弹性计算 人工智能
        2026年阿里云服务器价格表及活动报价、租用收费标准参考
        阿里云服务器租用体系涵盖轻量应用服务器、ECS云服务器两大核心品类,专注满足通用建站、企业办公、高性能计算等多元需求,收费受实例类型、配置规格、计费方式及地域影响显著。同时推出全场景优惠活动,包括普惠降价、新人秒杀、新老同享福利及长期套餐折扣,部分活动有明确时效限制。
        1115 7
        |
        机器学习/深度学习 编解码 数据可视化
        图像恢复SwinIR: Image Restoration Using Swin Transformer
        图像恢复SwinIR: Image Restoration Using Swin Transformer
        1419 2
        |
        1月前
        |
        弹性计算 人工智能 持续交付
        2026年阿里云服务器特价攻略:38元轻量款/99元经济型/199元企业款解析
        阿里云2026年云服务器特惠活动覆盖全档位需求,新用户每日10点、15点可抢2核2G轻量应用服务器,仅38元/年;新老用户同享2核2G 3M带宽经济型e实例99元/年,支持续费同价至2027年;企业认证用户可购2核4G 5M带宽u1实例199元/年,覆盖海内外节点。此外,e系列高配置享3.9折、u2i实例年付低至3折、第九代c9i/g9i/r9i实例6.4折,适配个人学习、中小业务部署、AI推理等不同场景,是不同规模用户低成本上云的优质选择。
        |
        7月前
        |
        存储 运维 安全
        阿里云目前活动内云服务器可以买3年吗?可选实例规格、配置及价格参考
        在目前阿里云的活动中,经济型e实例支持3年购买,配置涵盖2核4G、4核8G等,例如2核4G 3年1499.40元起,4核8G 3年3249.00元起。采用Intel Xeon Platinum处理器,支持多种处理器内存配比,搭载ESSD Entry云盘,适配中小型网站、开发测试、轻量级应用等场景。
        |
        11月前
        |
        数据可视化 Linux iOS开发
        Python脚本转EXE文件实战指南:从原理到操作全解析
        本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
        2454 2
        |
        5月前
        |
        弹性计算 负载均衡 数据库
        阿里云轻量服务器38元一年:2核CPU、2GB内存、200M峰值带宽、40G系统盘,2026年最新收费价格
        阿里云轻量应用服务器新用户专享:2核2G、200M峰值带宽、40GB系统盘,仅38元/年!限首次购买ECS或轻量服务器的实名用户,地域覆盖全国多节点,性价比超高,适合建站、开发测试等轻量场景。(239字)
        2409 0
        |
        11月前
        |
        开发工具 Android开发 开发者
        用Flet打造跨平台文本编辑器:从零到一的Python实战指南
        本文介绍如何使用Flet框架开发一个跨平台、自动保存的文本编辑器,代码不足200行,兼具现代化UI与高效开发体验。
        1410 0
        |
        人工智能 JSON API
        使用 Qwen 生成数据模型和进行结构化输出
        本教程展示如何使用CAMEL框架和Qwen模型生成结构化数据。CAMEL是一个强大的多智能体框架,支持复杂的AI任务;Qwen由阿里云开发,具备自然语言处理等先进能力。教程涵盖安装、API密钥设置、定义Pydantic模型,并演示了通过Qwen生成JSON格式的学生信息。最后,介绍了如何利用Qwen生成多个随机学生信息的JSON格式数据。欢迎在[CAMEL GitHub](https://github.com/camel-ai/camel)上为项目点星支持。
        4476 70
        |
        机器学习/深度学习 人工智能 数据可视化
        无需微调!扩散模型新突破:Attentive Eraser高效稳定移除目标物体
        最近,扩散模型在生成模型领域异军突起,凭借其独特的生成机制在图像生成方面大放异彩,尤其在处理高维复杂数据时优势明显。然而,尽管扩散模型在图像生成任务中表现优异,但在图像目标移除任务中仍然面临诸多挑战。现有方法在移除前景目标后,可能会留下残影或伪影,难以实现与背景的自然融合。
        648 9
        |
        机器学习/深度学习
        【机器学习】准确率、精确率、召回率、误报率、漏报率概念及公式
        机器学习评估指标中的准确率、精确率、召回率、误报率和漏报率等概念,并给出了这些指标的计算公式。
        5277 0