pair: class; QPanda::Variational::expression
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>
(); MatrixXdpropagate<doxid-class_q_panda_1_1_variational_1_1expression_1acd67086821d6c6ae6b995e77c136ed69>
(); MatrixXdpropagate<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>
>&); voidbackpropagate<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>
();
};
A proxy class for the Variational::var <doxid-class_q_panda_1_1_variational_1_1var>
.
pair: function; expression
cpp
expression(var<doxid-class_q_panda_1_1_variational_1_1var>
root)
Construct a new expression object.
Parameters:
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: