コード例 #1
0
# Pymanopt is licensed under the BSD 3-Clause "New" or "Revised" License
# Online license link: https://github.com/pymanopt/pymanopt/blob/master/LICENSE

from __future__ import print_function, division

import time
from copy import deepcopy

import numpy as np

from pymanopt.solvers.linesearch import LineSearchAdaptive
from pymanopt.solvers.solver import Solver
from pymanopt import tools

BetaTypes = tools.make_enum(
    "BetaTypes",
    "FletcherReeves PolakRibiere HestenesStiefel HagerZhang".split())


class ConjugateGradientMS(Solver):
    """
    Module containing conjugate gradient algorithm based on
    conjugategradient.m from the manopt MATLAB package.
    """
    def __init__(self,
                 beta_type=BetaTypes.HestenesStiefel,
                 orth_value=np.inf,
                 linesearch=None,
                 *args,
                 **kwargs):
        """Instantiate gradient solver class.
コード例 #2
0
from __future__ import print_function, division

import time
from copy import deepcopy

import numpy as np

from pymanopt.solvers.linesearch import LineSearchAdaptive
from pymanopt.solvers.solver import Solver
from pymanopt import tools


BetaTypes = tools.make_enum("BetaTypes", "FletcherReeves PolakRibiere HestenesStiefel HagerZhang".split())


class ConjugateGradient(Solver):
    """
    Module containing conjugate gradient algorithm based on
    conjugategradient.m from the manopt MATLAB package.
    """

    def __init__(self, beta_type=BetaTypes.HestenesStiefel, orth_value=np.inf, linesearch=None, *args, **kwargs):
        """
        Instantiate gradient solver class.
        Variable attributes (defaults in brackets):
            - beta_type (BetaTypes.HestenesStiefel)
                Conjugate gradient beta rule used to construct the new search
                direction
            - orth_value (numpy.inf)
                Parameter for Powell's restart strategy. An infinite
                value disables this strategy. See in code formula for
コード例 #3
0
import time
from copy import deepcopy

import numpy as np

from pymanopt import tools
from pymanopt.solvers.solver import Solver

# BetaTypes of the conjugate gradient method in pymanopt was changed.
BetaTypes = tools.make_enum("BetaTypes",
                            "FR DY PR HS HZ Hybrid1 Hybrid2".split())


class ConjugateGradient(Solver):
    """
    Module containing conjugate gradient algorithm based on
    conjugategradient.m from the manopt MATLAB package.
    """
    def __init__(self,
                 beta_type=BetaTypes.DY,
                 orth_value=np.inf,
                 linesearch=None,
                 *args,
                 **kwargs):
        """
        Instantiate gradient solver class.
        Variable attributes (defaults in brackets):
            - beta_type (BetaTypes.HestenesStiefel)
                Conjugate gradient beta rule used to construct the new search
                direction
            - orth_value (numpy.inf)
コード例 #4
0
import time
from copy import deepcopy

import numpy as np

from pymanopt import tools
from pymanopt.solvers.solver import Solver

# BetaTypes of the conjugate gradient method in pymanopt was changed.
BetaTypes = tools.make_enum("BetaTypes",
                            "DaiYuan PolakRibiere Hybrid1 Hybrid2".split())


class ConjugateGradient(Solver):
    """
    Module containing conjugate gradient algorithm based on
    conjugategradient.m from the manopt MATLAB package.
    """
    def __init__(self,
                 beta_type=BetaTypes.DaiYuan,
                 orth_value=np.inf,
                 linesearch=None,
                 *args,
                 **kwargs):
        """
        Instantiate gradient solver class.
        Variable attributes (defaults in brackets):
            - beta_type (BetaTypes.HestenesStiefel)
                Conjugate gradient beta rule used to construct the new search
                direction
            - orth_value (numpy.inf)