MLPKriging::save & MLPKriging::load

Description

Save or restore an MLPKriging model through its JSON representation.

Usage

  • Python

    # mk = MLPKriging(...)
    mk.save("mk.json")
    mk2 = load("mk.json")
    
  • R

    # mk <- MLPKriging(...)
    mk$save("mk.json")
    mk2 <- load("mk.json")
    
  • Matlab/Octave

    % mk = MLPKriging(...)
    mk.save("mk.json")
    mk2 = load("mk.json")
    
  • Julia

    # mk = MLPKriging(...)
    save(mk, "mk.json")
    mk2 = load("mk.json")
    

Arguments

Argument

Description

filename

Path to the JSON file for saving or loading.

Details

save() serialises the fitted model, including the learned MLP weights and GP parameters. load() reconstructs a compatible MLPKriging object from that file.

Value

save() writes the file and returns invisibly; load() returns the restored MLPKriging object.

Examples

f <- function(x) 1 - 1 / 2 * (sin(12 * x) / (1 + x) + 2 * cos(7 * x) * x^5 + 0.7)
X <- as.matrix(seq(0.05, 0.95, length.out = 10))
y <- f(X)

mk <- MLPKriging(
  y, X,
  hidden_dims = c(4L),
  d_out = 1L,
  activation = "tanh",
  kernel = "gauss",
  parameters = list(max_iter_adam = "20", max_iter_bfgs = "10")
)

mk$save("mk.json")
print(load("mk.json"))

Results

* MLPKriging
* data: 10x[0.05,0.95] -> 10x[0.163421,0.976851]
* trend constant (est.): -745.4
* variance (est.): 3.13668e+08
* covariance:
  * kernel: gauss
  * range (est.): 2.88992
  * warpings:
      joint: "mlp_joint(4,1,tanh)"    MLPJoint(1 -> 4 -> 1, 13 params)
  * total warp params: 13
  * fit:
    * objective: LL
    * optim: BFGS+Adam
{
    "F": {
        "base64_data": "AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8=",
        "n_cols": 1,
        "n_rows": 10,
        "type": "mat"
    },
    "M": {
        "base64_data": "yCD5////7z+0UShHkoNVP5mnyuekMtg/Bf7lMaRr4T9VNqam4ZHNP7OXLVK4F7Q/cg8BPFx0oD/rntlbep2SP8snDKUCqJE/MtFqZaUSmj8=",
        "n_cols": 1,
        "n_rows": 10,
        "type": "mat"
    },
    "R": {
        "base64_data": "ON8GAAAA8D/KFKjE+P/vP8mXLf7O/+8/IomFwET/7z9X4qZk6v3vP8CxNwwn++8/AI50jVX27z/Sh3sd6e7vP4eozmWK5O8/i9InaSTX7z/KFKjE+P/vPzjfBgAAAPA/mIeSae3/7z9rtEcdh//vP4ETNmJf/u8/Lb7GNd377z++brimWffvP0wTQR1F8O8/p2YSC0Xm7z+8lpFJQdnvP8mXLf7O/+8/mIeSae3/7z843wYAAADwP0J3bFTT/+8/8gRSx/z+7z/eprEd4/zvPyGT443c+O8/PHdaBFXy7z+CkgjL7OjvP5UPDqqG3O8/IomFwET/7z9rtEcdh//vP0J3bFTT/+8/ON8GAAAA8D9kMkhRp//vPzLm87kv/u8/fgu9C+v67z/RUsVDPvXvPwEDpLDB7O8/L+woQFDh7z9X4qZk6v3vP4ETNmJf/u8/8gRSx/z+7z9kMkhRp//vPzjfBgAAAPA/NfpI2Gz/7z+lyPeEOf3vP1CjYkbB+O8/iavLMZHx7z+uaYAmeefvP8CxNwwn++8/Lb7GNd377z/eprEd4/zvPzLm87kv/u8/NfpI2Gz/7z843wYAAADwPxiSgwAt/+8/ZX/cnkL87z9k3QCGv/bvP76hqVtl7u8/AI50jVX27z++brimWffvPyGT443c+O8/fgu9C+v67z+lyPeEOf3vPxiSgwAt/+8/ON8GAAAA8D+U+X9v8v7vP/2tdslx++8/Bfbdsy717z/Sh3sd6e7vP0wTQR1F8O8/PHdaBFXy7z/RUsVDPvXvP1CjYkbB+O8/ZX/cnkL87z+U+X9v8v7vPzjfBgAAAPA/kvFDeMX+7z/rakRW4PrvP4eozmWK5O8/p2YSC0Xm7z+CkgjL7OjvPwEDpLDB7O8/iavLMZHx7z9k3QCGv/bvP/2tdslx++8/kvFDeMX+7z843wYAAADwP2o6RkOq/u8/i9InaSTX7z+8lpFJQdnvP5UPDqqG3O8/L+woQFDh7z+uaYAmeefvP76hqVtl7u8/Bfbdsy717z/rakRW4PrvP2o6RkOq/u8/ON8GAAAA8D8=",
        "n_cols": 10,
        "n_rows": 10,
        "type": "mat"
    },
    "Rinv": {
        "base64_data": "gNem9OnL80H8hQ4zDtDrwYV6iOYD/uHBVtxl8lgRycHb+V+ta86/QR+xE8GZL9FBa/eb3iSuxkE137eIw4CwwVyUhjZ6/8rBONLrh0JruEHyhQ4zDtDrweS456VTlflB0vmhv68I4cHTxu71eG3SwWSYMGGz+avBtHWs5+Uct0HuT/c1jvC5QWJTwxZj2n1BpMi5quXbs8HcXShO/FCYQZ96iOYD/uHBuvmhv68I4cEZMUsi4ob9QZbE8iGP2tnBnMb4VC6r0sFN39W7n6/DwUvAlOya9I3BSpaKPqV+tUH90A7xiIe2QUx9RoLYE67Bj9xl8lgRycGWxu71eG3Swb/E8iGP2tnBZA4GwWoG/UF0NtI/hI7hwa/gise3DtzBGS2PsAT5xsGMJbgk+8W+QYyH5sidiM5B8y7+bQlavsF/+V+ta86/QaWXMGGz+avBnMb4VC6r0sF1NtI/hI7hwYzAJTHgz/lBZslaVSZu5cGgX07UHyvYwcW3wnh9cqFB7+LdvO8J0UEvGZ+mB3K4wVaxE8GZL9FB7XSs5+Uct0EM39W7n6/DwcLgise3DtzBZMlaVSZu5cEO/8JnK4r5QV7CPzDRHuLBX0ZV3JPyzcHisHEpbiGxQXHmmWIkj6RBbPib3iSuxkEdTvc1jvC5QbzOlOya9I3BOSyPsAT5xsHDX07UHyvYwVfCPzDRHuLBAN7KhQNj+kGkA9FDa2LkwXf1qLwnKdfBXtPg2kjHykEw4beIw4Cwwd13wxZj2n1B1pSKPqV+tUHDJrgk+8W+Qaa3wnh9cqFBQEZV3JPyzcGrA9FDa2LkwYQLdhRI0/VB7X9wB8Qb68EYXWKwryPGQb+UhjZ6/8rB+Ma5quXbs8Eg0A7xiIe2QemH5sidiM5BwOLdvO8J0UHysHEpbiGxQYX1qLwnKdfB7X9wB8Qb68G1B3p5J7H0QQB+PTu1Jd3BVNLrh0JruEEaXChO/FCYQXR8RoLYE67BLy/+bQlavsE9GZ+mB3K4wbHmmWIkj6RBZ9Pg2kjHykEaXWKwryPGQf99PTu1Jd3BibdHGOjnx0E=",
        "n_cols": 10,
        "n_rows": 10,
        "type": "mat"
    },
    "T": {
        "base64_data": "nG8DAAAA8D+UNaHE+P/vP5y4Jv7O/+8/Eqp+wET/7z+SA6Bk6v3vP5LTMAwn++8/27BtjVX27z9FrHQd6e7vPzXPx2WK5O8/GfwgaSTX7z8AAAAAAAAAAELc1tiPg2U/gnmQA2IAfD+bsRz6sV2LPxjVjweLGJc/rL7arzWboT9CGb9/4dmoPy3CI1PQgrA/CQZ23e3otD/IkMayqnm5PwAAAAAAAAAAAAAAAAAAAAA+4O014vQDPz0trXws2xs/XKFu/awVMT/a0LBe1iRCPxO30J1oGVE/HdxstMsmXT8vlRIO6NlmP1dcRNMKtXA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXbIU+fJlDj+QGO9sSjArP0zUgu/unkE/3pJhiFSTUj+UA6yja/RgPyb9ZkkByWs/IhB1DpbvdD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFvddugaRQ4/DFmxVOJNJz9XU6rI9M06Pzhk6DeqoUk/Ue2bfZCZVT+Vww6TqJNgPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADInFTIRsYGPw+ZMj8SQh0/0x0/3fhDLj8ggKoiubo6P9tK8AgJLkU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhuVPRChXAj/XxYdI1NoUP5W986qvjiQ/al+txQqrMT8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANJSi85AUAE/ZaJh2uAnFD8YCOe9AZEkPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwQ/ffrcCP9mhcEwK0hY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdn79TfSCAj8=",
        "n_cols": 10,
        "n_rows": 10,
        "type": "mat"
    },
    "X": {
        "base64_data": "gDjZRDppaL+I7UMwW6WFv6ikDNJKSJe/2M/NanpMpb9c98x0AHSxv+ROY1quN7q/GqlQ5C1bwr9QQvljj0nIv/YjCiq1sc6/NiYYyamv0r8=",
        "n_cols": 1,
        "n_rows": 10,
        "type": "mat"
    },
    "X_raw": {
        "base64_data": "mpmZmZmZqT8zMzMzMzPDPwAAAAAAANA/ZmZmZmZm1j/MzMzMzMzcP5mZmZmZmeE/zczMzMzM5D8AAAAAAADoPzMzMzMzM+s/ZmZmZmZm7j8=",
        "n_cols": 1,
        "n_rows": 10,
        "type": "mat"
    },
    "activation": "tanh",
    "adam_lr": 0.001,
    "beta": {
        "base64_data": "0b44QjNLh8A=",
        "size": 1,
        "type": "colvec"
    },
    "centerX": {
        "base64_data": "AAAAAAAAAAA=",
        "size": 1,
        "type": "rowvec"
    },
    "centerY": 0.0,
    "circ": {
        "base64_data": "7X12+nqa8z8=",
        "n_cols": 1,
        "n_rows": 1,
        "type": "mat"
    },
    "content": "MLPKriging",
    "covType": "gauss",
    "dX": {
        "base64_data": "AAAAAAAAAADQPhs+GRZ/P5h9cYkjO5Q/UDyAxubFoz+YLaaitrCwPyCFPIhkdLk/OEQ9+4j5wT9u3eV66ufHPxS/9kAQUM4/xXOOVNd+0j/QPhs+GRZ/PwAAAAAAAAAAyFvVczrriD/sqHk9R8afP1bziB2qfq0/M9Fa9AKDtz9Cakwx2ADBP3gD9bA578Y/HuUFd19XzT/KBpbvfgLSP5h9cYkjO5Q/yFvVczrriD8AAAAAAAAAAAj7jgOqUJM/ZJyTgNtDpz+6JeClm2W0PwopHhRJ5L4/u623CYZgxT9hj8jPq8jLP+xb9xslO9E/UDyAxubFoz/sqHk9R8afPwj7jgOqUJM/AAAAAAAAAADAPZj9DDebP/DN+EniIq8/SGo6kx4Quj9azkXJcPbCPwCwVo+WXsk/O2y+exoG0D+YLaaitrCwP1bziB2qfq0/ZJyTgNtDpz/APZj9DDebPwAAAAAAAAAAEK8sy1uHoT/YWtRTW0KzP0SNJVMeH78/SKij77T3xT++0MlXU6XMPyCFPIhkdLk/M9Fa9AKDtz+6JeClm2W0P/DN+EniIq8/EK8sy1uHoT8AAAAAAAAAAKAGfNxa/aQ/vDWPbXBbtj+EfNj83ZXBP/qk/mR8Q8g/OEQ9+4j5wT9Cakwx2ADBPwopHhRJ5L4/SGo6kx4Quj/YWtRTW0KzP6AGfNxa/aQ/AAAAAAAAAADYZKL+hbmnP7j1cosOrbg/UqPfrSUEwz9u3eV66ufHP3gD9bA578Y/u623CYZgxT9azkXJcPbCP0SNJVMeH78/vDWPbXBbtj/YZKL+hbmnPwAAAAAAAAAAmIZDGJegqT84FG5ciCu6PxS/9kAQUM4/HuUFd19XzT9hj8jPq8jLPwCwVo+WXsk/SKij77T3xT+EfNj83ZXBP7j1cosOrbg/mIZDGJegqT8AAAAAAAAAANihmKB5tqo/xXOOVNd+0j/KBpbvfgLSP+xb9xslO9E/O2y+exoG0D++0MlXU6XMP/qk/mR8Q8g/UqPfrSUEwz84FG5ciCu6P9ihmKB5tqo/AAAAAAAAAAA=",
        "n_cols": 100,
        "n_rows": 1,
        "type": "mat"
    },
    "d_out": 1,
    "est_beta": true,
    "est_sigma2": true,
    "est_theta": true,
    "fitted": true,
    "hidden_dims": [
        4
    ],
    "logdet": -173.49686784509566,
    "max_iter_adam": 20,
    "max_iter_bfgs": 10,
    "maxdX": {
        "base64_data": "xXOOVNd+0j8=",
        "size": 1,
        "type": "colvec"
    },
    "normalize": false,
    "objective": "LL",
    "optim": "BFGS+Adam",
    "regmodel": "constant",
    "scaleX": {
        "base64_data": "AAAAAAAA8D8=",
        "size": 1,
        "type": "rowvec"
    },
    "scaleY": 1.0,
    "sigma2": 313667781.65407926,
    "star": {
        "base64_data": "",
        "n_cols": 0,
        "n_rows": 0,
        "type": "mat"
    },
    "theta": {
        "base64_data": "thCyKY0eB0A=",
        "size": 1,
        "type": "colvec"
    },
    "version": 3,
    "warp_params": {
        "base64_data": "epv7Dny26D/vfSN6TK32P+YVuo/cH+S/UdGz0M7m2z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnBmMNZkvW/Hg2y61xP6T/vDEhtkWLgv8RIBk0C4vC/AAAAAAAAAAA=",
        "size": 13,
        "type": "colvec"
    },
    "y": {
        "base64_data": "ksKL8k5k2D+AONXWmP/MPxy7GM7N/+I/LMptiF1C7z+Ij0P04urtP2DG2LCezuI/oO0zVVVv1z8gHOMYbUnaP4rYpXvY3to/uLESnvbqxD8=",
        "size": 10,
        "type": "colvec"
    },
    "z": {
        "base64_data": "Cw8SzD9Oh0DnmPXMaPBMwOYEHPOJDdBA8vcLcvX0tMC7Oo2xnADTwFkpWu51bKXACU38odsq2ECEd35jZ1LfQEgnjr1TBo1ArdPedYrG28A=",
        "size": 10,
        "type": "colvec"
    }
}