|
import jax.numpy as jnp |
|
import jax |
|
import torch |
|
from dataclasses import dataclass |
|
import sympy |
|
import sympy as sp |
|
from sympy import Matrix, Symbol |
|
import math |
|
from sde_redefined_param import SDEDimension |
|
@dataclass |
|
class SDEParameterizedBaseLineConfig: |
|
name = "Custom" |
|
variable = Symbol('t', nonnegative=True, real=True) |
|
|
|
drift_dimension = SDEDimension.SCALAR |
|
diffusion_dimension = SDEDimension.SCALAR |
|
diffusion_matrix_dimension = SDEDimension.SCALAR |
|
|
|
|
|
drift_parameters = Matrix([sympy.symbols("f1", real=True)]) |
|
diffusion_parameters = Matrix([sympy.symbols("sigma_min sigma_max", real=True)]) |
|
|
|
drift = 0 |
|
|
|
sigma_min = sympy.Abs(diffusion_parameters[0]) |
|
sigma_max = sympy.Abs(diffusion_parameters[1]) |
|
diffusion = sigma_min * (sigma_max/sigma_min)**variable * sympy.sqrt(2 * sympy.Abs(sympy.log(sigma_max/sigma_min))) |
|
|
|
|
|
diffusion_matrix = 1 |
|
|
|
initial_variable_value = 0 |
|
max_variable_value = 1 |
|
min_sample_value = 1e-6 |
|
|
|
module = 'jax' |
|
|
|
drift_integral_form=False |
|
diffusion_integral_form=False |
|
diffusion_integral_decomposition = 'cholesky' |
|
|
|
non_symbolic_parameters = {'diffusion': torch.tensor([0.002, 80.])} |
|
|
|
target = "epsilon" |
|
|