Skip to content

Latest commit

 

History

History
223 lines (127 loc) · 6.86 KB

class_QPanda_Variational_expression.rst

File metadata and controls

223 lines (127 loc) · 6.86 KB

pair: class; QPanda::Variational::expression

class QPanda::Variational::expression

Overview

A proxy class for the Variational::var <doxid-class_q_panda_1_1_variational_1_1var>. More...<details-class_q_panda_1_1_variational_1_1expression>

cpp

#include <expression.h>

class expression { public: // construction

expression<doxid-class_q_panda_1_1_variational_1_1expression_1a15a5fd5ca50b4afd2c767dc9c824e67a>(var<doxid-class_q_panda_1_1_variational_1_1var> root);

// methods

var<doxid-class_q_panda_1_1_variational_1_1var> getRoot<doxid-class_q_panda_1_1_variational_1_1expression_1a77b062979855dbd6e0d5cea92e6d6e91>() const; std::vector<var<doxid-class_q_panda_1_1_variational_1_1var>> findLeaves<doxid-class_q_panda_1_1_variational_1_1expression_1a7934f625ad6b5873f8dfd8a18a77ff3f>(); MatrixXd propagate<doxid-class_q_panda_1_1_variational_1_1expression_1acd67086821d6c6ae6b995e77c136ed69>(); MatrixXd propagate<doxid-class_q_panda_1_1_variational_1_1expression_1a268ed58d996f7745cdb86567347274cc>(const std::vector<var<doxid-class_q_panda_1_1_variational_1_1var>>& leaves); std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>> findNonConsts<doxid-class_q_panda_1_1_variational_1_1expression_1a134d5be16f4aae3734105693fc25eaff>(const std::vector<var<doxid-class_q_panda_1_1_variational_1_1var>>&); std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>> findNonConsts<doxid-class_q_panda_1_1_variational_1_1expression_1a8eafcd6d5802826b2c2c02753a64c56b>(const std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>>&); void backpropagate<doxid-class_q_panda_1_1_variational_1_1expression_1ad48564e60cabeec8423a639a53047942>(std::unordered_map<var<doxid-class_q_panda_1_1_variational_1_1var>, MatrixXd>& leaves);

void backpropagate<doxid-class_q_panda_1_1_variational_1_1expression_1a63e11664908cf2a982ec04d0cf972e67>(

std::unordered_map<var<doxid-class_q_panda_1_1_variational_1_1var>, MatrixXd>& leaves, const std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>>& nonconsts );

std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>> findVariables<doxid-class_q_panda_1_1_variational_1_1expression_1a9575963379e8e2a64c0305eddf17330b>();

};

Detailed Documentation

A proxy class for the Variational::var <doxid-class_q_panda_1_1_variational_1_1var>.

Construction

pair: function; expression

cpp

expression(var<doxid-class_q_panda_1_1_variational_1_1var> root)

Construct a new expression object.

Parameters:

Methods

pair: function; getRoot

cpp

var<doxid-class_q_panda_1_1_variational_1_1var> getRoot() const

Get the root.

Returns:

var the root, denoting the y in dy/dx.

pair: function; findLeaves

cpp

std::vector<var<doxid-class_q_panda_1_1_variational_1_1var>> findLeaves()

recursively finding the leaves for the root

Returns:

std::vector<var> the vector of the leaves

pair: function; propagate

cpp

MatrixXd propagate()

feed forward the expression, return the value

Returns:

MatrixXd The result

pair: function; propagate

cpp

MatrixXd propagate(const std::vector<var<doxid-class_q_panda_1_1_variational_1_1var>>& leaves)

feed forward the expression with given leaves

Parameters:

Returns:

MatrixXd The reuslts.

pair: function; findNonConsts

cpp

std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>> findNonConsts(const std::vector<var<doxid-class_q_panda_1_1_variational_1_1var>>&)

find all non-constants variable for the given leaves. if there is some variable not related in the path from the root to the leaves, it will not be added into the set

Returns:

std::unordered_set<var> All non-constants variables.

pair: function; backpropagate

cpp

void backpropagate(std::unordered_map<var<doxid-class_q_panda_1_1_variational_1_1var>, MatrixXd>& leaves)

backpropagation and evalute all gradients.

Parameters:

pair: function; backpropagate

cpp

void backpropagate(

std::unordered_map<var<doxid-class_q_panda_1_1_variational_1_1var>, MatrixXd>& leaves, const std::unordered_set<var<doxid-class_q_panda_1_1_variational_1_1var>>& nonconsts )

backpropagation and evalute all gradients.

Parameters: