kleinhe
init
c3d0293
# -*- coding: utf-8 -*-
# Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. (MPG) is
# holder of all proprietary rights on this computer program.
# You can only use this computer program if you have closed
# a license agreement with MPG or you get the right to use the computer
# program from someone who is authorized to grant you that right.
# Any use of the computer program without a valid license is prohibited and
# liable to prosecution.
#
# Copyright©2020 Max-Planck-Gesellschaft zur Förderung
# der Wissenschaften e.V. (MPG). acting on behalf of its Max Planck Institute
# for Intelligent Systems. All rights reserved.
#
# Contact: Vassilis Choutas, [email protected]
from typing import Tuple
from omegaconf import OmegaConf
from dataclasses import dataclass
@dataclass
class LBFGS:
line_search_fn: str = 'strong_wolfe'
max_iter: int = 50
@dataclass
class SGD:
momentum: float = 0.9
nesterov: bool = True
@dataclass
class ADAM:
betas: Tuple[float, float] = (0.9, 0.999)
eps: float = 1e-08
amsgrad: bool = False
@dataclass
class RMSProp:
alpha: float = 0.99
@dataclass
class TrustRegionNewtonCG:
max_trust_radius: float = 1000
initial_trust_radius: float = 0.05
eta: float = 0.15
gtol: float = 1e-05
@dataclass
class OptimConfig:
type: str = 'trust-ncg'
lr: float = 1.0
gtol: float = 1e-8
ftol: float = -1.0
maxiters: int = 100
lbfgs: LBFGS = LBFGS()
sgd: SGD = SGD()
adam: ADAM = ADAM()
trust_ncg: TrustRegionNewtonCG = TrustRegionNewtonCG()
conf = OmegaConf.structured(OptimConfig)