Skip to content

Commit

Permalink
MESMER-X: compile expression
Browse files Browse the repository at this point in the history
  • Loading branch information
mathause committed Feb 4, 2025
1 parent 9840bf7 commit c1b614d
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions mesmer/mesmer_x/train_utils_mesmerx.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ def __init__(self, expr, expr_name):
# correct expressions of parameters
self._correct_expr_parameters()

# compile expression for faster eval
self._compile_expression()

def _interpret_distrib(self):
"""interpreting the expression"""

Expand Down Expand Up @@ -296,6 +299,14 @@ def _correct_expr_parameters(self):
param
].replace(f"__{i}__", i)

def _compile_expression(self):
"""compile expression for faster eval"""

self._compiled_param_expr = {
param: compile(expr, param, "eval")
for param, expr in self.parameters_expressions.items()
}

def evaluate_params(self, coefficients_values, inputs_values, forced_shape=None):
"""
Evaluates the parameters for the provided inputs and coefficients
Expand Down Expand Up @@ -365,8 +376,7 @@ def evaluate_params(self, coefficients_values, inputs_values, forced_shape=None)

# evaluate parameters
parameters_values = {}
for param, expr in self.parameters_expressions.items():
# may need to silence warnings here, to avoid spamming
for param, expr in self._compiled_param_expr.items():
parameters_values[param] = eval(expr, None, locals)

# possibly forcing shape
Expand Down

0 comments on commit c1b614d

Please sign in to comment.