# Update

namespace `paddle`
  class `ParameterUpdater`

    Subclassed by paddle::ParameterUpdaterComposite, paddle::RemoteParameterUpdater, paddle::SgdLocalUpdater, paddle::SgdThreadUpdater, paddle::SparseRemoteParameterUpdater

    Public Functions

    `ParameterUpdater`()
    virtual `~ParameterUpdater`()
    void `addParameterType`(ParameterType type)
    void `init`(std::vector<ParameterPtr> &parameters)
    virtual void `startPass`()
    virtual bool `finishPass`(real cost = 0)
    virtual PassType `startBatch`(int64_t batchSize)
    virtual void `finishBatch`(real cost)
    virtual void `update`(Parameter *para)
    virtual void `getParametersRemote`(bool fullSize = false, bool apply = false)
    virtual void `loadParametersRemote`(const std::string &dirName)
    virtual void `saveParametersRemote`(const std::string &dirName)
    virtual void `randParametersRemote`()
    virtual void `catchUpWith`()
    virtual void `apply`()
    virtual void `restore`()
    const std::vector<ParameterType> &`getParameterTypes`() const
    virtual void `setForwardbackwardTime`(uint64_t delta)

    Protected Functions

    virtual void `updateImpl`(Parameter *para) = 0

    Protected Attributes

    std::vector<ParameterType> `parameterTypes_`
    std::vector<ParameterPtr> `parameters_`
    std::map<size_t, size_t> `nonStaticParaIDMap_`
  class `ParameterUpdaterComposite`

    Inherits from paddle::ParameterUpdater

    Subclassed by paddle::SparseRemoteParameterUpdaterComposite

    Public Functions

    `ParameterUpdaterComposite`()
    virtual `~ParameterUpdaterComposite`()
    virtual void `init`(std::vector<ParameterPtr> &parameters) = 0
    virtual void `startPass`()
    virtual bool `finishPass`(real cost = 0)
    virtual PassType `startBatch`(int64_t batchSize)
    virtual void `finishBatch`(real cost)
    virtual void `getParametersRemote`(bool fullSize, bool apply)
    virtual void `loadParametersRemote`(const std::string &dirName)
    virtual void `saveParametersRemote`(const std::string &dirName)
    virtual void `randParametersRemote`()
    virtual void `catchUpWith`()
    virtual void `setForwardbackwardTime`(uint64_t delta)
    virtual void `apply`()
    virtual void `restore`()

    Protected Functions

    virtual void `updateImpl`(Parameter *para)

    Protected Attributes

    std::vector<std::unique_ptr<ParameterUpdater>> `updaters_`
    std::unique_ptr<SyncThreadPool> `syncThreadPool_`

namespace `paddle`

  Variables

  class paddle::IParameterUpdaterHook `__attribute__`
  class `IParameterUpdaterHook`
    #include <ParameterUpdaterHook.h>

    The parameter updater hook interface.

    The Parameter Updater hooks is a group of methods invoke before ParameterUpdater::updateImpl. It can modify gradient/momentum/etc before parameter optimization.

    Subclassed by paddle::StaticPruningHook

    Public Functions

    `~IParameterUpdaterHook`()
    virtual void `update`(Parameter *para) = 0

      The update hook method. Invoke before ParameterUpdater::updateImpl

    virtual void `init`(Parameter *para) = 0

      The init hook method. Invoke in ParameterUpdater::init

    Public Static Functions

    std::shared_ptr<IParameterUpdaterHook> `create`(const ParameterConfig &paramConfig, int idx)

      Create A ParameterUpdaterHook.

      The same parameter shared the same hooks. So it returns shared_ptr.

      Parameters
        - `param_config`: The parameter config.
        - `idx`: The element index of param_config.updater_hooks() array.

    Protected Functions

    `IParameterUpdaterHook`()

      Ctor.