zoukankan      html  css  js  c++  java
  • caffe中的filler.hpp源码的作用:

    filler.hpp文件:(它应该没有对应的.cpp文件,一切实现都是在头文件中定义的,可能是因为filler只分在网络初始化时用到那么一次吧)

    1,首先定义了基类:Filler,它包括:一个纯虚函数:filler(用于在子类里根据不同的情况具体实现)

                                            一个数据:filler_param_(类型为FillerParameter,这是在proto里定义的)

    2 定义具体子类继承的实现:共有7种请况(这是用来给权值初始化的7种方法 ):

    constant

    gaussian

    positive_unitball

    uniform

    xavier

    msra

    bilinear

    然后,子类的具体实现的函数为:filler(参数为:blob块),它干了什么事呢??

    根据 filler_param_ 的参数把传入的blob块里的数据(mutable_cpu_data()) 按照指定的方法(7种方法之一)分别赋值;

    3, 定义一个 GetFiller 的函数:GetFiller(传入参数为:FillerParameter类型的数据),返回为:上面7种子类实现的一个指针;

    它干了一个什么事呢?就是根据传入的fillerparameter中的选定的type类型(即权值赋值的方法),然后返回一个对应的方法实现一个指针。(这里就是用指针来实现C++强大的多态),现在呢,我们就可以用返回的地址来实现具体操作了。

    (对于具体细节可以看一下源码)

  • 相关阅读:
    象棋
    支持向量机
    朴素贝叶斯分类
    规则归纳
    监督学习
    序列模式
    关联规则
    从《数据挖掘概念与技术》到《Web数据挖掘》
    数据挖掘在大数据中的应用综述
    join sql图
  • 原文地址:https://www.cnblogs.com/yinheyi/p/5980348.html
Copyright © 2011-2022 走看看