https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ExponentialCovariance.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9#ifdef MOOSE_LIBTORCH_ENABLED
10
11#pragma once
12
14
16{
17public:
20
22 void computeCovarianceMatrix(torch::Tensor & K,
23 const torch::Tensor & x,
24 const torch::Tensor & xp,
25 const bool is_self_covariance) const override;
26
27 static void ExponentialFunction(torch::Tensor & K,
28 const torch::Tensor & x,
29 const torch::Tensor & xp,
30 const torch::Tensor & length_factor,
31 const torch::Tensor & sigma_f_squared,
32 const torch::Tensor & sigma_n_squared,
33 const torch::Tensor & gamma,
34 const bool is_self_covariance);
35
37 bool computedKdhyper(torch::Tensor & dKdhp,
38 const torch::Tensor & x,
39 const std::string & hyper_param_name,
40 unsigned int ind) const override;
41
43 static void computedKdlf(torch::Tensor & K,
44 const torch::Tensor & x,
45 const torch::Tensor & length_factor,
46 const torch::Tensor & sigma_f_squared,
47 const torch::Tensor & gamma,
48 const int ind);
49
50private:
52 const torch::Tensor & _length_factor;
53
55 const torch::Tensor & _sigma_f_squared;
56
58 const torch::Tensor & _sigma_n_squared;
59
61 const torch::Tensor & _gamma;
62};
63
64#endif
const std::vector< double > x
Base class for covariance functions that are used in Gaussian Processes.
const torch::Tensor & _sigma_f_squared
signal variance (\sigma_f^2)
static void computedKdlf(torch::Tensor &K, const torch::Tensor &x, const torch::Tensor &length_factor, const torch::Tensor &sigma_f_squared, const torch::Tensor &gamma, const int ind)
Computes dK/dlf for individual length factors.
static InputParameters validParams()
static void ExponentialFunction(torch::Tensor &K, const torch::Tensor &x, const torch::Tensor &xp, const torch::Tensor &length_factor, const torch::Tensor &sigma_f_squared, const torch::Tensor &sigma_n_squared, const torch::Tensor &gamma, const bool is_self_covariance)
const torch::Tensor & _sigma_n_squared
noise variance (\sigma_n^2)
const torch::Tensor & _length_factor
lengh factor (\ell) for the kernel, in vector form for multiple parameters
bool computedKdhyper(torch::Tensor &dKdhp, const torch::Tensor &x, const std::string &hyper_param_name, unsigned int ind) const override
Redirect dK/dhp for hyperparameter "hp".
const torch::Tensor & _gamma
gamma exponential factor for use in kernel
void computeCovarianceMatrix(torch::Tensor &K, const torch::Tensor &x, const torch::Tensor &xp, const bool is_self_covariance) const override
Generates the Covariance Matrix given two points in the parameter space.
const InputParameters & parameters() const