Commit f74ef694 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Use a more reasonable default gradient step size



Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent 899add9e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ namespace qcor {
class KernelForwardDifferenceGradient : public KernelGradientService {
protected:
  std::shared_ptr<ObjectiveFunction> m_objFunc;
  double m_step = 1e-7;
  double m_step = 1e-3;

public:
  const std::string name() const override { return "forward"; }
@@ -66,7 +66,7 @@ public:
class KernelBackwardDifferenceGradient : public KernelGradientService {
protected:
  std::shared_ptr<ObjectiveFunction> m_objFunc;
  double m_step = 1e-7;
  double m_step = 1e-3;

public:
  const std::string name() const override { return "backward"; }
@@ -89,7 +89,7 @@ public:
class KernelCentralDifferenceGradient : public KernelGradientService {
protected:
  std::shared_ptr<ObjectiveFunction> m_objFunc;
  double m_step = 1e-7;
  double m_step = 1e-3;

public:
  const std::string name() const override { return "central"; }
+14 −1
Original line number Diff line number Diff line
@@ -166,6 +166,19 @@ public:
    helper->set_options(options);
  }

  // CTOR: externally provided gradient method:
  // e.g. custom gradient calculation method for the ansatz kernel.
  ObjectiveFunctionImpl(void *k_ptr, std::shared_ptr<Observable> obs,
                        xacc::internal_compiler::qreg &qq,
                        std::shared_ptr<LocalArgsTranslator> translator,
                        std::shared_ptr<ObjectiveFunction> obj_helper,
                        std::shared_ptr<GradientFunction> grad_calc,
                        const int dim, HeterogeneousMap opts)
      : ObjectiveFunctionImpl(k_ptr, obs, qq, translator, obj_helper, dim,
                              opts) {
    gradiend_method = grad_calc;
  }

  ObjectiveFunctionImpl(void *k_ptr, std::shared_ptr<Observable> obs,
                        std::shared_ptr<ObjectiveFunction> obj_helper,
                        const int dim, HeterogeneousMap opts) {
@@ -700,6 +713,6 @@ std::shared_ptr<ObjectiveFunction> createObjectiveFunction(
  void *kernel_ptr = reinterpret_cast<void *>(quantum_kernel_functor);

  return std::make_shared<ObjectiveFunctionImpl<Args...>>(
      kernel_ptr, observable, q, args_translator, helper, nParams, options);
      kernel_ptr, observable, q, args_translator, helper, gradient_method, nParams, options);
}
} // namespace qcor
 No newline at end of file