class QPanda::Variational::AdamOptimizer

#include <Optimizer.h>

class AdamOptimizer: public QPanda::Variational::Optimizer
{
public:
    // construction

    AdamOptimizer(
        var lost,
        double learning_rate = 0.001,
        double beta1 = 0.9,
        double beta2 = 0.999,
        double epsilon = 1e-8
        );

    // methods

    virtual std::unordered_map<var, MatrixXd> compute_gradients(std::unordered_set<var>& var_set);
    virtual std::unordered_set<var> get_variables();
    virtual double get_loss();

    virtual bool run(
        std::unordered_set<var>& leaves,
        size_t t = 0
        );

    static std::shared_ptr<Optimizer> minimize(
        var& lost,
        double learning_rate = 0.001,
        double beta1 = 0.9,
        double beta2 = 0.999,
        double epsilon = 1e-10
        );
};

Inherited Members

public:
    // methods

    virtual std::unordered_set<var> get_variables() = 0;
    virtual std::unordered_map<var, MatrixXd> compute_gradients(std::unordered_set<var>& var_set) = 0;
    virtual double get_loss() = 0;
    virtual bool run(std::unordered_set<var>& leaves, size_t t = 0) = 0;