diff --git a/.github/workflows/pyliny.yaml b/.github/workflows/pyliny.yaml
new file mode 100644
index 0000000..3f70566
--- /dev/null
+++ b/.github/workflows/pyliny.yaml
@@ -0,0 +1,35 @@
+name: Code Quality
+
+on:
+ push:
+ branches: [ main, develop ]
+ pull_request:
+ branches: [ main, develop ]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up Python 3.10
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.10"
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install pre-commit
+
+ - name: Cache pre-commit environment
+ uses: actions/cache@v3
+ with:
+ path: ~/.cache/pre-commit
+ key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
+ restore-keys: |
+ pre-commit-${{ runner.os }}-
+
+ - name: Run pre-commit hooks
+ run: |
+ pre-commit run --all-files --show-diff-on-failure
diff --git a/.github/workflows/pypi.yaml b/.github/workflows/pypi.yaml
new file mode 100644
index 0000000..0039ec9
--- /dev/null
+++ b/.github/workflows/pypi.yaml
@@ -0,0 +1,97 @@
+name: Build and publish python package
+
+on:
+ push:
+ tags:
+ - "v*"
+ workflow_dispatch:
+ inputs:
+ version:
+ description: 'Version to publish (e.g., 0.1.0)'
+ required: false
+ type: string
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write # Required for creating GitHub releases
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Fetch all history for tags
+
+ - name: Set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.10"
+
+ - name: Extract version from tag or input
+ id: get_version
+ run: |
+ if [ "${{ github.event_name }}" == "workflow_dispatch" ] && [ -n "${{ github.event.inputs.version }}" ]; then
+ echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
+ elif [ -n "${{ github.ref_name }}" ]; then
+ # Extract version from tag (e.g., v0.1.0 -> 0.1.0)
+ VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//')
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
+ else
+ # Fallback: extract from pyproject.toml
+ VERSION=$(grep -E '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/')
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
+ fi
+ echo "Publishing version: $(cat $GITHUB_OUTPUT | grep version | cut -d'=' -f2)"
+
+ - name: Verify version matches pyproject.toml
+ run: |
+ PUBLISH_VERSION="${{ steps.get_version.outputs.version }}"
+ FILE_VERSION=$(grep -E '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/')
+ if [ "$PUBLISH_VERSION" != "$FILE_VERSION" ]; then
+ echo "Error: Version mismatch!"
+ echo "Tag/Input version: $PUBLISH_VERSION"
+ echo "pyproject.toml version: $FILE_VERSION"
+ exit 1
+ fi
+ echo "✓ Version verified: $PUBLISH_VERSION"
+
+ - name: Install build tools
+ run: |
+ python -m pip install --upgrade pip
+ pip install build twine
+
+ - name: Build package
+ run: python -m build
+
+ - name: Check package contents
+ run: |
+ echo "Built files:"
+ ls -lh dist/
+ echo ""
+ echo "Package info:"
+ python -m twine check dist/*
+
+ - name: Publish to PyPI
+ env:
+ TWINE_USERNAME: __token__
+ TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
+ run: twine upload dist/*
+
+ - name: Create GitHub Release
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
+ uses: softprops/action-gh-release@v1
+ with:
+ tag_name: ${{ github.ref_name }}
+ name: Release ${{ steps.get_version.outputs.version }}
+ body: |
+ ## Release ${{ steps.get_version.outputs.version }}
+
+ Published to PyPI: https://pypi.org/project/spherical-deepkriging/${{ steps.get_version.outputs.version }}/
+
+ ### Installation
+ ```bash
+ pip install spherical-deepkriging==${{ steps.get_version.outputs.version }}
+ ```
+ draft: false
+ prerelease: false
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..fa1cf72
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,41 @@
+name: Test
+
+on:
+ push:
+ branches: ["main", "develop"]
+ pull_request:
+ branches: ["main", "develop"]
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ["3.10"]
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v5
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -e ".[dev,mrts]"
+ - name: Test with pytest
+ run: |
+ pytest tests/ \
+ -m "not slow and not integration" \
+ --cov=spherical_deepkriging \
+ --cov-config=.coveragerc \
+ --cov-fail-under=90 \
+ --cov-report=xml \
+ --cov-report=term \
+ -v --tb=short
+ env:
+ PYTHONPATH: ${{ github.workspace }}
+ - name: Upload coverage reports to Codecov
+ uses: codecov/codecov-action@v5
+ with:
+ token: ${{ secrets.CODECOV_TOKEN }}
diff --git a/.gitignore b/.gitignore
index a07616f..10353e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -152,3 +152,6 @@ dmypy.json
# Cython debug symbols
cython_debug/
+
+# Coverage configuration
+.coveragerc
diff --git a/=0.4.0, b/=0.4.0,
new file mode 100644
index 0000000..e69de29
diff --git a/MANIFEST.in b/MANIFEST.in
index 400e878..d6e4a57 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -3,4 +3,3 @@ global-exclude *.so *.pyd *.dylib *.dll *.a *.lib
# Include C++ sources for the spherical basis extension in sdist builds.
recursive-include spherical_deepkriging/basis_functions/mrts_sphere/cpp_extensions *.cpp *.h *.hpp *.txt *.py CMakeLists.txt
-
diff --git a/MIGRATION_NOTE.txt b/MIGRATION_NOTE.txt
deleted file mode 100644
index 238c272..0000000
--- a/MIGRATION_NOTE.txt
+++ /dev/null
@@ -1 +0,0 @@
-Public repo bootstrap location created by automation.
diff --git a/Makefile b/Makefile
index daa0627..0d6fe1c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,8 @@
SHELL := /bin/bash
-EXECUTABLE := poetry run
+CONDA_BIN ?= /home/egpivo/miniconda3/bin/conda
+TEST_ENV ?= spherical-deepkriging
-.PHONY: clean install-dev setup-jupyter-kernel build-spherical-cpp test run-local-jupyter help
+.PHONY: clean install-dev install-test-deps setup-jupyter-kernel build-spherical-cpp test run-local-jupyter help
## Clean up temporary files
clean:
@@ -17,13 +18,19 @@ clean:
## Install development dependencies
install-dev:
@echo "Installing development dependencies..."
- @$(SHELL) envs/conda/build_conda_env.sh -c spherical-deepkriging && \
+ @$(SHELL) envs/conda/build_conda_env.sh -c $(TEST_ENV) && \
+ $(MAKE) install-test-deps && \
$(MAKE) setup-jupyter-kernel
+## Install test dependencies in the Conda environment
+install-test-deps:
+ @echo "Installing test dependencies into $(TEST_ENV)..."
+ @$(CONDA_BIN) run -n $(TEST_ENV) python -m pip install -e ".[dev]"
+
## Install Jupyter dependencies and register kernel
setup-jupyter-kernel:
@echo "Setting up Jupyter kernel..."
- @$(SHELL) envs/jupyter/setup_jupyter_kernel.sh -k spherical-deepkriging
+ @$(SHELL) envs/jupyter/setup_jupyter_kernel.sh -k $(TEST_ENV)
## Build spherical basis C++ extension (mrts_sphere)
build-spherical-cpp:
@@ -37,7 +44,8 @@ build-spherical-cpp:
## Run tests
test:
@echo "Running tests..."
- @$(EXECUTABLE) pytest --cov=spherical_deepkriging
+ @$(CONDA_BIN) run -n $(TEST_ENV) python -c "import pytest, pytest_cov" >/dev/null 2>&1 || (echo "Missing test dependencies in Conda env $(TEST_ENV). Run: make install-test-deps" && exit 1)
+ @PYTHONPATH=. $(CONDA_BIN) run -n $(TEST_ENV) python -m pytest --cov=spherical_deepkriging --cov-config=.coveragerc
## Start Jupyter server locally
run-local-jupyter:
@@ -49,8 +57,9 @@ help:
@echo "Available targets:"
@echo " clean : Clean up temporary files"
@echo " install-dev : Install dependencies, build package/C++ extension, and setup Jupyter kernel"
+ @echo " install-test-deps : Install pytest/coverage tooling into the Conda env"
@echo " setup-jupyter-kernel : Install Jupyter deps and register kernel for spherical-deepkriging"
- @echo " build-spherical-cpp : Build spherical basis C++ extension"
+ @echo " build-spherical-cpp : Build spherical basis C++ extension"
@echo " test : Run tests"
@echo " run-local-jupyter : Start Jupyter server locally"
- @echo " help : Display this help message"
+ @echo " help : Display this help message"
diff --git a/README.md b/README.md
index 4fa70ed..ee715eb 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
# Spherical DeepKriging
+[](https://github.com/STLABTW/spherical-deepkriging/actions)
+[](https://codecov.io/github/STLABTW/spherical-deepkriging)
A deep learning framework for spatial prediction on the sphere, combining DeepKriging with spherical harmonic basis functions (MRTS-sphere), Wendland basis, and Universal Kriging.
@@ -20,7 +22,7 @@ The package currently provides the following basis families:
The default feedforward hidden-block design is illustrated below:
-
+
---
diff --git a/envs/jupyter/utils.sh b/envs/jupyter/utils.sh
index 61d85ca..2cab797 100644
--- a/envs/jupyter/utils.sh
+++ b/envs/jupyter/utils.sh
@@ -28,7 +28,8 @@ update_conda_env_path() {
check_kernel_availability() {
local KERNEL_NAME=$1
- local KERNEL_PATH=$(jupyter kernelspec list | grep -o "^${KERNEL_NAME} .*" | cut -d' ' -f2)
+ local KERNEL_PATH
+ KERNEL_PATH=$(jupyter kernelspec list 2>/dev/null | awk -v k="${KERNEL_NAME}" '$1==k {print $2; exit}')
if [ -z "${KERNEL_PATH}" ]; then
echo -e "${FG_RED}Kernel '${KERNEL_NAME}' is not available${FG_RESET}"
@@ -48,7 +49,7 @@ set_jupyter_kernel_path() {
ipython kernel install --name "${KERNEL_NAME}" --user
fi
- KERNEL_PATH=$(jupyter kernelspec list | grep -o "^${KERNEL_NAME} .*" | cut -d' ' -f2)
+ KERNEL_PATH=$(jupyter kernelspec list 2>/dev/null | awk -v k="${KERNEL_NAME}" '$1==k {print $2; exit}')
if [ -n "${KERNEL_PATH}" ]; then
KERNEL_DIR="${KERNEL_PATH}"
diff --git a/examples/README.md b/examples/README.md
index 1ddb7e4..219abba 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -31,12 +31,67 @@ conda activate spherical-deepkriging
cd examples/simulation
```
-Main scripts:
-- `run_stdscaler_nonoise_50reps.py`
-- `run_stdscaler_outliers_50reps.py`
+### Reproducing Simulation Experiment
-These scripts checkpoint progress and can be resumed safely.
+The `examples/simulation/` folder contains self-contained Python scripts and output notebooks for reproducing the 50-repeat simulation study used in the paper. Each script runs a full experiment, checkpoints after every repeat, and can be safely interrupted and resumed.
-Pre-executed output notebooks are also included in `examples/simulation/` for result inspection.
+#### Experiment scripts
+| Script | Scenario | Output checkpoint |
+|--------|----------|-------------------|
+| `run_stdscaler_nonoise_50reps.py` | Local plus nonstationary signal, no noise | `results_sphere_stdscaler_nonoise_50reps_checkpoint.csv` |
+| `run_stdscaler_outliers_50reps.py` | Local plus nonstationary signal with outliers | `results_sphere_stdscaler_outliers_50reps_checkpoint.csv` |
+
+Each script benchmarks the following models over 50 random seeds:
+
+- `OLS_wendland` — Ordinary Least Squares with Wendland basis
+- `OLS_sphere` — Ordinary Least Squares with spherical harmonic (MRTS-sphere) basis
+- `DeepKriging_wendland` — DeepKriging with Wendland basis
+- `DeepKriging_mrts` — DeepKriging with MRTS basis
+- `DeepKriging_sphere` — DeepKriging with MRTS-sphere basis (MSE loss)
+- `DeepKriging_sphere_Huber` — DeepKriging with MRTS-sphere basis (Huber loss, robust to outliers)
+- `UniversalKriging` — Universal Kriging with MRTS-sphere basis
+
+#### How to run
+
+Make sure the Conda environment is activated, then navigate to the Rerun folder and run:
+
+```bash
+conda activate deepkriging
+cd notebook/simulation/Rerun
+
+# No-noise scenario
+python run_stdscaler_nonoise_50reps.py
+
+# Outliers scenario
+python run_stdscaler_outliers_50reps.py
+```
+
+Each script:
+- Runs 50 independent repeats with different random seeds.
+- Saves a checkpoint CSV after every completed repeat — safe to kill (`Ctrl+C`) and re-run; already-completed repeats are skipped automatically.
+- Prints a per-repeat results table (MSPE, RMSE, MAE, R², Time) to stdout.
+- Prints a final mean±std summary table across all 50 repeats at the end.
+
+#### Key hyperparameters (configured inside each script)
+
+| Parameter | Value |
+|-----------|-------|
+| Training samples | 2500 |
+| Repeats | 50 |
+| Huber delta | 1.345 |
+| Knot / order budget | 1400 |
+| Batch size | see script |
+
+#### Output notebooks
+
+Pre-executed output notebooks are included in `examples/simulation/Rerun/` for reference:
+
+| Notebook | Description |
+|----------|-------------|
+| `simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb` | GP signal, no noise |
+| `simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb` | GP signal with noise |
+| `simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb` | GP signal with outliers |
+| `simulation_spherical_nn_sim_RSHC_c15_noGP_pure_50reps_out.ipynb` | Local extreme signal, no noise |
+| `simulation_spherical_nn_sim_RSHC_c15_noise_noGP_50reps_out.ipynb` | Local extreme signal with noise |s
\ No newline at end of file
diff --git a/notebook/real_data/experiment_deepkriging_precipitation.ipynb b/examples/real_data/experiment_deepkriging_precipitation.ipynb
similarity index 78%
rename from notebook/real_data/experiment_deepkriging_precipitation.ipynb
rename to examples/real_data/experiment_deepkriging_precipitation.ipynb
index 493861e..ad85eb7 100644
--- a/notebook/real_data/experiment_deepkriging_precipitation.ipynb
+++ b/examples/real_data/experiment_deepkriging_precipitation.ipynb
@@ -19,7 +19,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"id": "73a5f785",
"metadata": {
"execution": {
@@ -45,7 +45,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": null,
"id": "b67cc84b",
"metadata": {
"execution": {
@@ -63,29 +63,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1769072522.816512 1882549 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1769072522.820591 1882549 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1769072522.832091 1882549 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769072522.832111 1882549 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769072522.832113 1882549 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769072522.832114 1882549 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/user/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
- " from .autonotebook import tqdm as notebook_tqdm\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"import multiprocessing as mp\n",
"if mp.get_start_method(allow_none=True) is None:\n",
@@ -139,7 +117,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": null,
"id": "e5802f99",
"metadata": {
"execution": {
@@ -205,7 +183,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": null,
"id": "46760605",
"metadata": {
"execution": {
@@ -223,21 +201,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
"from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer\n",
@@ -267,7 +231,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": null,
"id": "30fcd1bf",
"metadata": {
"execution": {
@@ -556,7 +520,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": null,
"id": "c046277c",
"metadata": {
"execution": {
@@ -615,7 +579,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"id": "21e69d9f",
"metadata": {
"execution": {
@@ -650,7 +614,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": null,
"id": "4c4156ca",
"metadata": {
"execution": {
@@ -668,168 +632,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769072772.763414 1882549 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 17712 MB memory: -> device: 0, name: NVIDIA RTX 4000 Ada Generation, pci bus id: 0000:70:00.0, compute capability: 8.9\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1769072777.830547 1883435 service.cc:152] XLA service 0x7c6518002a40 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1769072777.830612 1883435 service.cc:160] StreamExecutor device (0): NVIDIA RTX 4000 Ada Generation, Compute Capability 8.9\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769072778.046672 1883435 cuda_dnn.cc:529] Loaded cuDNN version 90300\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769072778.730948 1883435 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Tuning order parameter for OLS_sphere\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.0701 0.2719 0.1001 0.0643 \n",
- "100 0.0667 0.2656 0.0977 0.1075 \n",
- "200 0.0634 0.2584 0.0949 0.1552 \n",
- "500 0.0575 0.2445 0.0885 0.2436 \n",
- "700 0.0551 0.2392 0.0856 0.2759 \n",
- "1000 0.0524 0.2299 0.0798 0.3309 \n",
- "1400 0.0495 0.2207 0.0741 0.3834 *\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.0145 0.0946 0.0258 0.8867 \n",
- "100 0.0139 0.0907 0.0214 0.8959 \n",
- "200 0.0115 0.0818 0.0193 0.9154 *\n",
- "500 0.0129 0.0888 0.0237 0.9001 \n",
- "700 0.0116 0.0873 0.0228 0.9035 \n",
- "1000 0.0153 0.1044 0.0272 0.8620 \n",
- "1400 0.0134 0.0957 0.0197 0.8842 \n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.0039 0.0884 0.0224 0.9011 \n",
- "100 0.0038 0.0866 0.0208 0.9050 \n",
- "200 0.0035 0.0838 0.0196 0.9111 \n",
- "500 0.0033 0.0835 0.0174 0.9118 *\n",
- "700 0.0035 0.0839 0.0172 0.9108 \n",
- "1000 0.0040 0.0966 0.0177 0.8819 \n",
- "1400 0.0038 0.0917 0.0166 0.8937 \n",
- "\n",
- "Tuning order parameter for UniversalKriging\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1172, sigma²=0.1303, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1132, sigma²=0.1258, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1118, sigma²=0.1243, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0979, sigma²=0.1090, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0931, sigma²=0.1036, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0865, sigma²=0.0961, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0784, sigma²=0.0869, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.0117 0.0865 0.0156 0.9054 *\n",
- "100 0.0117 0.0865 0.0156 0.9053 \n",
- "200 0.0117 0.0865 0.0156 0.9053 \n",
- "500 0.0117 0.0865 0.0156 0.9053 \n",
- "700 0.0117 0.0865 0.0156 0.9052 \n",
- "1000 0.0117 0.0866 0.0156 0.9052 \n",
- "1400 0.0117 0.0866 0.0156 0.9051 \n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# OLS_wendland\n",
"parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed)\n",
@@ -1017,7 +820,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": null,
"id": "af964066",
"metadata": {
"execution": {
@@ -1035,25 +838,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | RMSE | MAE | R² | Times |\n",
- "|--------------------------|---------|--------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 0.2736 | 0.1023 | 0.0525 | 57.0352 |\n",
- "| OLS_sphere | 1400 | 0.2207 | 0.0741 | 0.3834 | 7.6942 |\n",
- "| DeepKriging_wendland | -- | 0.2335 | 0.0925 | 0.31 | 629.686 |\n",
- "| DeepKriging_sphere | 200 | 0.0818 | 0.0193 | 0.9154 | 479.752 |\n",
- "| DeepKriging_sphere_Huber | 500 | 0.0835 | 0.0174 | 0.9118 | 412.297 |\n",
- "| UniversalKriging | 50 | 0.0865 | 0.0156 | 0.9054 | 457.656 |\n",
- "\n",
- "🏆 Best Model: DeepKriging_sphere (RMSE: 0.0818)\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"result_table = []\n",
"for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
@@ -1108,4 +893,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
-}
\ No newline at end of file
+}
diff --git a/notebook/real_data/experiment_deepkriging_temperature.ipynb b/examples/real_data/experiment_deepkriging_temperature.ipynb
similarity index 79%
rename from notebook/real_data/experiment_deepkriging_temperature.ipynb
rename to examples/real_data/experiment_deepkriging_temperature.ipynb
index 3a262f2..c8b2258 100644
--- a/notebook/real_data/experiment_deepkriging_temperature.ipynb
+++ b/examples/real_data/experiment_deepkriging_temperature.ipynb
@@ -19,7 +19,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"id": "73a5f785",
"metadata": {
"execution": {
@@ -63,29 +63,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1769063303.671989 1684930 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1769063303.676881 1684930 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1769063303.690927 1684930 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769063303.690955 1684930 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769063303.690956 1684930 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769063303.690957 1684930 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/user/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
- " from .autonotebook import tqdm as notebook_tqdm\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"import multiprocessing as mp\n",
"if mp.get_start_method(allow_none=True) is None:\n",
@@ -143,7 +121,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": null,
"id": "e5802f99",
"metadata": {
"execution": {
@@ -209,7 +187,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": null,
"id": "46760605",
"metadata": {
"execution": {
@@ -227,21 +205,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
"from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer\n",
@@ -271,7 +235,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": null,
"id": "30fcd1bf",
"metadata": {
"execution": {
@@ -605,7 +569,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": null,
"id": "c046277c",
"metadata": {
"execution": {
@@ -664,7 +628,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"id": "21e69d9f",
"metadata": {
"execution": {
@@ -699,7 +663,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": null,
"id": "4c4156ca",
"metadata": {
"execution": {
@@ -717,168 +681,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769063562.942254 1684930 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 17712 MB memory: -> device: 0, name: NVIDIA RTX 4000 Ada Generation, pci bus id: 0000:70:00.0, compute capability: 8.9\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1769063567.562337 1686188 service.cc:152] XLA service 0x7c85cc089d50 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1769063567.562414 1686188 service.cc:160] StreamExecutor device (0): NVIDIA RTX 4000 Ada Generation, Compute Capability 8.9\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769063567.824978 1686188 cuda_dnn.cc:529] Loaded cuDNN version 90300\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769063568.473334 1686188 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Tuning order parameter for OLS_sphere\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 25.1212 5.0502 3.5395 0.9355 \n",
- "100 18.5157 4.3476 3.0420 0.9522 \n",
- "200 10.0154 3.1976 2.1803 0.9741 \n",
- "500 5.7575 2.4136 1.5773 0.9853 \n",
- "700 4.6689 2.1885 1.3856 0.9879 \n",
- "1000 3.7289 1.9622 1.2252 0.9903 \n",
- "1400 2.8940 1.7436 1.0747 0.9923 *\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.3444 0.5905 0.3627 0.9991 \n",
- "100 0.3196 0.5689 0.3213 0.9992 \n",
- "200 0.2913 0.5395 0.3152 0.9993 \n",
- "500 0.1866 0.4282 0.2294 0.9995 \n",
- "700 0.2541 0.4971 0.3033 0.9994 \n",
- "1000 0.2545 0.4945 0.2861 0.9994 \n",
- "1400 0.1530 0.3850 0.1894 0.9996 *\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.1295 0.5743 0.3050 0.9992 \n",
- "100 0.0976 0.4894 0.2666 0.9994 *\n",
- "200 0.1185 0.5495 0.2994 0.9992 \n",
- "500 0.1075 0.5102 0.2895 0.9993 \n",
- "700 0.1434 0.6126 0.3395 0.9991 \n",
- "1000 0.0977 0.4905 0.2581 0.9994 \n",
- "1400 0.1295 0.5644 0.3301 0.9992 \n",
- "\n",
- "Tuning order parameter for UniversalKriging\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=5.8652, sigma²=259.3483, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=5.1354, sigma²=226.6249, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=6.0789, sigma²=266.2976, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.1804, sigma²=51.1214, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7164, sigma²=30.7494, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5289, sigma²=22.4819, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3618, sigma²=15.1184, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.2134 0.4693 0.2241 0.9994 \n",
- "100 0.2134 0.4693 0.2241 0.9994 \n",
- "200 0.2134 0.4693 0.2241 0.9994 *\n",
- "500 0.2134 0.4692 0.2241 0.9994 \n",
- "700 0.2134 0.4693 0.2239 0.9994 \n",
- "1000 0.2134 0.4693 0.2239 0.9994 \n",
- "1400 0.2134 0.4695 0.2243 0.9994 \n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# OLS_wendland\n",
"parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed)\n",
@@ -1066,7 +869,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": null,
"id": "af964066",
"metadata": {
"execution": {
@@ -1084,25 +887,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | RMSE | MAE | R² | Times |\n",
- "|--------------------------|---------|---------|---------|--------|----------|\n",
- "| OLS_wendland | -- | 16.2453 | 12.4979 | 0.3324 | 56.8078 |\n",
- "| OLS_sphere | 1400 | 1.7436 | 1.0747 | 0.9923 | 7.5642 |\n",
- "| DeepKriging_wendland | -- | 12.785 | 7.7603 | 0.5865 | 686.629 |\n",
- "| DeepKriging_sphere | 1400 | 0.385 | 0.1894 | 0.9996 | 694.225 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.4894 | 0.2666 | 0.9994 | 308.307 |\n",
- "| UniversalKriging | 200 | 0.4693 | 0.2241 | 0.9994 | 448.83 |\n",
- "\n",
- "🏆 Best Model: DeepKriging_sphere (RMSE: 0.3850)\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"result_table = []\n",
"for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
diff --git a/notebook/real_data/experiment_deepkriging_temperature_repeat_multitime.ipynb b/examples/real_data/experiment_deepkriging_temperature_repeat_multitime.ipynb
similarity index 81%
rename from notebook/real_data/experiment_deepkriging_temperature_repeat_multitime.ipynb
rename to examples/real_data/experiment_deepkriging_temperature_repeat_multitime.ipynb
index da93dfa..2d832b3 100644
--- a/notebook/real_data/experiment_deepkriging_temperature_repeat_multitime.ipynb
+++ b/examples/real_data/experiment_deepkriging_temperature_repeat_multitime.ipynb
@@ -19,7 +19,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": null,
"id": "73a5f785",
"metadata": {
"execution": {
@@ -37,15 +37,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Project root added: /home/hhuscout/projects/deepkriging-sphere\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore', category=UserWarning)\n",
@@ -59,7 +51,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": null,
"id": "b67cc84b",
"metadata": {
"execution": {
@@ -135,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": null,
"id": "e5802f99",
"metadata": {
"execution": {
@@ -201,7 +193,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": null,
"id": "46760605",
"metadata": {
"execution": {
@@ -251,7 +243,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": null,
"id": "30fcd1bf",
"metadata": {
"execution": {
@@ -520,7 +512,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": null,
"id": "a539a8b1",
"metadata": {},
"outputs": [],
@@ -574,7 +566,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": null,
"id": "c046277c",
"metadata": {
"execution": {
@@ -638,173 +630,7 @@
"execution_count": null,
"id": "2a9c97e1",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 01 | Path: data/data_s_p_date01_hour01.csv\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 01 - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 25.0272 25.4502 \n",
- " 100 18.3078 18.6422 \n",
- " 200 10.4081 10.6463 \n",
- " 500 5.6544 5.8105 \n",
- " 700 4.7456 4.8653 \n",
- " 1000 3.7859 3.8953 \n",
- " 1400 3.1424 3.2273 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 1.1193 1.1829 \n",
- " 100 0.7224 0.7580 \n",
- " 200 0.4320 0.4350 \n",
- " 500 0.3623 0.3718 \n",
- " 700 0.3040 0.3153 *\n",
- " 1000 0.3264 0.3263 \n",
- " 1400 0.3528 0.3674 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.3264 0.3393 \n",
- " 100 0.2400 0.2449 \n",
- " 200 0.2909 0.2951 \n",
- " 500 0.1928 0.1992 \n",
- " 700 0.2505 0.2605 \n",
- " 1000 0.1547 0.1643 *\n",
- " 1400 0.1724 0.1854 \n",
- " Best order: 1000\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1494 0.3965 \n",
- " 100 0.1105 0.2782 \n",
- " 200 0.0936 0.2306 \n",
- " 500 0.0786 0.1922 \n",
- " 700 0.1034 0.2464 \n",
- " 1000 0.0723 0.1846 *\n",
- " 1400 0.0985 0.2489 \n",
- " Best order: 1000\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=6.1153, sigma²=270.4041, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=4.0843, sigma²=180.2858, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=5.3579, sigma²=234.7950, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.0990, sigma²=47.5551, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7111, sigma²=30.5608, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6378, sigma²=27.1062, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3978, sigma²=16.7173, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.2134 0.2203 \n",
- " 100 0.2134 0.2203 \n",
- " 200 0.2134 0.2202 *\n",
- " 500 0.2134 0.2203 \n",
- " 700 0.2135 0.2203 \n",
- " 1000 0.2134 0.2201 \n",
- " 1400 0.2135 0.2201 \n",
- " Best order: 200\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=5.3579, sigma²=234.7950, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|----------|---------|---------|--------|---------|\n",
- "| OLS_wendland | -- | 263.911 | 16.2453 | 12.4979 | 0.3324 | 10.46s |\n",
- "| OLS_sphere | 1400 | 3.2273 | 1.7965 | 1.0975 | 0.9918 | 8.32s |\n",
- "| DeepKriging_wendland | -- | 180.933 | 13.4511 | 8.5047 | 0.5423 | 227.30s |\n",
- "| DeepKriging_wendland* | -- | 281.222 | 16.7697 | 12.4447 | 0.2887 | 30.30s |\n",
- "| DeepKriging_mrts | 700 | 0.3215 | 0.567 | 0.3406 | 0.9992 | 152.69s |\n",
- "| DeepKriging_sphere | 1000 | 0.2743 | 0.5237 | 0.2973 | 0.9993 | 53.98s |\n",
- "| DeepKriging_sphere_Huber | 1000 | 0.2618 | 0.5116 | 0.2986 | 0.9993 | 69.10s |\n",
- "| UniversalKriging | 200 | 0.2202 | 0.4693 | 0.2242 | 0.9994 | 216.90s |\n",
- "\n",
- "✅ Completed Hour 01 - Repeat 1/2\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 01 - Repeat 2/2, Seed=1235\n",
- "================================================================================\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.5523, sigma²=110.8832, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|----------|---------|---------|--------|---------|\n",
- "| OLS_wendland | -- | 265.102 | 16.282 | 12.5276 | 0.3296 | 8.34s |\n",
- "| OLS_sphere | 1400 | 3.1455 | 1.7736 | 1.0753 | 0.992 | 5.92s |\n",
- "| DeepKriging_wendland | -- | 185.264 | 13.6112 | 8.8547 | 0.5315 | 225.83s |\n",
- "| DeepKriging_wendland* | -- | 184.195 | 13.5718 | 8.723 | 0.5342 | 56.93s |\n",
- "| DeepKriging_mrts | 700 | 0.3329 | 0.5769 | 0.3394 | 0.9992 | 152.09s |\n",
- "| DeepKriging_sphere | 1000 | 0.1734 | 0.4164 | 0.2126 | 0.9996 | 126.21s |\n",
- "| DeepKriging_sphere_Huber | 1000 | 0.2005 | 0.4478 | 0.2335 | 0.9995 | 90.05s |\n",
- "| UniversalKriging | 200 | 0.2521 | 0.502 | 0.2283 | 0.9994 | 224.14s |\n",
- "\n",
- "✅ Completed Hour 01 - Repeat 2/2\n",
- "\n",
- "================================================================================\n",
- "📊 Summary of repeat experiments for Hour 01\n",
- "================================================================================\n",
- "Selected Best Orders: {'OLS_sphere': 1400, 'DeepKriging_mrts': 700, 'DeepKriging_sphere': 1000, 'DeepKriging_sphere_Huber': 1000, 'UniversalKriging': 200}\n",
- "================================================================================\n",
- "\n",
- "| Model | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|--------------|------------|------------|-----------|\n",
- "| OLS_wendland | 264.51±0.60 | 16.26±0.02 | 12.51±0.01 | 0.33±0.00 |\n",
- "| OLS_sphere | 3.19±0.04 | 1.79±0.01 | 1.09±0.01 | 0.99±0.00 |\n",
- "| DeepKriging_wendland | 183.10±2.17 | 13.53±0.08 | 8.68±0.17 | 0.54±0.01 |\n",
- "| DeepKriging_wendland* | 232.71±48.51 | 15.17±1.60 | 10.58±1.86 | 0.41±0.12 |\n",
- "| DeepKriging_mrts | 0.33±0.01 | 0.57±0.00 | 0.34±0.00 | 1.00±0.00 |\n",
- "| DeepKriging_sphere | 0.22±0.05 | 0.47±0.05 | 0.25±0.04 | 1.00±0.00 |\n",
- "| DeepKriging_sphere_Huber | 0.23±0.03 | 0.48±0.03 | 0.27±0.03 | 1.00±0.00 |\n",
- "| UniversalKriging | 0.24±0.02 | 0.49±0.02 | 0.23±0.00 | 1.00±0.00 |\n",
- "\n",
- "🏆 Best Model for Hour 01: DeepKriging_sphere (RMSE: 0.47±0.05)\n",
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 02 | Path: data/data_s_p_date01_hour02.csv\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 02 - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 25.4134 25.8483 \n",
- " 100 19.0263 19.6124 \n",
- " 200 10.0620 10.3814 \n",
- " 500 5.6368 5.7665 \n",
- " 700 4.5064 4.6253 \n",
- " 1000 3.6162 3.7518 \n",
- " 1400 2.8839 3.0394 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# Dictionary to hold the final summary table for every hour\n",
"all_hours_summary = {}\n",
diff --git a/notebook/real_data/experiment_deepkriging_windspeed.ipynb b/examples/real_data/experiment_deepkriging_windspeed.ipynb
similarity index 78%
rename from notebook/real_data/experiment_deepkriging_windspeed.ipynb
rename to examples/real_data/experiment_deepkriging_windspeed.ipynb
index 9968102..7ee4a94 100644
--- a/notebook/real_data/experiment_deepkriging_windspeed.ipynb
+++ b/examples/real_data/experiment_deepkriging_windspeed.ipynb
@@ -19,7 +19,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"id": "73a5f785",
"metadata": {
"execution": {
@@ -45,7 +45,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": null,
"id": "b67cc84b",
"metadata": {
"execution": {
@@ -63,29 +63,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1769083139.327430 2109858 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1769083139.331338 2109858 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1769083139.342603 2109858 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769083139.342621 2109858 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769083139.342623 2109858 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1769083139.342624 2109858 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/home/user/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
- " from .autonotebook import tqdm as notebook_tqdm\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"import multiprocessing as mp\n",
"if mp.get_start_method(allow_none=True) is None:\n",
@@ -139,7 +117,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": null,
"id": "e5802f99",
"metadata": {
"execution": {
@@ -205,7 +183,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": null,
"id": "46760605",
"metadata": {
"execution": {
@@ -223,21 +201,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
"from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer\n",
@@ -267,7 +231,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": null,
"id": "30fcd1bf",
"metadata": {
"execution": {
@@ -556,7 +520,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": null,
"id": "c046277c",
"metadata": {
"execution": {
@@ -615,7 +579,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"id": "21e69d9f",
"metadata": {
"execution": {
@@ -650,7 +614,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": null,
"id": "4c4156ca",
"metadata": {
"execution": {
@@ -668,162 +632,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769083393.078719 2109858 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 17712 MB memory: -> device: 0, name: NVIDIA RTX 4000 Ada Generation, pci bus id: 0000:70:00.0, compute capability: 8.9\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1769083396.237471 2110751 service.cc:152] XLA service 0x7cff9c002eb0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1769083396.237561 2110751 service.cc:160] StreamExecutor device (0): NVIDIA RTX 4000 Ada Generation, Compute Capability 8.9\n",
- "I0000 00:00:1769083396.435299 2110751 cuda_dnn.cc:529] Loaded cuDNN version 90300\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1769083397.328127 2110751 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Tuning order parameter for OLS_sphere\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 10.5875 3.2373 2.5128 0.3538 \n",
- "100 9.0516 3.0095 2.2988 0.4415 \n",
- "200 6.7214 2.6035 1.9427 0.5821 \n",
- "500 4.5937 2.1505 1.5752 0.7148 \n",
- "700 3.7420 1.9513 1.4103 0.7652 \n",
- "1000 3.1024 1.7670 1.2615 0.8075 \n",
- "1400 2.5450 1.6073 1.1385 0.8407 *\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.2079 0.4498 0.2823 0.9875 \n",
- "100 0.1511 0.3820 0.2300 0.9910 \n",
- "200 0.1156 0.3366 0.1950 0.9930 \n",
- "500 0.1027 0.3173 0.1742 0.9938 \n",
- "700 0.0972 0.3119 0.1694 0.9940 *\n",
- "1000 0.1030 0.3129 0.1686 0.9940 \n",
- "1400 0.0984 0.3119 0.1665 0.9940 \n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.0904 0.4359 0.2635 0.9883 \n",
- "100 0.0702 0.3808 0.2209 0.9911 \n",
- "200 0.0552 0.3369 0.1899 0.9930 \n",
- "500 0.0444 0.3048 0.1672 0.9943 *\n",
- "700 0.0463 0.3154 0.1685 0.9939 \n",
- "1000 0.0461 0.3120 0.1664 0.9940 \n",
- "1400 0.0498 0.3236 0.1695 0.9935 \n",
- "\n",
- "Tuning order parameter for UniversalKriging\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=4.3528, sigma²=136.9127, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.3292, sigma²=104.6340, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.8484, sigma²=89.2839, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.0790, sigma²=95.5569, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=14.1097, sigma²=433.8591, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.7117, sigma²=51.9650, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8137, sigma²=24.1795, nugget=0.0000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Order Val Loss RMSE MAE R² \n",
- "------------------------------------------------\n",
- "50 0.1551 0.3861 0.2088 0.9908 \n",
- "100 0.1551 0.3861 0.2088 0.9908 \n",
- "200 0.1551 0.3860 0.2088 0.9908 \n",
- "500 0.1551 0.3861 0.2089 0.9908 \n",
- "700 0.1551 0.3860 0.2091 0.9908 \n",
- "1000 0.1551 0.3860 0.2091 0.9908 \n",
- "1400 0.1549 0.3857 0.2089 0.9908 *\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# OLS_wendland\n",
"parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed)\n",
@@ -1011,7 +820,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": null,
"id": "af964066",
"metadata": {
"execution": {
@@ -1029,25 +838,7 @@
},
"tags": []
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | RMSE | MAE | R² | Times |\n",
- "|--------------------------|---------|--------|--------|--------|-----------|\n",
- "| OLS_wendland | -- | 3.554 | 2.6564 | 0.2212 | 56.5814 |\n",
- "| OLS_sphere | 1400 | 1.6073 | 1.1385 | 0.8407 | 7.783 |\n",
- "| DeepKriging_wendland | -- | 2.9206 | 1.9014 | 0.474 | 686.139 |\n",
- "| DeepKriging_sphere | 700 | 0.3119 | 0.1694 | 0.994 | 454.544 |\n",
- "| DeepKriging_sphere_Huber | 500 | 0.3048 | 0.1672 | 0.9943 | 578.393 |\n",
- "| UniversalKriging | 1400 | 0.3857 | 0.2089 | 0.9908 | 1223.21 |\n",
- "\n",
- "🏆 Best Model: DeepKriging_sphere_Huber (RMSE: 0.3048)\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"result_table = []\n",
"for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
@@ -1102,4 +893,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
-}
\ No newline at end of file
+}
diff --git a/examples/real_data/experiment_deepkriging_windspeed_repeat_multitime.ipynb b/examples/real_data/experiment_deepkriging_windspeed_repeat_multitime.ipynb
new file mode 100644
index 0000000..dc535b2
--- /dev/null
+++ b/examples/real_data/experiment_deepkriging_windspeed_repeat_multitime.ipynb
@@ -0,0 +1,1031 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "b1833097",
+ "metadata": {
+ "papermill": {
+ "duration": 0.010962,
+ "end_time": "2026-01-22T06:28:22.418741",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:22.407779",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Library"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "73a5f785",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-01-22T06:28:22.431002Z",
+ "iopub.status.busy": "2026-01-22T06:28:22.430384Z",
+ "iopub.status.idle": "2026-01-22T06:28:22.447875Z",
+ "shell.execute_reply": "2026-01-22T06:28:22.444425Z"
+ },
+ "papermill": {
+ "duration": 0.027822,
+ "end_time": "2026-01-22T06:28:22.451416",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:22.423594",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b67cc84b",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-01-22T06:28:22.468481Z",
+ "iopub.status.busy": "2026-01-22T06:28:22.467637Z",
+ "iopub.status.idle": "2026-01-22T06:28:26.827773Z",
+ "shell.execute_reply": "2026-01-22T06:28:26.824631Z"
+ },
+ "papermill": {
+ "duration": 4.372431,
+ "end_time": "2026-01-22T06:28:26.830373",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:22.457942",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "from scipy.special import gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5f0aced4",
+ "metadata": {
+ "papermill": {
+ "duration": 0.006036,
+ "end_time": "2026-01-22T06:28:26.845882",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:26.839846",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Environment Setting"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e5802f99",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-01-22T06:28:26.858357Z",
+ "iopub.status.busy": "2026-01-22T06:28:26.857625Z",
+ "iopub.status.idle": "2026-01-22T06:28:28.442676Z",
+ "shell.execute_reply": "2026-01-22T06:28:28.440796Z"
+ },
+ "papermill": {
+ "duration": 1.592998,
+ "end_time": "2026-01-22T06:28:28.443637",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:26.850639",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5695a52d",
+ "metadata": {
+ "papermill": {
+ "duration": 0.001958,
+ "end_time": "2026-01-22T06:28:28.447783",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:28.445825",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Our Functions"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46760605",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-01-22T06:28:28.453557Z",
+ "iopub.status.busy": "2026-01-22T06:28:28.453175Z",
+ "iopub.status.idle": "2026-01-22T06:28:44.167367Z",
+ "shell.execute_reply": "2026-01-22T06:28:44.165909Z"
+ },
+ "papermill": {
+ "duration": 15.718946,
+ "end_time": "2026-01-22T06:28:44.168729",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:28.449783",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "373798b0",
+ "metadata": {
+ "papermill": {
+ "duration": 0.002504,
+ "end_time": "2026-01-22T06:28:44.174219",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:44.171715",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Helper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "30fcd1bf",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-01-22T06:28:44.181793Z",
+ "iopub.status.busy": "2026-01-22T06:28:44.181266Z",
+ "iopub.status.idle": "2026-01-22T06:28:44.203250Z",
+ "shell.execute_reply": "2026-01-22T06:28:44.202032Z"
+ },
+ "papermill": {
+ "duration": 0.026668,
+ "end_time": "2026-01-22T06:28:44.204158",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:44.177490",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_path, variable, num_sample, seed):\n",
+ " data = (pd.read_csv(data_path).sample(n=num_sample, random_state=seed).replace(\"-\", np.nan).dropna())\n",
+ "\n",
+ " numeric_cols = [\"longitude\", \"latitude\", variable]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ "\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ "\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ "\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data[variable].to_numpy().astype(\"float32\")[:, None]\n",
+ "\n",
+ " # Handle\n",
+ " categorical_data = None\n",
+ "\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ "\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(\n",
+ " wendland(location, grid, theta=theta, k=2)\n",
+ " )\n",
+ "\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max, \n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ "\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " \n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " \n",
+ " X_train_cont, X_val_cont, X_test_cont = (\n",
+ " basis[train_x1], basis[val_x1], basis[test_x1])\n",
+ " y_train, y_val, y_test = (\n",
+ " y_combined[train_x1], y_combined[val_x1], y_combined[test_x1])\n",
+ " \n",
+ " def flatten(targets):\n",
+ " return targets.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten, [y_train, y_val, y_test])\n",
+ "\n",
+ " def flatten(covariates):\n",
+ " return covariates.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_cont_flat, X_val_cont_flat, X_test_cont_flat = map(flatten, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " \n",
+ " # Handle categorical features\n",
+ " if categorical_data is None:\n",
+ " zero_vector = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zero_vector, [len(X_train_cont_flat), len(X_val_cont_flat), len(X_test_cont_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " \n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " \n",
+ " return (X_train_cont_flat, X_train_cat, y_train_flat,\n",
+ " X_val_cont_flat, X_val_cat, y_val_flat,\n",
+ " X_test_cont_flat, X_test_cat, y_test_flat)\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ "\n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " \n",
+ " metrics = {\n",
+ " \"Model\": name_model,\n",
+ " \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(mean_squared_error(y_test, y_pred))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ "\n",
+ " return metrics, model\n",
+ " \n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1],\n",
+ " output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3),\n",
+ " loss=loss,\n",
+ " epochs=epochs,\n",
+ " batch_size=batch_size,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland*\":\n",
+ " optimizer = Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1],\n",
+ " output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64],\n",
+ " activation='relu',\n",
+ " dropout_rate=dropout_rate,\n",
+ " optimizer=optimizer,\n",
+ " loss=loss,\n",
+ " metrics=['mae'],\n",
+ " epochs=epochs,\n",
+ " batch_size=batch_size,\n",
+ " patience=40,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " optimizer = Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1],\n",
+ " output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64],\n",
+ " activation='relu',\n",
+ " dropout_rate=dropout_rate,\n",
+ " optimizer=optimizer,\n",
+ " loss=loss,\n",
+ " metrics=['mae'],\n",
+ " epochs=epochs,\n",
+ " batch_size=batch_size,\n",
+ " patience=40,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " model = DeepKrigingDefaultTrainer(config)\n",
+ " elif name_model == \"DeepKriging_wendland*\":\n",
+ " model = DeepKrigingTrainer(config)\n",
+ " else:\n",
+ " model = DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)\n",
+ " ]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience, restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5, patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices((\n",
+ " (X_train, X_train_cat), y_train\n",
+ " )).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices((\n",
+ " (X_val, X_val_cat), y_val\n",
+ " )).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset,\n",
+ " validation_data=val_dataset,\n",
+ " epochs=epochs,\n",
+ " callbacks=callbacks,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ " \n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model,\n",
+ " \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(mean_squared_error(y_test, y_pred))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ "\n",
+ " del train_dataset, val_dataset\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " \n",
+ " return metrics, model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "10cce7e2",
+ "metadata": {},
+ "source": [
+ "### Plot Helper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a539a8b1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def plot_robinson_subplots(data_dict, vmin, vmax, title_main):\n",
+ " cmap = mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256)\n",
+ " \n",
+ " n_plots = len(data_dict)\n",
+ " n_cols = 2\n",
+ " n_rows = (n_plots + n_cols - 1) // n_cols\n",
+ " \n",
+ " fig = plt.figure(figsize=(20, 6 * n_rows))\n",
+ " fig.suptitle(title_main, fontsize=20, fontweight='bold', y=0.98)\n",
+ " \n",
+ " for idx, (subplot_title, (lon, lat, val)) in enumerate(data_dict.items(), 1):\n",
+ " ax = fig.add_subplot(n_rows, n_cols, idx, projection=ccrs.Robinson())\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " \n",
+ " scatter = ax.scatter(lon, lat, c=val, cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(subplot_title, fontsize=14, pad=10, fontweight='bold')\n",
+ " \n",
+ " cbar = plt.colorbar(scatter, ax=ax, orientation='horizontal', pad=0.05, shrink=0.6, aspect=30)\n",
+ " cbar.set_label('Temperature (°C)', fontsize=10)\n",
+ " \n",
+ " plt.tight_layout()\n",
+ " \n",
+ " return fig"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8e9a0017",
+ "metadata": {
+ "papermill": {
+ "duration": 0.002063,
+ "end_time": "2026-01-22T06:28:44.208431",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:44.206368",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Experiment Setup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "c046277c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-01-22T06:28:44.308270Z",
+ "iopub.status.busy": "2026-01-22T06:28:44.308026Z",
+ "iopub.status.idle": "2026-01-22T06:28:44.312080Z",
+ "shell.execute_reply": "2026-01-22T06:28:44.311090Z"
+ },
+ "papermill": {
+ "duration": 0.102419,
+ "end_time": "2026-01-22T06:28:44.312756",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:44.210337",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Model Setup\n",
+ "seed = 1234\n",
+ "epochs = 500\n",
+ "batch_size = 2048\n",
+ "num_sample = 200000\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "# Data\n",
+ "data_path = \"data_speed_combined.csv\"\n",
+ "\n",
+ "# Basis Setup\n",
+ "# Wendland\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "\n",
+ "knot_num = 2000\n",
+ "order_max = 1400\n",
+ "base_orders = [50, 100, 200, 500, 700, 1000, 1400]\n",
+ "\n",
+ "# Set to 2 repeats per variable\n",
+ "repeat_experiment = 2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5e832176",
+ "metadata": {
+ "papermill": {
+ "duration": 0.00218,
+ "end_time": "2026-01-22T06:28:44.317676",
+ "exception": false,
+ "start_time": "2026-01-22T06:28:44.315496",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Outcome"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2a9c97e1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Dictionary to hold the final summary table for every hour\n",
+ "all_hours_summary = {}\n",
+ "\n",
+ "# # Generate the 24 column names: 'vec' (Hour 1), 'vec.1' (Hour 2), ..., 'vec.23' (Hour 24)\n",
+ "# target_variables = [\"vec\"] + [f\"vec.{i}\" for i in range(5, 24)]\n",
+ "# ONLY include hours 5 through 24 (which corresponds to vec.4 through vec.23)\n",
+ "target_variables = [f\"vec.{i}\" for i in range(4, 24)]\n",
+ "\n",
+ "for hour, variable in enumerate(target_variables, start=5):\n",
+ " \n",
+ " print(f\"\\n\\n{'#'*80}\")\n",
+ " print(f\"🚀 STARTING DATASET: Hour {hour:02d} | Target Column: '{variable}'\")\n",
+ " print(f\"{'#'*80}\")\n",
+ " \n",
+ " best_orders = {}\n",
+ " experiment_results = {\n",
+ " model: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ "\n",
+ " for repeat in range(repeat_experiment):\n",
+ " seed_current = seed + repeat\n",
+ "\n",
+ " print(f\"\\n{'='*80}\")\n",
+ " print(f\"🏃 Hour {hour:02d} ('{variable}') - Repeat {repeat+1}/{repeat_experiment}, Seed={seed_current}\")\n",
+ " print(f\"{'='*80}\")\n",
+ "\n",
+ " # Data Preprocessing (Variable gets dynamically passed in here!)\n",
+ " location_data, location_data_norm, categorical_data, y_combined = data_preprocessing(data_path, variable, num_sample, seed_current)\n",
+ "\n",
+ " # Compute Basis Functions\n",
+ " max_Phi_sphere, idx_knot, knot = precompute_max_mrts(\"sphere\", location_data, knot_num, order_max, knot=None)\n",
+ " max_Phi_sphere = max_Phi_sphere.astype(dtype_basis, copy=False)\n",
+ "\n",
+ " max_Phi_mrts, idx_knot_mrts, knot_mrts = precompute_max_mrts(\"mrts\", location_data, knot_num, order_max, knot=location_data[idx_knot])\n",
+ " max_Phi_mrts = max_Phi_mrts.astype(dtype_basis, copy=False)\n",
+ "\n",
+ " Phi_wendland = precompute_wendland(location_data_norm, num_basis)\n",
+ "\n",
+ " if repeat == 0:\n",
+ " # Tuning order parameter for OLS_sphere\n",
+ " Best_val_OLS_S = float('inf')\n",
+ " Best_order_OLS_S = None\n",
+ " Results_order_OLS_S = []\n",
+ " \n",
+ " print(\"\\nTuning order parameter for OLS_sphere\")\n",
+ " for order in base_orders:\n",
+ " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
+ " metrics, model = train_eval(\"OLS_sphere\", None, None, None, None, *parts)\n",
+ " \n",
+ " Results_order_OLS_S.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
+ " \n",
+ " if metrics[\"Val_loss\"] < Best_val_OLS_S:\n",
+ " Best_val_OLS_S = metrics[\"Val_loss\"]\n",
+ " Best_order_OLS_S = order\n",
+ " \n",
+ " del Phi_sphere, parts, model; gc.collect()\n",
+ "\n",
+ " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
+ " print(f\" {'-'*34}\")\n",
+ " for res in Results_order_OLS_S:\n",
+ " marker = \" *\" if res['order'] == Best_order_OLS_S else \"\"\n",
+ " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
+ " print(f\" Best order: {Best_order_OLS_S}\")\n",
+ " best_orders['OLS_sphere'] = Best_order_OLS_S\n",
+ "\n",
+ " # Tuning order parameter for DeepKriging_mrts\n",
+ " Best_val_DK_mrts = float('inf')\n",
+ " Best_order_DK_mrts = None\n",
+ " Results_order_DK_mrts = []\n",
+ "\n",
+ " print(\"\\nTuning order parameter for DeepKriging_mrts\")\n",
+ " for order in base_orders:\n",
+ " Phi_mrts = max_Phi_mrts[:, :order].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_mrts, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_mrts\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
+ " \n",
+ " Results_order_DK_mrts.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
+ " \n",
+ " if metrics[\"Val_loss\"] < Best_val_DK_mrts:\n",
+ " Best_val_DK_mrts = metrics[\"Val_loss\"]\n",
+ " Best_order_DK_mrts = order\n",
+ " \n",
+ " del Phi_mrts, parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
+ " print(f\" {'-'*34}\")\n",
+ " for res in Results_order_DK_mrts:\n",
+ " marker = \" *\" if res['order'] == Best_order_DK_mrts else \"\"\n",
+ " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
+ " print(f\" Best order: {Best_order_DK_mrts}\")\n",
+ " best_orders['DeepKriging_mrts'] = Best_order_DK_mrts\n",
+ "\n",
+ " # Tuning order parameter for DeepKriging_sphere\n",
+ " Best_val_DK_S = float('inf')\n",
+ " Best_order_DK_S = None\n",
+ " Results_order_DK_S = []\n",
+ "\n",
+ " print(\"\\nTuning order parameter for DeepKriging_sphere\")\n",
+ " for order in base_orders:\n",
+ " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_sphere\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
+ " \n",
+ " Results_order_DK_S.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
+ " \n",
+ " if metrics[\"Val_loss\"] < Best_val_DK_S:\n",
+ " Best_val_DK_S = metrics[\"Val_loss\"]\n",
+ " Best_order_DK_S = order\n",
+ " \n",
+ " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
+ " print(f\" {'-'*34}\")\n",
+ " for res in Results_order_DK_S:\n",
+ " marker = \" *\" if res['order'] == Best_order_DK_S else \"\"\n",
+ " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
+ " print(f\" Best order: {Best_order_DK_S}\")\n",
+ " best_orders['DeepKriging_sphere'] = Best_order_DK_S\n",
+ "\n",
+ " # Tuning order parameter for DeepKriging_sphere_Huber\n",
+ " Best_val_DK_S_H = float('inf')\n",
+ " Best_order_DK_S_H = None\n",
+ " Results_order_DK_S_H = []\n",
+ " \n",
+ " print(\"\\nTuning order parameter for DeepKriging_sphere_Huber\")\n",
+ " for order in base_orders:\n",
+ " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_sphere_Huber\", epochs, batch_size, Huber(delta=huber_delta), 0.01, *parts)\n",
+ " \n",
+ " Results_order_DK_S_H.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
+ " \n",
+ " if metrics[\"Val_loss\"] < Best_val_DK_S_H:\n",
+ " Best_val_DK_S_H = metrics[\"Val_loss\"]\n",
+ " Best_order_DK_S_H = order\n",
+ " \n",
+ " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
+ " print(f\" {'-'*34}\")\n",
+ " for res in Results_order_DK_S_H:\n",
+ " marker = \" *\" if res['order'] == Best_order_DK_S_H else \"\"\n",
+ " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
+ " print(f\" Best order: {Best_order_DK_S_H}\")\n",
+ " best_orders['DeepKriging_sphere_Huber'] = Best_order_DK_S_H\n",
+ "\n",
+ " # Tuning order parameter for UniversalKriging\n",
+ " Best_val_UK = float('inf')\n",
+ " Best_order_UK = None\n",
+ " Results_order_UK = []\n",
+ " \n",
+ " print(\"\\nTuning order parameter for UniversalKriging\")\n",
+ " for order in base_orders:\n",
+ " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
+ " \n",
+ " idx_all = np.arange(Phi_sphere.shape[0])\n",
+ " train_val_idx, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed_current)\n",
+ " train_idx, val_idx = train_test_split(train_val_idx, train_size=8/9, random_state=seed_current)\n",
+ " \n",
+ " coords_train, coords_val, coords_test = location_data[train_idx], location_data[val_idx], location_data[test_idx]\n",
+ " phi_train, phi_val, phi_test = Phi_sphere[train_idx], Phi_sphere[val_idx], Phi_sphere[test_idx]\n",
+ " y_train, y_val, y_test = y_combined[train_idx].flatten(), y_combined[val_idx].flatten(), y_combined[test_idx].flatten()\n",
+ " \n",
+ " uk_model = UniversalKriging(num_neighbors=30, cov_function='exponential')\n",
+ " uk_model.fit(coords_train, phi_train, y_train, center_y=True)\n",
+ " \n",
+ " y_pred_val = uk_model.predict(coords_val, phi_val, return_centered=True)\n",
+ " val_loss = mean_squared_error(y_val - uk_model.y_mean, y_pred_val)\n",
+ " \n",
+ " y_pred_test = uk_model.predict(coords_test, phi_test, return_centered=False)\n",
+ " test_mse = mean_squared_error(y_test, y_pred_test)\n",
+ " \n",
+ " Results_order_UK.append({'order': order, 'val_loss': val_loss, 'mspe': test_mse})\n",
+ " \n",
+ " if val_loss < Best_val_UK:\n",
+ " Best_val_UK = val_loss\n",
+ " Best_order_UK = order\n",
+ " \n",
+ " uk_model.cleanup()\n",
+ " del uk_model, Phi_sphere, coords_train, coords_val, coords_test, phi_train, phi_val, phi_test, y_train, y_val, y_test; gc.collect()\n",
+ " \n",
+ " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
+ " print(f\" {'-'*34}\")\n",
+ " for res in Results_order_UK:\n",
+ " marker = \" *\" if res['order'] == Best_order_UK else \"\"\n",
+ " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
+ " print(f\" Best order: {Best_order_UK}\")\n",
+ " best_orders['UniversalKriging'] = Best_order_UK\n",
+ " gc.collect()\n",
+ "\n",
+ "\n",
+ " # Execute training with best orders\n",
+ " Record = {}\n",
+ "\n",
+ " # OLS_wendland\n",
+ " parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n",
+ " metrics, model = train_eval(\"OLS_wendland\", None, None, None, None, *parts)\n",
+ " Record[\"OLS_wendland\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": \"--\"\n",
+ " }\n",
+ " del parts, model; gc.collect()\n",
+ "\n",
+ " # OLS_sphere\n",
+ " Phi_sphere = max_Phi_sphere[:, :best_orders['OLS_sphere']].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
+ " metrics, model = train_eval(\"OLS_sphere\", None, None, None, None, *parts)\n",
+ " Record[\"OLS_sphere\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": best_orders['OLS_sphere']\n",
+ " }\n",
+ " del Phi_sphere, parts, model; gc.collect()\n",
+ "\n",
+ " # DeepKriging_wendland\n",
+ " parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_wendland\", epochs, batch_size, \"mse\", None, *parts)\n",
+ " Record[\"DeepKriging_wendland\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": \"--\"\n",
+ " }\n",
+ " del parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " # DeepKriging_wendland*\n",
+ " parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_wendland*\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
+ " Record[\"DeepKriging_wendland*\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": \"--\"\n",
+ " }\n",
+ " del parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " # DeepKriging_mrts\n",
+ " Phi_mrts = max_Phi_mrts[:, :best_orders['DeepKriging_mrts']].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_mrts, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_mrts\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
+ " Record[\"DeepKriging_mrts\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": best_orders['DeepKriging_mrts']\n",
+ " }\n",
+ " del Phi_mrts, parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " # DeepKriging_sphere\n",
+ " Phi_sphere = max_Phi_sphere[:, :best_orders['DeepKriging_sphere']].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_sphere\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
+ " Record[\"DeepKriging_sphere\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": best_orders['DeepKriging_sphere']\n",
+ " }\n",
+ " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " # DeepKriging_sphere_Huber\n",
+ " Phi_sphere = max_Phi_sphere[:, :best_orders['DeepKriging_sphere_Huber']].astype(np_f32)\n",
+ " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
+ " with strategy.scope():\n",
+ " metrics, model = train_eval(\"DeepKriging_sphere_Huber\", epochs, batch_size, Huber(delta=huber_delta), 0.01, *parts)\n",
+ " Record[\"DeepKriging_sphere_Huber\"] = {\n",
+ " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
+ " \"Time\": metrics[\"Time\"], \"Param\": best_orders['DeepKriging_sphere_Huber']\n",
+ " }\n",
+ " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
+ "\n",
+ " # UniversalKriging\n",
+ " t0 = time.time()\n",
+ " Phi_sphere = max_Phi_sphere[:, :best_orders['UniversalKriging']].astype(np_f32)\n",
+ " \n",
+ " idx_all = np.arange(Phi_sphere.shape[0])\n",
+ " train_val_idx, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed_current)\n",
+ " train_idx, _ = train_test_split(train_val_idx, train_size=8/9, random_state=seed_current)\n",
+ "\n",
+ " coords_train, coords_test = location_data[train_idx], location_data[test_idx]\n",
+ " phi_train, phi_test = Phi_sphere[train_idx], Phi_sphere[test_idx]\n",
+ " y_train, y_test = y_combined[train_idx].flatten(), y_combined[test_idx].flatten()\n",
+ "\n",
+ " uk_model = UniversalKriging(num_neighbors=30, cov_function='exponential')\n",
+ " uk_model.fit(coords_train, phi_train, y_train, center_y=True)\n",
+ "\n",
+ " y_pred_test = uk_model.predict(coords_test, phi_test, return_centered=False)\n",
+ "\n",
+ " Record[\"UniversalKriging\"] = {\n",
+ " \"MSPE\": mean_squared_error(y_test, y_pred_test),\n",
+ " \"RMSE\": np.sqrt(mean_squared_error(y_test, y_pred_test)),\n",
+ " \"MAE\": mean_absolute_error(y_test, y_pred_test),\n",
+ " \"R2\": r2_score(y_test, y_pred_test),\n",
+ " \"Time\": time.time() - t0,\n",
+ " \"Param\": best_orders['UniversalKriging']\n",
+ " }\n",
+ "\n",
+ " uk_model.cleanup()\n",
+ " del uk_model, Phi_sphere, coords_train, coords_test, phi_train, phi_test, y_train, y_test; gc.collect()\n",
+ "\n",
+ " # Print partial result for this repeat\n",
+ " result_table = []\n",
+ " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " result_table.append({\n",
+ " \"Model\": model, \"Param\": Record[model][\"Param\"],\n",
+ " \"MSPE\": f\"{Record[model]['MSPE']:.4f}\", \"RMSE\": f\"{Record[model]['RMSE']:.4f}\", \"MAE\": f\"{Record[model]['MAE']:.4f}\", \"R2\": f\"{Record[model]['R2']:.4f}\",\n",
+ " \"Time\": f\"{Record[model]['Time']:.2f}s\"\n",
+ " })\n",
+ "\n",
+ " df_res = pd.DataFrame(result_table)\n",
+ " print(\"\\n\", df_res.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " # Save results internally for the current hour\n",
+ " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " experiment_results[model][\"MSPE\"].append(Record[model][\"MSPE\"])\n",
+ " experiment_results[model][\"RMSE\"].append(Record[model][\"RMSE\"])\n",
+ " experiment_results[model][\"MAE\"].append(Record[model][\"MAE\"])\n",
+ " experiment_results[model][\"R2\"].append(Record[model][\"R2\"])\n",
+ "\n",
+ " # Clean up matrices before next repeat\n",
+ " del Phi_wendland, max_Phi_sphere, max_Phi_mrts, location_data, location_data_norm\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ "\n",
+ " print(f\"\\n✅ Completed Hour {hour:02d} ('{variable}') - Repeat {repeat+1}/{repeat_experiment}\")\n",
+ "\n",
+ " # ========================================================\n",
+ " # Summary Table for the current Hour\n",
+ " # ========================================================\n",
+ " print(\"\\n\" + \"=\"*80)\n",
+ " print(f\"📊 Summary of repeat experiments for Hour {hour:02d} ('{variable}')\")\n",
+ " print(\"=\"*80)\n",
+ " print(f\"Selected Best Orders: {best_orders}\")\n",
+ " print(\"=\"*80)\n",
+ "\n",
+ " avg_results = []\n",
+ " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " metrics = experiment_results[model]\n",
+ " avg_results.append({\n",
+ " \"Model\": model,\n",
+ " \"MSPE\": f\"{np.mean(metrics['MSPE']):.2f}±{np.std(metrics['MSPE']):.2f}\",\n",
+ " \"RMSE\": f\"{np.mean(metrics['RMSE']):.2f}±{np.std(metrics['RMSE']):.2f}\",\n",
+ " \"MAE\": f\"{np.mean(metrics['MAE']):.2f}±{np.std(metrics['MAE']):.2f}\",\n",
+ " \"R2\": f\"{np.mean(metrics['R2']):.2f}±{np.std(metrics['R2']):.2f}\",\n",
+ " })\n",
+ "\n",
+ " df_avg = pd.DataFrame(avg_results)\n",
+ " print(\"\\n\", df_avg.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " if avg_results:\n",
+ " # Extract the float part of RMSE (everything before the ± symbol) to find the best model\n",
+ " best_model = min(avg_results, key=lambda x: float(x[\"RMSE\"].split(\"±\")[0]))\n",
+ " print(f\"\\n🏆 Best Model for Hour {hour:02d} ('{variable}'): {best_model['Model']} (RMSE: {best_model['RMSE']})\")\n",
+ " \n",
+ " # Store df in overarching dictionary if you want to look at it later\n",
+ " all_hours_summary[f\"Hour_{hour:02d}\"] = df_avg\n",
+ "\n",
+ "print(\"\\n\" + \"#\"*80)\n",
+ "print(\"🎉 ALL 24 HOURS PROCESSED SUCCESSFULLY!\")\n",
+ "print(\"#\"*80)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 9219.462666,
+ "end_time": "2026-01-22T09:02:01.113308",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "/home/user/MLspatial/notebook/Final/Real_data/experiment_univariate_deepkriging_basis_real_data_temperature.ipynb",
+ "output_path": "/home/user/MLspatial/notebook/Final/Real_data/experiment_univariate_deepkriging_basis_real_data_temperature.ipynb",
+ "parameters": {},
+ "start_time": "2026-01-22T06:28:21.650642",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/notebook/simulation/Rerun/run_stdscaler_nonoise_50reps.py b/examples/simulation/run_stdscaler_nonoise_50reps.py
similarity index 100%
rename from notebook/simulation/Rerun/run_stdscaler_nonoise_50reps.py
rename to examples/simulation/run_stdscaler_nonoise_50reps.py
diff --git a/notebook/simulation/Rerun/run_stdscaler_outliers_50reps.py b/examples/simulation/run_stdscaler_outliers_50reps.py
similarity index 100%
rename from notebook/simulation/Rerun/run_stdscaler_outliers_50reps.py
rename to examples/simulation/run_stdscaler_outliers_50reps.py
diff --git a/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb
new file mode 100644
index 0000000..94b46e4
--- /dev/null
+++ b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb
@@ -0,0 +1,883 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d1cde2eb",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:09.855329Z",
+ "iopub.status.busy": "2026-03-29T15:51:09.855153Z",
+ "iopub.status.idle": "2026-03-29T15:51:09.859870Z",
+ "shell.execute_reply": "2026-03-29T15:51:09.859211Z"
+ },
+ "papermill": {
+ "duration": 0.01117,
+ "end_time": "2026-03-29T15:51:09.860573",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:09.849403",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8890884f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:09.866364Z",
+ "iopub.status.busy": "2026-03-29T15:51:09.866242Z",
+ "iopub.status.idle": "2026-03-29T15:51:11.908858Z",
+ "shell.execute_reply": "2026-03-29T15:51:11.907928Z"
+ },
+ "papermill": {
+ "duration": 2.047417,
+ "end_time": "2026-03-29T15:51:11.909414",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:09.861997",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import time as time_module\n",
+ "from scipy.stats import t\n",
+ "from scipy.special import kv, gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression, Ridge\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature\n",
+ "\n",
+ "import random"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46d6d1ba",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:11.913996Z",
+ "iopub.status.busy": "2026-03-29T15:51:11.913733Z",
+ "iopub.status.idle": "2026-03-29T15:51:12.802119Z",
+ "shell.execute_reply": "2026-03-29T15:51:12.801449Z"
+ },
+ "papermill": {
+ "duration": 0.891841,
+ "end_time": "2026-03-29T15:51:12.802745",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:11.910904",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8dd094a7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:12.807262Z",
+ "iopub.status.busy": "2026-03-29T15:51:12.807108Z",
+ "iopub.status.idle": "2026-03-29T15:51:12.809922Z",
+ "shell.execute_reply": "2026-03-29T15:51:12.809283Z"
+ },
+ "papermill": {
+ "duration": 0.006157,
+ "end_time": "2026-03-29T15:51:12.810305",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:12.804148",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Javascript\n",
+ "\n",
+ "def save_notebook():\n",
+ " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
+ " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
+ " print(f\"Notebook saved at {current_time}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f0aafba7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:12.813629Z",
+ "iopub.status.busy": "2026-03-29T15:51:12.813502Z",
+ "iopub.status.idle": "2026-03-29T15:51:25.842841Z",
+ "shell.execute_reply": "2026-03-29T15:51:25.842080Z"
+ },
+ "papermill": {
+ "duration": 13.03211,
+ "end_time": "2026-03-29T15:51:25.843644",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:12.811534",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "32986e25",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:25.848880Z",
+ "iopub.status.busy": "2026-03-29T15:51:25.848596Z",
+ "iopub.status.idle": "2026-03-29T15:51:25.854176Z",
+ "shell.execute_reply": "2026-03-29T15:51:25.853405Z"
+ },
+ "papermill": {
+ "duration": 0.009458,
+ "end_time": "2026-03-29T15:51:25.854622",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:25.845164",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import gc\n",
+ "\n",
+ "def _gp_draw(rng, num_sample):\n",
+ " \"\"\"Sample one GP draw on the sphere with stationary exp covariance (rho=0.5).\"\"\"\n",
+ " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
+ " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
+ " lat_rad = np.pi/2 - theta\n",
+ " lon_rad = phi - np.pi\n",
+ "\n",
+ " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
+ " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
+ "\n",
+ " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
+ " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
+ " z_c = np.sin(lat_rad)\n",
+ " coords = np.column_stack([x_c, y_c, z_c]).astype(np.float32)\n",
+ "\n",
+ " dist_matrix = np.sqrt(((coords[:, None, :] - coords[None, :, :]) ** 2).sum(axis=2))\n",
+ " cov_matrix = np.exp(-dist_matrix / 0.5).astype(np.float32)\n",
+ " cov_matrix += np.float32(1e-3) * np.eye(num_sample, dtype=np.float32)\n",
+ "\n",
+ " try:\n",
+ " L = np.linalg.cholesky(cov_matrix)\n",
+ " except np.linalg.LinAlgError:\n",
+ " cov_matrix += np.float32(1e-2) * np.eye(num_sample, dtype=np.float32)\n",
+ " try:\n",
+ " L = np.linalg.cholesky(cov_matrix)\n",
+ " except np.linalg.LinAlgError:\n",
+ " ev, evec = np.linalg.eigh(cov_matrix)\n",
+ " ev = np.maximum(ev, 1e-6)\n",
+ " L = evec @ np.diag(np.sqrt(ev))\n",
+ "\n",
+ " y = (np.float32(1.0) + L @ rng.standard_normal(num_sample).astype(np.float32)).astype(np.float32)\n",
+ "\n",
+ " del dist_matrix, cov_matrix, L, x_c, y_c, z_c, coords\n",
+ " gc.collect()\n",
+ " return lat_deg, lon_deg, y\n",
+ "\n",
+ "def simulate_data(num_sample, seed):\n",
+ " \"\"\"Stationary GP + N(0, 0.5^2) Gaussian noise.\"\"\"\n",
+ " rng = np.random.default_rng(seed)\n",
+ " lat_deg, lon_deg, y = _gp_draw(rng, num_sample)\n",
+ " noise = rng.normal(0.0, 0.5, num_sample).astype(np.float32)\n",
+ " z = y + noise\n",
+ " print(f\"\\n=== GP + N(0, 0.5^2) noise | seed={seed} ===\")\n",
+ " print(f\"z mean: {np.mean(z):.4f} (\\u00b1{np.std(z)/np.sqrt(num_sample):.4f}), \"\n",
+ " f\"Var: {np.var(z, ddof=0):.4f}, Range: [{np.min(z):.4f}, {np.max(z):.4f}]\")\n",
+ " del noise\n",
+ " gc.collect()\n",
+ " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e5c1e9f9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:25.857929Z",
+ "iopub.status.busy": "2026-03-29T15:51:25.857800Z",
+ "iopub.status.idle": "2026-03-29T15:51:25.865176Z",
+ "shell.execute_reply": "2026-03-29T15:51:25.864470Z"
+ },
+ "papermill": {
+ "duration": 0.009723,
+ "end_time": "2026-03-29T15:51:25.865681",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:25.855958",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_frame):\n",
+ " data = data_frame.copy()\n",
+ " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
+ " categorical_data = None\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(wendland(location, grid, theta=theta, k=2))\n",
+ " del grid\n",
+ " gc.collect()\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " X_train_cont = basis[train_x1]\n",
+ " X_val_cont = basis[val_x1]\n",
+ " X_test_cont = basis[test_x1]\n",
+ " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
+ " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
+ " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " if categorical_data is None:\n",
+ " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " return (X_train_flat, X_train_cat, y_train_flat,\n",
+ " X_val_flat, X_val_cat, y_val_flat,\n",
+ " X_test_flat, X_test_cat, y_test_flat)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6728b7b3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:25.869093Z",
+ "iopub.status.busy": "2026-03-29T15:51:25.868970Z",
+ "iopub.status.idle": "2026-03-29T15:51:25.876198Z",
+ "shell.execute_reply": "2026-03-29T15:51:25.875451Z"
+ },
+ "papermill": {
+ "duration": 0.009645,
+ "end_time": "2026-03-29T15:51:25.876616",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:25.866971",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def cleanup_tf_session():\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " try:\n",
+ " tf.keras.backend.clear_session()\n",
+ " except:\n",
+ " pass\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " os.environ['PYTHONHASHSEED'] = str(seed)\n",
+ " random.seed(seed)\n",
+ " np.random.seed(seed)\n",
+ " tf.random.set_seed(seed)\n",
+ "\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " return metrics, model\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
+ " epochs=epochs, batch_size=batch_size, verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
+ " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
+ " dropout_rate=dropout_rate, optimizer=_opt,\n",
+ " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
+ " patience=40, verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience,\n",
+ " restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5,\n",
+ " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset, validation_data=val_dataset,\n",
+ " epochs=epochs, callbacks=callbacks, verbose=0)\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ "\n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " del train_dataset, val_dataset\n",
+ " gc.collect()\n",
+ " return metrics, model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ce398870",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:25.880045Z",
+ "iopub.status.busy": "2026-03-29T15:51:25.879918Z",
+ "iopub.status.idle": "2026-03-29T15:51:25.888811Z",
+ "shell.execute_reply": "2026-03-29T15:51:25.887685Z"
+ },
+ "papermill": {
+ "duration": 0.011353,
+ "end_time": "2026-03-29T15:51:25.889243",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:25.877890",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(longitude, latitude, c=value,\n",
+ " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
+ " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " return sc\n",
+ "\n",
+ "\n",
+ "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
+ " plot_type='prediction', cbar_label=None):\n",
+ " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
+ " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
+ " if plot_type == 'residual' else\n",
+ " mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
+ " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
+ " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
+ " cbar.ax.tick_params(labelsize=7)\n",
+ " return ax, sc\n",
+ "\n",
+ "\n",
+ "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
+ " model_list=None, experiment_info=None):\n",
+ " if model_list is None:\n",
+ " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
+ " idx_all = np.arange(len(y_combined))\n",
+ " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
+ " y_test = y_combined[test_idx].reshape(-1)\n",
+ " test_locations = dataframe.iloc[test_idx]\n",
+ "\n",
+ " predictions = {}\n",
+ " for model_name in model_list:\n",
+ " if model_name not in models_dict or models_dict[model_name] is None:\n",
+ " continue\n",
+ " model = models_dict[model_name]\n",
+ " X_test = basis_dict[model_name][test_idx]\n",
+ " if \"DeepKriging\" in model_name:\n",
+ " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
+ " elif model_name == \"UniversalKriging\":\n",
+ " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
+ " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
+ " else:\n",
+ " y_pred = model.predict(X_test).reshape(-1)\n",
+ " mse = mean_squared_error(y_test, y_pred)\n",
+ " rmse = np.sqrt(mse)\n",
+ " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
+ " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
+ "\n",
+ " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
+ " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
+ "\n",
+ " fig1 = plt.figure(figsize=(16, 14))\n",
+ " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
+ " f'Real Data (n={len(dataframe)})')\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " p = predictions[mn]\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
+ " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
+ " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig1)\n",
+ "\n",
+ " fig2 = plt.figure(figsize=(18, 6))\n",
+ " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
+ " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
+ " -vmax_abs, vmax_abs,\n",
+ " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
+ " plot_type='residual')\n",
+ " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig2)\n",
+ " return predictions, test_idx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7d38eb7c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:25.892463Z",
+ "iopub.status.busy": "2026-03-29T15:51:25.892341Z",
+ "iopub.status.idle": "2026-03-29T15:51:25.895413Z",
+ "shell.execute_reply": "2026-03-29T15:51:25.894710Z"
+ },
+ "papermill": {
+ "duration": 0.005332,
+ "end_time": "2026-03-29T15:51:25.895859",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:25.890527",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
+ "seed = 50\n",
+ "epochs = 500\n",
+ "batch_size = 256\n",
+ "num_sample = 2500\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "knot_num = 1400\n",
+ "order_max = 1400\n",
+ "\n",
+ "# All models (including dk_sphere) use the same original candidates\n",
+ "base_orders = [10, 50, 100, 150, 200, 1000]\n",
+ "\n",
+ "repeat_experiment = 50\n",
+ "\n",
+ "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
+ "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
+ "print(f\"repeats : {repeat_experiment}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "main_loop_GP_noise",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:25.899191Z",
+ "iopub.status.busy": "2026-03-29T15:51:25.899064Z",
+ "iopub.status.idle": "2026-03-29T21:57:05.953619Z",
+ "shell.execute_reply": "2026-03-29T21:57:05.952726Z"
+ },
+ "papermill": {
+ "duration": 21940.057059,
+ "end_time": "2026-03-29T21:57:05.954212",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:25.897153",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, subprocess, sys\n",
+ "\n",
+ "CHECKPOINT_PATH = \"checkpoint_GP_noise.json\"\n",
+ "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_GP_noise.py\")\n",
+ "PYTHON_EXE = sys.executable\n",
+ "\n",
+ "if os.path.exists(CHECKPOINT_PATH):\n",
+ " with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ " experiment_results = ckpt[\"experiment_results\"]\n",
+ " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
+ " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
+ "else:\n",
+ " experiment_results = {\n",
+ " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ " completed_repeats = set()\n",
+ " print(\"Starting fresh.\")\n",
+ "\n",
+ "for repeat in range(repeat_experiment):\n",
+ "\n",
+ " if repeat in completed_repeats:\n",
+ " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
+ " continue\n",
+ "\n",
+ " print(f\"\\n\" + \"=\"*70)\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
+ " print(\"=\"*70)\n",
+ "\n",
+ " out_json = f\"repeat_{repeat}_GP_noise_results.json\"\n",
+ "\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
+ " capture_output=False,\n",
+ " check=True,\n",
+ " timeout=7200,\n",
+ " )\n",
+ " except subprocess.CalledProcessError as e:\n",
+ " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
+ " continue\n",
+ " except subprocess.TimeoutExpired:\n",
+ " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
+ " continue\n",
+ " except Exception as e:\n",
+ " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " if not os.path.exists(out_json):\n",
+ " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " with open(out_json) as f:\n",
+ " res = json.load(f)\n",
+ " os.remove(out_json)\n",
+ "\n",
+ " best_orders = res[\"best_orders\"]\n",
+ " metrics_map = res[\"metrics\"]\n",
+ "\n",
+ " table_rows = []\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " met = metrics_map[m]\n",
+ " table_rows.append({\n",
+ " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
+ " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
+ " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
+ " })\n",
+ " import pandas as _pd\n",
+ " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " for m in experiment_results:\n",
+ " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
+ " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
+ " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
+ " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
+ "\n",
+ " completed_repeats.add(repeat)\n",
+ " with open(CHECKPOINT_PATH, \"w\") as f:\n",
+ " json.dump({\"experiment_results\": experiment_results,\n",
+ " \"completed_repeats\": list(completed_repeats)}, f)\n",
+ "\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
+ "\n",
+ "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "summary_GP_noise",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:06.000295Z",
+ "iopub.status.busy": "2026-03-29T21:57:05.999896Z",
+ "iopub.status.idle": "2026-03-29T21:57:06.007417Z",
+ "shell.execute_reply": "2026-03-29T21:57:06.006672Z"
+ },
+ "papermill": {
+ "duration": 0.032606,
+ "end_time": "2026-03-29T21:57:06.008295",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:05.975689",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, numpy as np, pandas as pd\n",
+ "\n",
+ "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ "\n",
+ "with open(\"checkpoint_GP_noise.json\") as f:\n",
+ " ckpt = json.load(f)\n",
+ "results = ckpt[\"experiment_results\"]\n",
+ "n = len(next(iter(results.values()))[\"MSPE\"])\n",
+ "\n",
+ "print(\"\\n\" + \"=\"*80)\n",
+ "print(f\"Summary — {n} Repeats\")\n",
+ "print(\" Scenario: GP + N(0, 0.5^2) Gaussian Noise\")\n",
+ "print(\"=\"*80)\n",
+ "\n",
+ "rows = []\n",
+ "for m in MODELS:\n",
+ " vals = results[m]\n",
+ " rows.append({\n",
+ " \"Model\": m,\n",
+ " \"N\": len(vals[\"MSPE\"]),\n",
+ " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
+ " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
+ " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
+ " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
+ " })\n",
+ "\n",
+ "df = pd.DataFrame(rows)\n",
+ "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
+ "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
+ "\n",
+ "print(\"\\n── Ranking by mean RMSE ──\")\n",
+ "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
+ " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 21957.78137,
+ "end_time": "2026-03-29T21:57:07.049745",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps.ipynb",
+ "output_path": "simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb",
+ "parameters": {},
+ "start_time": "2026-03-29T15:51:09.268375",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb
new file mode 100644
index 0000000..0ee6a87
--- /dev/null
+++ b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb
@@ -0,0 +1,885 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d1cde2eb",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:08.815357Z",
+ "iopub.status.busy": "2026-03-29T21:57:08.815177Z",
+ "iopub.status.idle": "2026-03-29T21:57:08.820306Z",
+ "shell.execute_reply": "2026-03-29T21:57:08.819498Z"
+ },
+ "papermill": {
+ "duration": 0.008303,
+ "end_time": "2026-03-29T21:57:08.820786",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:08.812483",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8890884f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:08.824319Z",
+ "iopub.status.busy": "2026-03-29T21:57:08.824182Z",
+ "iopub.status.idle": "2026-03-29T21:57:10.887914Z",
+ "shell.execute_reply": "2026-03-29T21:57:10.886632Z"
+ },
+ "papermill": {
+ "duration": 2.066489,
+ "end_time": "2026-03-29T21:57:10.888775",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:08.822286",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import time as time_module\n",
+ "from scipy.stats import t\n",
+ "from scipy.special import kv, gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression, Ridge\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature\n",
+ "\n",
+ "import random"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46d6d1ba",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:10.894130Z",
+ "iopub.status.busy": "2026-03-29T21:57:10.893829Z",
+ "iopub.status.idle": "2026-03-29T21:57:11.802877Z",
+ "shell.execute_reply": "2026-03-29T21:57:11.802068Z"
+ },
+ "papermill": {
+ "duration": 0.913267,
+ "end_time": "2026-03-29T21:57:11.803554",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:10.890287",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8dd094a7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:11.808165Z",
+ "iopub.status.busy": "2026-03-29T21:57:11.807943Z",
+ "iopub.status.idle": "2026-03-29T21:57:11.810809Z",
+ "shell.execute_reply": "2026-03-29T21:57:11.810071Z"
+ },
+ "papermill": {
+ "duration": 0.006257,
+ "end_time": "2026-03-29T21:57:11.811336",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:11.805079",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Javascript\n",
+ "\n",
+ "def save_notebook():\n",
+ " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
+ " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
+ " print(f\"Notebook saved at {current_time}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f0aafba7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:11.814956Z",
+ "iopub.status.busy": "2026-03-29T21:57:11.814826Z",
+ "iopub.status.idle": "2026-03-29T21:57:25.009269Z",
+ "shell.execute_reply": "2026-03-29T21:57:25.008441Z"
+ },
+ "papermill": {
+ "duration": 13.197306,
+ "end_time": "2026-03-29T21:57:25.009917",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:11.812611",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "32986e25",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:25.014856Z",
+ "iopub.status.busy": "2026-03-29T21:57:25.014559Z",
+ "iopub.status.idle": "2026-03-29T21:57:25.020311Z",
+ "shell.execute_reply": "2026-03-29T21:57:25.019643Z"
+ },
+ "papermill": {
+ "duration": 0.009408,
+ "end_time": "2026-03-29T21:57:25.020805",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:25.011397",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import gc\n",
+ "\n",
+ "def _gp_draw(rng, num_sample):\n",
+ " \"\"\"Sample one GP draw on the sphere with stationary exp covariance (rho=0.5).\"\"\"\n",
+ " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
+ " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
+ " lat_rad = np.pi/2 - theta\n",
+ " lon_rad = phi - np.pi\n",
+ "\n",
+ " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
+ " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
+ "\n",
+ " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
+ " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
+ " z_c = np.sin(lat_rad)\n",
+ " coords = np.column_stack([x_c, y_c, z_c]).astype(np.float32)\n",
+ "\n",
+ " dist_matrix = np.sqrt(((coords[:, None, :] - coords[None, :, :]) ** 2).sum(axis=2))\n",
+ " cov_matrix = np.exp(-dist_matrix / 0.5).astype(np.float32)\n",
+ " cov_matrix += np.float32(1e-3) * np.eye(num_sample, dtype=np.float32)\n",
+ "\n",
+ " try:\n",
+ " L = np.linalg.cholesky(cov_matrix)\n",
+ " except np.linalg.LinAlgError:\n",
+ " cov_matrix += np.float32(1e-2) * np.eye(num_sample, dtype=np.float32)\n",
+ " try:\n",
+ " L = np.linalg.cholesky(cov_matrix)\n",
+ " except np.linalg.LinAlgError:\n",
+ " ev, evec = np.linalg.eigh(cov_matrix)\n",
+ " ev = np.maximum(ev, 1e-6)\n",
+ " L = evec @ np.diag(np.sqrt(ev))\n",
+ "\n",
+ " y = (np.float32(1.0) + L @ rng.standard_normal(num_sample).astype(np.float32)).astype(np.float32)\n",
+ "\n",
+ " del dist_matrix, cov_matrix, L, x_c, y_c, z_c, coords\n",
+ " gc.collect()\n",
+ " return lat_deg, lon_deg, y\n",
+ "\n",
+ "OUTLIER_RATIO = 0.025\n",
+ "OUTLIER_MULT = 5\n",
+ "\n",
+ "def simulate_data(num_sample, seed):\n",
+ " \"\"\"Stationary GP + 2.5% outliers multiplied by 5.\"\"\"\n",
+ " rng = np.random.default_rng(seed)\n",
+ " lat_deg, lon_deg, y = _gp_draw(rng, num_sample)\n",
+ " z = y.copy()\n",
+ " n_out = int(num_sample * OUTLIER_RATIO)\n",
+ " idx = rng.choice(num_sample, size=n_out, replace=False)\n",
+ " z[idx] *= OUTLIER_MULT\n",
+ " print(f\"\\n=== GP + outliers ({OUTLIER_RATIO*100:.1f}% x{OUTLIER_MULT}) | seed={seed} ===\")\n",
+ " print(f\"z mean: {np.mean(z):.4f} (\\u00b1{np.std(z)/np.sqrt(num_sample):.4f}), \"\n",
+ " f\"Var: {np.var(z, ddof=0):.4f}, Range: [{np.min(z):.4f}, {np.max(z):.4f}]\")\n",
+ " gc.collect()\n",
+ " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e5c1e9f9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:25.024318Z",
+ "iopub.status.busy": "2026-03-29T21:57:25.024184Z",
+ "iopub.status.idle": "2026-03-29T21:57:25.031120Z",
+ "shell.execute_reply": "2026-03-29T21:57:25.030451Z"
+ },
+ "papermill": {
+ "duration": 0.009291,
+ "end_time": "2026-03-29T21:57:25.031572",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:25.022281",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_frame):\n",
+ " data = data_frame.copy()\n",
+ " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
+ " categorical_data = None\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(wendland(location, grid, theta=theta, k=2))\n",
+ " del grid\n",
+ " gc.collect()\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " X_train_cont = basis[train_x1]\n",
+ " X_val_cont = basis[val_x1]\n",
+ " X_test_cont = basis[test_x1]\n",
+ " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
+ " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
+ " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " if categorical_data is None:\n",
+ " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " return (X_train_flat, X_train_cat, y_train_flat,\n",
+ " X_val_flat, X_val_cat, y_val_flat,\n",
+ " X_test_flat, X_test_cat, y_test_flat)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6728b7b3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:25.034921Z",
+ "iopub.status.busy": "2026-03-29T21:57:25.034792Z",
+ "iopub.status.idle": "2026-03-29T21:57:25.042422Z",
+ "shell.execute_reply": "2026-03-29T21:57:25.041715Z"
+ },
+ "papermill": {
+ "duration": 0.010019,
+ "end_time": "2026-03-29T21:57:25.042958",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:25.032939",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def cleanup_tf_session():\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " try:\n",
+ " tf.keras.backend.clear_session()\n",
+ " except:\n",
+ " pass\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " os.environ['PYTHONHASHSEED'] = str(seed)\n",
+ " random.seed(seed)\n",
+ " np.random.seed(seed)\n",
+ " tf.random.set_seed(seed)\n",
+ "\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " return metrics, model\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
+ " epochs=epochs, batch_size=batch_size, verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
+ " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
+ " dropout_rate=dropout_rate, optimizer=_opt,\n",
+ " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
+ " patience=40, verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience,\n",
+ " restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5,\n",
+ " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset, validation_data=val_dataset,\n",
+ " epochs=epochs, callbacks=callbacks, verbose=0)\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ "\n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " del train_dataset, val_dataset\n",
+ " gc.collect()\n",
+ " return metrics, model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ce398870",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:25.046293Z",
+ "iopub.status.busy": "2026-03-29T21:57:25.046162Z",
+ "iopub.status.idle": "2026-03-29T21:57:25.054489Z",
+ "shell.execute_reply": "2026-03-29T21:57:25.053810Z"
+ },
+ "papermill": {
+ "duration": 0.010673,
+ "end_time": "2026-03-29T21:57:25.054924",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:25.044251",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(longitude, latitude, c=value,\n",
+ " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
+ " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " return sc\n",
+ "\n",
+ "\n",
+ "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
+ " plot_type='prediction', cbar_label=None):\n",
+ " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
+ " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
+ " if plot_type == 'residual' else\n",
+ " mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
+ " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
+ " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
+ " cbar.ax.tick_params(labelsize=7)\n",
+ " return ax, sc\n",
+ "\n",
+ "\n",
+ "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
+ " model_list=None, experiment_info=None):\n",
+ " if model_list is None:\n",
+ " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
+ " idx_all = np.arange(len(y_combined))\n",
+ " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
+ " y_test = y_combined[test_idx].reshape(-1)\n",
+ " test_locations = dataframe.iloc[test_idx]\n",
+ "\n",
+ " predictions = {}\n",
+ " for model_name in model_list:\n",
+ " if model_name not in models_dict or models_dict[model_name] is None:\n",
+ " continue\n",
+ " model = models_dict[model_name]\n",
+ " X_test = basis_dict[model_name][test_idx]\n",
+ " if \"DeepKriging\" in model_name:\n",
+ " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
+ " elif model_name == \"UniversalKriging\":\n",
+ " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
+ " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
+ " else:\n",
+ " y_pred = model.predict(X_test).reshape(-1)\n",
+ " mse = mean_squared_error(y_test, y_pred)\n",
+ " rmse = np.sqrt(mse)\n",
+ " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
+ " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
+ "\n",
+ " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
+ " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
+ "\n",
+ " fig1 = plt.figure(figsize=(16, 14))\n",
+ " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
+ " f'Real Data (n={len(dataframe)})')\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " p = predictions[mn]\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
+ " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
+ " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig1)\n",
+ "\n",
+ " fig2 = plt.figure(figsize=(18, 6))\n",
+ " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
+ " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
+ " -vmax_abs, vmax_abs,\n",
+ " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
+ " plot_type='residual')\n",
+ " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig2)\n",
+ " return predictions, test_idx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7d38eb7c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:25.058292Z",
+ "iopub.status.busy": "2026-03-29T21:57:25.058166Z",
+ "iopub.status.idle": "2026-03-29T21:57:25.061103Z",
+ "shell.execute_reply": "2026-03-29T21:57:25.060458Z"
+ },
+ "papermill": {
+ "duration": 0.005336,
+ "end_time": "2026-03-29T21:57:25.061554",
+ "exception": false,
+ "start_time": "2026-03-29T21:57:25.056218",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
+ "seed = 50\n",
+ "epochs = 500\n",
+ "batch_size = 256\n",
+ "num_sample = 2500\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "knot_num = 1400\n",
+ "order_max = 1400\n",
+ "\n",
+ "# All models (including dk_sphere) use the same original candidates\n",
+ "base_orders = [10, 50, 100, 150, 200, 1000]\n",
+ "\n",
+ "repeat_experiment = 50\n",
+ "\n",
+ "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
+ "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
+ "print(f\"repeats : {repeat_experiment}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "main_loop_GP_outliers",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T21:57:25.065069Z",
+ "iopub.status.busy": "2026-03-29T21:57:25.064933Z"
+ },
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": false,
+ "start_time": "2026-03-29T21:57:25.062921",
+ "status": "running"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, subprocess, sys\n",
+ "\n",
+ "CHECKPOINT_PATH = \"checkpoint_GP_outliers.json\"\n",
+ "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_GP_outliers.py\")\n",
+ "PYTHON_EXE = sys.executable\n",
+ "\n",
+ "if os.path.exists(CHECKPOINT_PATH):\n",
+ " with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ " experiment_results = ckpt[\"experiment_results\"]\n",
+ " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
+ " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
+ "else:\n",
+ " experiment_results = {\n",
+ " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ " completed_repeats = set()\n",
+ " print(\"Starting fresh.\")\n",
+ "\n",
+ "for repeat in range(repeat_experiment):\n",
+ "\n",
+ " if repeat in completed_repeats:\n",
+ " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
+ " continue\n",
+ "\n",
+ " print(f\"\\n\" + \"=\"*70)\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
+ " print(\"=\"*70)\n",
+ "\n",
+ " out_json = f\"repeat_{repeat}_GP_outliers_results.json\"\n",
+ "\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
+ " capture_output=False,\n",
+ " check=True,\n",
+ " timeout=7200,\n",
+ " )\n",
+ " except subprocess.CalledProcessError as e:\n",
+ " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
+ " continue\n",
+ " except subprocess.TimeoutExpired:\n",
+ " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
+ " continue\n",
+ " except Exception as e:\n",
+ " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " if not os.path.exists(out_json):\n",
+ " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " with open(out_json) as f:\n",
+ " res = json.load(f)\n",
+ " os.remove(out_json)\n",
+ "\n",
+ " best_orders = res[\"best_orders\"]\n",
+ " metrics_map = res[\"metrics\"]\n",
+ "\n",
+ " table_rows = []\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " met = metrics_map[m]\n",
+ " table_rows.append({\n",
+ " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
+ " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
+ " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
+ " })\n",
+ " import pandas as _pd\n",
+ " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " for m in experiment_results:\n",
+ " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
+ " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
+ " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
+ " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
+ "\n",
+ " completed_repeats.add(repeat)\n",
+ " with open(CHECKPOINT_PATH, \"w\") as f:\n",
+ " json.dump({\"experiment_results\": experiment_results,\n",
+ " \"completed_repeats\": list(completed_repeats)}, f)\n",
+ "\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
+ "\n",
+ "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "summary_GP_outliers",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-26T08:31:31.812514Z",
+ "iopub.status.busy": "2026-03-26T08:31:31.812293Z",
+ "iopub.status.idle": "2026-03-26T08:31:31.817266Z",
+ "shell.execute_reply": "2026-03-26T08:31:31.816839Z"
+ },
+ "papermill": {
+ "duration": null,
+ "end_time": null,
+ "exception": null,
+ "start_time": null,
+ "status": "pending"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, numpy as np, pandas as pd\n",
+ "\n",
+ "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ "\n",
+ "with open(\"checkpoint_GP_outliers.json\") as f:\n",
+ " ckpt = json.load(f)\n",
+ "results = ckpt[\"experiment_results\"]\n",
+ "n = len(next(iter(results.values()))[\"MSPE\"])\n",
+ "\n",
+ "print(\"\\n\" + \"=\"*80)\n",
+ "print(f\"Summary — {n} Repeats\")\n",
+ "print(\" Scenario: GP + Outliers (2.5% x5)\")\n",
+ "print(\"=\"*80)\n",
+ "\n",
+ "rows = []\n",
+ "for m in MODELS:\n",
+ " vals = results[m]\n",
+ " rows.append({\n",
+ " \"Model\": m,\n",
+ " \"N\": len(vals[\"MSPE\"]),\n",
+ " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
+ " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
+ " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
+ " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
+ " })\n",
+ "\n",
+ "df = pd.DataFrame(rows)\n",
+ "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
+ "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
+ "\n",
+ "print(\"\\n── Ranking by mean RMSE ──\")\n",
+ "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
+ " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": null,
+ "end_time": null,
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps.ipynb",
+ "output_path": "simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb",
+ "parameters": {},
+ "start_time": "2026-03-29T21:57:08.179540",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb
new file mode 100644
index 0000000..3a5d71f
--- /dev/null
+++ b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb
@@ -0,0 +1,881 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d1cde2eb",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:04.614551Z",
+ "iopub.status.busy": "2026-03-29T08:46:04.614266Z",
+ "iopub.status.idle": "2026-03-29T08:46:04.621475Z",
+ "shell.execute_reply": "2026-03-29T08:46:04.619925Z"
+ },
+ "papermill": {
+ "duration": 0.01126,
+ "end_time": "2026-03-29T08:46:04.622226",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:04.610966",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8890884f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:04.627193Z",
+ "iopub.status.busy": "2026-03-29T08:46:04.626976Z",
+ "iopub.status.idle": "2026-03-29T08:46:06.991082Z",
+ "shell.execute_reply": "2026-03-29T08:46:06.990032Z"
+ },
+ "papermill": {
+ "duration": 2.367708,
+ "end_time": "2026-03-29T08:46:06.991680",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:04.623972",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import time as time_module\n",
+ "from scipy.stats import t\n",
+ "from scipy.special import kv, gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression, Ridge\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature\n",
+ "\n",
+ "import random"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46d6d1ba",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:06.997506Z",
+ "iopub.status.busy": "2026-03-29T08:46:06.997123Z",
+ "iopub.status.idle": "2026-03-29T08:46:08.180611Z",
+ "shell.execute_reply": "2026-03-29T08:46:08.179450Z"
+ },
+ "papermill": {
+ "duration": 1.188221,
+ "end_time": "2026-03-29T08:46:08.181390",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:06.993169",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8dd094a7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:08.190034Z",
+ "iopub.status.busy": "2026-03-29T08:46:08.189238Z",
+ "iopub.status.idle": "2026-03-29T08:46:08.194114Z",
+ "shell.execute_reply": "2026-03-29T08:46:08.192960Z"
+ },
+ "papermill": {
+ "duration": 0.011992,
+ "end_time": "2026-03-29T08:46:08.194962",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:08.182970",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Javascript\n",
+ "\n",
+ "def save_notebook():\n",
+ " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
+ " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
+ " print(f\"Notebook saved at {current_time}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f0aafba7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:08.199095Z",
+ "iopub.status.busy": "2026-03-29T08:46:08.198877Z",
+ "iopub.status.idle": "2026-03-29T08:46:22.428931Z",
+ "shell.execute_reply": "2026-03-29T08:46:22.427976Z"
+ },
+ "papermill": {
+ "duration": 14.233113,
+ "end_time": "2026-03-29T08:46:22.429651",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:08.196538",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "32986e25",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:22.434807Z",
+ "iopub.status.busy": "2026-03-29T08:46:22.434510Z",
+ "iopub.status.idle": "2026-03-29T08:46:22.440245Z",
+ "shell.execute_reply": "2026-03-29T08:46:22.439557Z"
+ },
+ "papermill": {
+ "duration": 0.009793,
+ "end_time": "2026-03-29T08:46:22.440947",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:22.431154",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import gc\n",
+ "\n",
+ "def _gp_draw(rng, num_sample):\n",
+ " \"\"\"Sample one GP draw on the sphere with stationary exp covariance (rho=0.5).\"\"\"\n",
+ " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
+ " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
+ " lat_rad = np.pi/2 - theta\n",
+ " lon_rad = phi - np.pi\n",
+ "\n",
+ " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
+ " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
+ "\n",
+ " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
+ " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
+ " z_c = np.sin(lat_rad)\n",
+ " coords = np.column_stack([x_c, y_c, z_c]).astype(np.float32)\n",
+ "\n",
+ " dist_matrix = np.sqrt(((coords[:, None, :] - coords[None, :, :]) ** 2).sum(axis=2))\n",
+ " cov_matrix = np.exp(-dist_matrix / 0.5).astype(np.float32)\n",
+ " cov_matrix += np.float32(1e-3) * np.eye(num_sample, dtype=np.float32)\n",
+ "\n",
+ " try:\n",
+ " L = np.linalg.cholesky(cov_matrix)\n",
+ " except np.linalg.LinAlgError:\n",
+ " cov_matrix += np.float32(1e-2) * np.eye(num_sample, dtype=np.float32)\n",
+ " try:\n",
+ " L = np.linalg.cholesky(cov_matrix)\n",
+ " except np.linalg.LinAlgError:\n",
+ " ev, evec = np.linalg.eigh(cov_matrix)\n",
+ " ev = np.maximum(ev, 1e-6)\n",
+ " L = evec @ np.diag(np.sqrt(ev))\n",
+ "\n",
+ " y = (np.float32(1.0) + L @ rng.standard_normal(num_sample).astype(np.float32)).astype(np.float32)\n",
+ "\n",
+ " del dist_matrix, cov_matrix, L, x_c, y_c, z_c, coords\n",
+ " gc.collect()\n",
+ " return lat_deg, lon_deg, y\n",
+ "\n",
+ "def simulate_data(num_sample, seed):\n",
+ " \"\"\"Stationary GP only — no added noise.\"\"\"\n",
+ " rng = np.random.default_rng(seed)\n",
+ " lat_deg, lon_deg, y = _gp_draw(rng, num_sample)\n",
+ " z = y.copy()\n",
+ " print(f\"\\n=== GP Pure (no noise) | seed={seed} ===\")\n",
+ " print(f\"z mean: {np.mean(z):.4f} (\\u00b1{np.std(z)/np.sqrt(num_sample):.4f}), \"\n",
+ " f\"Var: {np.var(z, ddof=0):.4f}, Range: [{np.min(z):.4f}, {np.max(z):.4f}]\")\n",
+ " gc.collect()\n",
+ " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e5c1e9f9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:22.444443Z",
+ "iopub.status.busy": "2026-03-29T08:46:22.444309Z",
+ "iopub.status.idle": "2026-03-29T08:46:22.451331Z",
+ "shell.execute_reply": "2026-03-29T08:46:22.450644Z"
+ },
+ "papermill": {
+ "duration": 0.009421,
+ "end_time": "2026-03-29T08:46:22.451769",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:22.442348",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_frame):\n",
+ " data = data_frame.copy()\n",
+ " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
+ " categorical_data = None\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(wendland(location, grid, theta=theta, k=2))\n",
+ " del grid\n",
+ " gc.collect()\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " X_train_cont = basis[train_x1]\n",
+ " X_val_cont = basis[val_x1]\n",
+ " X_test_cont = basis[test_x1]\n",
+ " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
+ " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
+ " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " if categorical_data is None:\n",
+ " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " return (X_train_flat, X_train_cat, y_train_flat,\n",
+ " X_val_flat, X_val_cat, y_val_flat,\n",
+ " X_test_flat, X_test_cat, y_test_flat)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6728b7b3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:22.455268Z",
+ "iopub.status.busy": "2026-03-29T08:46:22.455137Z",
+ "iopub.status.idle": "2026-03-29T08:46:22.462594Z",
+ "shell.execute_reply": "2026-03-29T08:46:22.461960Z"
+ },
+ "papermill": {
+ "duration": 0.009844,
+ "end_time": "2026-03-29T08:46:22.463071",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:22.453227",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def cleanup_tf_session():\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " try:\n",
+ " tf.keras.backend.clear_session()\n",
+ " except:\n",
+ " pass\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " os.environ['PYTHONHASHSEED'] = str(seed)\n",
+ " random.seed(seed)\n",
+ " np.random.seed(seed)\n",
+ " tf.random.set_seed(seed)\n",
+ "\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " return metrics, model\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
+ " epochs=epochs, batch_size=batch_size, verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
+ " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
+ " dropout_rate=dropout_rate, optimizer=_opt,\n",
+ " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
+ " patience=40, verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience,\n",
+ " restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5,\n",
+ " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset, validation_data=val_dataset,\n",
+ " epochs=epochs, callbacks=callbacks, verbose=0)\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ "\n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " del train_dataset, val_dataset\n",
+ " gc.collect()\n",
+ " return metrics, model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ce398870",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:22.466449Z",
+ "iopub.status.busy": "2026-03-29T08:46:22.466319Z",
+ "iopub.status.idle": "2026-03-29T08:46:22.475274Z",
+ "shell.execute_reply": "2026-03-29T08:46:22.474592Z"
+ },
+ "papermill": {
+ "duration": 0.011671,
+ "end_time": "2026-03-29T08:46:22.476037",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:22.464366",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(longitude, latitude, c=value,\n",
+ " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
+ " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " return sc\n",
+ "\n",
+ "\n",
+ "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
+ " plot_type='prediction', cbar_label=None):\n",
+ " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
+ " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
+ " if plot_type == 'residual' else\n",
+ " mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
+ " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
+ " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
+ " cbar.ax.tick_params(labelsize=7)\n",
+ " return ax, sc\n",
+ "\n",
+ "\n",
+ "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
+ " model_list=None, experiment_info=None):\n",
+ " if model_list is None:\n",
+ " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
+ " idx_all = np.arange(len(y_combined))\n",
+ " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
+ " y_test = y_combined[test_idx].reshape(-1)\n",
+ " test_locations = dataframe.iloc[test_idx]\n",
+ "\n",
+ " predictions = {}\n",
+ " for model_name in model_list:\n",
+ " if model_name not in models_dict or models_dict[model_name] is None:\n",
+ " continue\n",
+ " model = models_dict[model_name]\n",
+ " X_test = basis_dict[model_name][test_idx]\n",
+ " if \"DeepKriging\" in model_name:\n",
+ " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
+ " elif model_name == \"UniversalKriging\":\n",
+ " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
+ " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
+ " else:\n",
+ " y_pred = model.predict(X_test).reshape(-1)\n",
+ " mse = mean_squared_error(y_test, y_pred)\n",
+ " rmse = np.sqrt(mse)\n",
+ " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
+ " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
+ "\n",
+ " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
+ " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
+ "\n",
+ " fig1 = plt.figure(figsize=(16, 14))\n",
+ " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
+ " f'Real Data (n={len(dataframe)})')\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " p = predictions[mn]\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
+ " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
+ " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig1)\n",
+ "\n",
+ " fig2 = plt.figure(figsize=(18, 6))\n",
+ " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
+ " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
+ " -vmax_abs, vmax_abs,\n",
+ " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
+ " plot_type='residual')\n",
+ " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig2)\n",
+ " return predictions, test_idx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7d38eb7c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:22.479647Z",
+ "iopub.status.busy": "2026-03-29T08:46:22.479504Z",
+ "iopub.status.idle": "2026-03-29T08:46:22.482691Z",
+ "shell.execute_reply": "2026-03-29T08:46:22.481969Z"
+ },
+ "papermill": {
+ "duration": 0.005727,
+ "end_time": "2026-03-29T08:46:22.483205",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:22.477478",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
+ "seed = 50\n",
+ "epochs = 500\n",
+ "batch_size = 256\n",
+ "num_sample = 2500\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "knot_num = 1400\n",
+ "order_max = 1400\n",
+ "\n",
+ "# All models (including dk_sphere) use the same original candidates\n",
+ "base_orders = [10, 50, 100, 150, 200, 1000]\n",
+ "\n",
+ "repeat_experiment = 50\n",
+ "\n",
+ "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
+ "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
+ "print(f\"repeats : {repeat_experiment}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "main_loop_GP_pure",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T08:46:22.486586Z",
+ "iopub.status.busy": "2026-03-29T08:46:22.486461Z",
+ "iopub.status.idle": "2026-03-29T15:51:06.928030Z",
+ "shell.execute_reply": "2026-03-29T15:51:06.927063Z"
+ },
+ "papermill": {
+ "duration": 25484.444209,
+ "end_time": "2026-03-29T15:51:06.928740",
+ "exception": false,
+ "start_time": "2026-03-29T08:46:22.484531",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, subprocess, sys\n",
+ "\n",
+ "CHECKPOINT_PATH = \"checkpoint_GP_pure.json\"\n",
+ "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_GP_pure.py\")\n",
+ "PYTHON_EXE = sys.executable\n",
+ "\n",
+ "if os.path.exists(CHECKPOINT_PATH):\n",
+ " with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ " experiment_results = ckpt[\"experiment_results\"]\n",
+ " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
+ " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
+ "else:\n",
+ " experiment_results = {\n",
+ " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ " completed_repeats = set()\n",
+ " print(\"Starting fresh.\")\n",
+ "\n",
+ "for repeat in range(repeat_experiment):\n",
+ "\n",
+ " if repeat in completed_repeats:\n",
+ " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
+ " continue\n",
+ "\n",
+ " print(f\"\\n\" + \"=\"*70)\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
+ " print(\"=\"*70)\n",
+ "\n",
+ " out_json = f\"repeat_{repeat}_GP_pure_results.json\"\n",
+ "\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
+ " capture_output=False,\n",
+ " check=True,\n",
+ " timeout=7200,\n",
+ " )\n",
+ " except subprocess.CalledProcessError as e:\n",
+ " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
+ " continue\n",
+ " except subprocess.TimeoutExpired:\n",
+ " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
+ " continue\n",
+ " except Exception as e:\n",
+ " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " if not os.path.exists(out_json):\n",
+ " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " with open(out_json) as f:\n",
+ " res = json.load(f)\n",
+ " os.remove(out_json)\n",
+ "\n",
+ " best_orders = res[\"best_orders\"]\n",
+ " metrics_map = res[\"metrics\"]\n",
+ "\n",
+ " table_rows = []\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " met = metrics_map[m]\n",
+ " table_rows.append({\n",
+ " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
+ " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
+ " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
+ " })\n",
+ " import pandas as _pd\n",
+ " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " for m in experiment_results:\n",
+ " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
+ " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
+ " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
+ " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
+ "\n",
+ " completed_repeats.add(repeat)\n",
+ " with open(CHECKPOINT_PATH, \"w\") as f:\n",
+ " json.dump({\"experiment_results\": experiment_results,\n",
+ " \"completed_repeats\": list(completed_repeats)}, f)\n",
+ "\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
+ "\n",
+ "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "summary_GP_pure",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-29T15:51:06.972148Z",
+ "iopub.status.busy": "2026-03-29T15:51:06.971976Z",
+ "iopub.status.idle": "2026-03-29T15:51:06.979323Z",
+ "shell.execute_reply": "2026-03-29T15:51:06.978193Z"
+ },
+ "papermill": {
+ "duration": 0.030087,
+ "end_time": "2026-03-29T15:51:06.979877",
+ "exception": false,
+ "start_time": "2026-03-29T15:51:06.949790",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, numpy as np, pandas as pd\n",
+ "\n",
+ "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ "\n",
+ "with open(\"checkpoint_GP_pure.json\") as f:\n",
+ " ckpt = json.load(f)\n",
+ "results = ckpt[\"experiment_results\"]\n",
+ "n = len(next(iter(results.values()))[\"MSPE\"])\n",
+ "\n",
+ "print(\"\\n\" + \"=\"*80)\n",
+ "print(f\"Summary — {n} Repeats\")\n",
+ "print(\" Scenario: GP Pure (no noise)\")\n",
+ "print(\"=\"*80)\n",
+ "\n",
+ "rows = []\n",
+ "for m in MODELS:\n",
+ " vals = results[m]\n",
+ " rows.append({\n",
+ " \"Model\": m,\n",
+ " \"N\": len(vals[\"MSPE\"]),\n",
+ " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
+ " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
+ " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
+ " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
+ " })\n",
+ "\n",
+ "df = pd.DataFrame(rows)\n",
+ "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
+ "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
+ "\n",
+ "print(\"\\n── Ranking by mean RMSE ──\")\n",
+ "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
+ " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 25504.104741,
+ "end_time": "2026-03-29T15:51:08.120511",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps.ipynb",
+ "output_path": "simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb",
+ "parameters": {},
+ "start_time": "2026-03-29T08:46:04.015770",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_noGP_pure_50reps_out.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_noGP_pure_50reps_out.ipynb
new file mode 100644
index 0000000..e591722
--- /dev/null
+++ b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_noGP_pure_50reps_out.ipynb
@@ -0,0 +1,882 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d1cde2eb",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:27.964986Z",
+ "iopub.status.busy": "2026-03-28T09:36:27.964774Z",
+ "iopub.status.idle": "2026-03-28T09:36:27.970045Z",
+ "shell.execute_reply": "2026-03-28T09:36:27.969250Z"
+ },
+ "papermill": {
+ "duration": 0.010402,
+ "end_time": "2026-03-28T09:36:27.970639",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:27.960237",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8890884f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:27.974212Z",
+ "iopub.status.busy": "2026-03-28T09:36:27.974064Z",
+ "iopub.status.idle": "2026-03-28T09:36:30.007037Z",
+ "shell.execute_reply": "2026-03-28T09:36:30.006162Z"
+ },
+ "papermill": {
+ "duration": 2.035506,
+ "end_time": "2026-03-28T09:36:30.007619",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:27.972113",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import time as time_module\n",
+ "from scipy.stats import t\n",
+ "from scipy.special import kv, gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression, Ridge\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature\n",
+ "\n",
+ "import random"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46d6d1ba",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:30.012160Z",
+ "iopub.status.busy": "2026-03-28T09:36:30.011910Z",
+ "iopub.status.idle": "2026-03-28T09:36:30.929473Z",
+ "shell.execute_reply": "2026-03-28T09:36:30.928101Z"
+ },
+ "papermill": {
+ "duration": 0.920969,
+ "end_time": "2026-03-28T09:36:30.930051",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:30.009082",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8dd094a7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:30.934540Z",
+ "iopub.status.busy": "2026-03-28T09:36:30.934382Z",
+ "iopub.status.idle": "2026-03-28T09:36:30.936987Z",
+ "shell.execute_reply": "2026-03-28T09:36:30.936261Z"
+ },
+ "papermill": {
+ "duration": 0.005925,
+ "end_time": "2026-03-28T09:36:30.937422",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:30.931497",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Javascript\n",
+ "\n",
+ "def save_notebook():\n",
+ " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
+ " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
+ " print(f\"Notebook saved at {current_time}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f0aafba7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:30.940709Z",
+ "iopub.status.busy": "2026-03-28T09:36:30.940579Z",
+ "iopub.status.idle": "2026-03-28T09:36:43.787286Z",
+ "shell.execute_reply": "2026-03-28T09:36:43.786463Z"
+ },
+ "papermill": {
+ "duration": 12.849027,
+ "end_time": "2026-03-28T09:36:43.787801",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:30.938774",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "32986e25",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:43.792745Z",
+ "iopub.status.busy": "2026-03-28T09:36:43.792454Z",
+ "iopub.status.idle": "2026-03-28T09:36:43.797942Z",
+ "shell.execute_reply": "2026-03-28T09:36:43.797217Z"
+ },
+ "papermill": {
+ "duration": 0.008999,
+ "end_time": "2026-03-28T09:36:43.798486",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:43.789487",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def simulate_data_pure(num_sample, seed, scenario='E1'):\n",
+ " \"\"\"\n",
+ " Non-GP data: deterministic macro-trend + nonstationary anomalies only.\n",
+ " No noise, no Gaussian Process component.\n",
+ " \"\"\"\n",
+ " rng = np.random.default_rng(seed)\n",
+ "\n",
+ " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
+ " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
+ " lat_rad = np.pi/2 - theta\n",
+ " lon_rad = phi - np.pi\n",
+ "\n",
+ " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
+ " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
+ " z_c = np.sin(lat_rad)\n",
+ "\n",
+ " base_wind = 5.0\n",
+ " westerlies_north = 18.0 * np.exp(-((lat_rad - np.pi/4)**2) / 0.05)\n",
+ " westerlies_south = 22.0 * np.exp(-((lat_rad + np.pi/4)**2) / 0.04)\n",
+ " doldrums = -4.0 * np.exp(-(lat_rad**2) / 0.01)\n",
+ " mountain_block = np.where((lon_rad > 0.0) & (lon_rad < 1.0) & (lat_rad > 0.1) & (lat_rad < 1.0), -12.0, 0.0)\n",
+ " mean_trend = base_wind + westerlies_north + westerlies_south + doldrums + mountain_block\n",
+ "\n",
+ " num_anomalies = 60\n",
+ " anomaly_lats = np.arcsin(rng.uniform(-1, 1, num_anomalies))\n",
+ " anomaly_lons = rng.uniform(-np.pi, np.pi, num_anomalies)\n",
+ " ax = np.cos(anomaly_lats) * np.cos(anomaly_lons)\n",
+ " ay = np.cos(anomaly_lats) * np.sin(anomaly_lons)\n",
+ " az = np.sin(anomaly_lats)\n",
+ " anomaly_effect = np.zeros(num_sample)\n",
+ " for i in range(num_anomalies):\n",
+ " sq_dists = (x_c - ax[i])**2 + (y_c - ay[i])**2 + (z_c - az[i])**2\n",
+ " amplitude = rng.uniform(-10.0, 18.0)\n",
+ " radius = rng.uniform(0.005, 0.03)\n",
+ " anomaly_effect += amplitude * np.exp(-sq_dists / radius)\n",
+ "\n",
+ " mean_trend += anomaly_effect\n",
+ " z_final = np.maximum(mean_trend, 0.5).astype(np.float32)\n",
+ "\n",
+ " print(f\"\\n=== Scenario {scenario} (Non-GP: Pure Nonstationary Trend, no noise) ===\")\n",
+ " print(f\"Simulate Data | z mean: {np.mean(z_final):.4f} (\\u00b1{np.std(z_final) / np.sqrt(num_sample):.4f}), Variance: {np.var(z_final, ddof=0):.4f}, Range: [{np.min(z_final):.4f}, {np.max(z_final):.4f}]\")\n",
+ "\n",
+ " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
+ " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
+ "\n",
+ " del x_c, y_c, z_c, mean_trend, westerlies_north, westerlies_south, doldrums, mountain_block, anomaly_effect\n",
+ " gc.collect()\n",
+ "\n",
+ " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z_final})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e5c1e9f9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:43.801943Z",
+ "iopub.status.busy": "2026-03-28T09:36:43.801818Z",
+ "iopub.status.idle": "2026-03-28T09:36:43.808817Z",
+ "shell.execute_reply": "2026-03-28T09:36:43.807788Z"
+ },
+ "papermill": {
+ "duration": 0.00948,
+ "end_time": "2026-03-28T09:36:43.809365",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:43.799885",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_frame):\n",
+ " data = data_frame.copy()\n",
+ " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
+ " categorical_data = None\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(wendland(location, grid, theta=theta, k=2))\n",
+ " del grid\n",
+ " gc.collect()\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " X_train_cont = basis[train_x1]\n",
+ " X_val_cont = basis[val_x1]\n",
+ " X_test_cont = basis[test_x1]\n",
+ " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
+ " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
+ " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " if categorical_data is None:\n",
+ " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " return (X_train_flat, X_train_cat, y_train_flat,\n",
+ " X_val_flat, X_val_cat, y_val_flat,\n",
+ " X_test_flat, X_test_cat, y_test_flat)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6728b7b3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:43.812663Z",
+ "iopub.status.busy": "2026-03-28T09:36:43.812540Z",
+ "iopub.status.idle": "2026-03-28T09:36:43.819834Z",
+ "shell.execute_reply": "2026-03-28T09:36:43.819022Z"
+ },
+ "papermill": {
+ "duration": 0.009918,
+ "end_time": "2026-03-28T09:36:43.820579",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:43.810661",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def cleanup_tf_session():\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " try:\n",
+ " tf.keras.backend.clear_session()\n",
+ " except:\n",
+ " pass\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " os.environ['PYTHONHASHSEED'] = str(seed)\n",
+ " random.seed(seed)\n",
+ " np.random.seed(seed)\n",
+ " tf.random.set_seed(seed)\n",
+ "\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " return metrics, model\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
+ " epochs=epochs, batch_size=batch_size, verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
+ " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
+ " dropout_rate=dropout_rate, optimizer=_opt,\n",
+ " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
+ " patience=40, verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience,\n",
+ " restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5,\n",
+ " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset, validation_data=val_dataset,\n",
+ " epochs=epochs, callbacks=callbacks, verbose=0)\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ "\n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " del train_dataset, val_dataset\n",
+ " gc.collect()\n",
+ " return metrics, model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ce398870",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:43.823892Z",
+ "iopub.status.busy": "2026-03-28T09:36:43.823771Z",
+ "iopub.status.idle": "2026-03-28T09:36:43.833355Z",
+ "shell.execute_reply": "2026-03-28T09:36:43.832675Z"
+ },
+ "papermill": {
+ "duration": 0.012015,
+ "end_time": "2026-03-28T09:36:43.833871",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:43.821856",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(longitude, latitude, c=value,\n",
+ " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
+ " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " return sc\n",
+ "\n",
+ "\n",
+ "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
+ " plot_type='prediction', cbar_label=None):\n",
+ " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
+ " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
+ " if plot_type == 'residual' else\n",
+ " mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
+ " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
+ " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
+ " cbar.ax.tick_params(labelsize=7)\n",
+ " return ax, sc\n",
+ "\n",
+ "\n",
+ "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
+ " model_list=None, experiment_info=None):\n",
+ " if model_list is None:\n",
+ " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
+ " idx_all = np.arange(len(y_combined))\n",
+ " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
+ " y_test = y_combined[test_idx].reshape(-1)\n",
+ " test_locations = dataframe.iloc[test_idx]\n",
+ "\n",
+ " predictions = {}\n",
+ " for model_name in model_list:\n",
+ " if model_name not in models_dict or models_dict[model_name] is None:\n",
+ " continue\n",
+ " model = models_dict[model_name]\n",
+ " X_test = basis_dict[model_name][test_idx]\n",
+ " if \"DeepKriging\" in model_name:\n",
+ " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
+ " elif model_name == \"UniversalKriging\":\n",
+ " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
+ " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
+ " else:\n",
+ " y_pred = model.predict(X_test).reshape(-1)\n",
+ " mse = mean_squared_error(y_test, y_pred)\n",
+ " rmse = np.sqrt(mse)\n",
+ " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
+ " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
+ "\n",
+ " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
+ " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
+ "\n",
+ " fig1 = plt.figure(figsize=(16, 14))\n",
+ " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
+ " f'Real Data (n={len(dataframe)})')\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " p = predictions[mn]\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
+ " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
+ " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig1)\n",
+ "\n",
+ " fig2 = plt.figure(figsize=(18, 6))\n",
+ " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
+ " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
+ " -vmax_abs, vmax_abs,\n",
+ " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
+ " plot_type='residual')\n",
+ " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig2)\n",
+ " return predictions, test_idx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7d38eb7c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:43.837058Z",
+ "iopub.status.busy": "2026-03-28T09:36:43.836937Z",
+ "iopub.status.idle": "2026-03-28T09:36:43.839875Z",
+ "shell.execute_reply": "2026-03-28T09:36:43.839202Z"
+ },
+ "papermill": {
+ "duration": 0.005566,
+ "end_time": "2026-03-28T09:36:43.840709",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:43.835143",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
+ "seed = 50\n",
+ "epochs = 500\n",
+ "batch_size = 256\n",
+ "num_sample = 2500\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "knot_num = 1400\n",
+ "order_max = 1400\n",
+ "\n",
+ "# All models (including dk_sphere) use the same original candidates\n",
+ "base_orders = [10, 50, 100, 150, 200, 1000]\n",
+ "\n",
+ "repeat_experiment = 50\n",
+ "\n",
+ "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
+ "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
+ "print(f\"repeats : {repeat_experiment}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "main_loop_pure",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:43.843973Z",
+ "iopub.status.busy": "2026-03-28T09:36:43.843852Z",
+ "iopub.status.idle": "2026-03-28T17:51:20.330164Z",
+ "shell.execute_reply": "2026-03-28T17:51:20.329349Z"
+ },
+ "papermill": {
+ "duration": 29676.488693,
+ "end_time": "2026-03-28T17:51:20.330687",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:43.841994",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, subprocess, sys\n",
+ "\n",
+ "CHECKPOINT_PATH = \"checkpoint_noGP_pure.json\"\n",
+ "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_noGP_pure.py\")\n",
+ "PYTHON_EXE = sys.executable\n",
+ "\n",
+ "# ── load checkpoint ───────────────────────────────────────────────────────────\n",
+ "if os.path.exists(CHECKPOINT_PATH):\n",
+ " with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ " experiment_results = ckpt[\"experiment_results\"]\n",
+ " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
+ " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
+ "else:\n",
+ " experiment_results = {\n",
+ " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ " completed_repeats = set()\n",
+ " print(\"Starting fresh.\")\n",
+ "\n",
+ "# ── main loop ─────────────────────────────────────────────────────────────────\n",
+ "for repeat in range(repeat_experiment):\n",
+ "\n",
+ " if repeat in completed_repeats:\n",
+ " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
+ " continue\n",
+ "\n",
+ " print(f\"\\n\" + \"=\"*70)\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
+ " print(\"=\"*70)\n",
+ "\n",
+ " out_json = f\"repeat_{repeat}_noGP_pure_results.json\"\n",
+ "\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
+ " capture_output=False,\n",
+ " check=True,\n",
+ " timeout=7200,\n",
+ " )\n",
+ " except subprocess.CalledProcessError as e:\n",
+ " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
+ " continue\n",
+ " except subprocess.TimeoutExpired:\n",
+ " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
+ " continue\n",
+ " except Exception as e:\n",
+ " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " if not os.path.exists(out_json):\n",
+ " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " with open(out_json) as f:\n",
+ " res = json.load(f)\n",
+ " os.remove(out_json)\n",
+ "\n",
+ " best_orders = res[\"best_orders\"]\n",
+ " metrics_map = res[\"metrics\"]\n",
+ "\n",
+ " table_rows = []\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " met = metrics_map[m]\n",
+ " table_rows.append({\n",
+ " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
+ " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
+ " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
+ " })\n",
+ " import pandas as _pd\n",
+ " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " for m in experiment_results:\n",
+ " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
+ " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
+ " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
+ " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
+ "\n",
+ " completed_repeats.add(repeat)\n",
+ " with open(CHECKPOINT_PATH, \"w\") as f:\n",
+ " json.dump({\"experiment_results\": experiment_results,\n",
+ " \"completed_repeats\": list(completed_repeats)}, f)\n",
+ "\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
+ "\n",
+ "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "summary_pure",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T17:51:20.375603Z",
+ "iopub.status.busy": "2026-03-28T17:51:20.375437Z",
+ "iopub.status.idle": "2026-03-28T17:51:20.382084Z",
+ "shell.execute_reply": "2026-03-28T17:51:20.381419Z"
+ },
+ "papermill": {
+ "duration": 0.030421,
+ "end_time": "2026-03-28T17:51:20.382548",
+ "exception": false,
+ "start_time": "2026-03-28T17:51:20.352127",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, numpy as np, pandas as pd\n",
+ "\n",
+ "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ "\n",
+ "with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ "results = ckpt[\"experiment_results\"]\n",
+ "n = len(next(iter(results.values()))[\"MSPE\"])\n",
+ "\n",
+ "print(\"\\n\" + \"=\"*80)\n",
+ "print(f\"Summary — {n} Repeats\")\n",
+ "print(\" Scenario: Non-GP + Pure Nonstationary Trend (no noise, no GP)\")\n",
+ "print(\"=\"*80)\n",
+ "\n",
+ "rows = []\n",
+ "for m in MODELS:\n",
+ " vals = results[m]\n",
+ " rows.append({\n",
+ " \"Model\": m,\n",
+ " \"N\": len(vals[\"MSPE\"]),\n",
+ " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
+ " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
+ " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
+ " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
+ " })\n",
+ "\n",
+ "df = pd.DataFrame(rows)\n",
+ "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
+ "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
+ "\n",
+ "print(\"\\n── Ranking by mean RMSE ──\")\n",
+ "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
+ " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 29693.937646,
+ "end_time": "2026-03-28T17:51:21.320941",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "simulation_spherical_nn_sim_RSHC_c15_noGP_pure_50reps.ipynb",
+ "output_path": "simulation_spherical_nn_sim_RSHC_c15_noGP_pure_50reps_out.ipynb",
+ "parameters": {},
+ "start_time": "2026-03-28T09:36:27.383295",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_noise_noGP_50reps_out.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_noise_noGP_50reps_out.ipynb
new file mode 100644
index 0000000..dac392c
--- /dev/null
+++ b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_noise_noGP_50reps_out.ipynb
@@ -0,0 +1,886 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d1cde2eb",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:05:43.677420Z",
+ "iopub.status.busy": "2026-03-27T23:05:43.677246Z",
+ "iopub.status.idle": "2026-03-27T23:05:43.682799Z",
+ "shell.execute_reply": "2026-03-27T23:05:43.681940Z"
+ },
+ "papermill": {
+ "duration": 0.008809,
+ "end_time": "2026-03-27T23:05:43.683343",
+ "exception": false,
+ "start_time": "2026-03-27T23:05:43.674534",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8890884f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:05:43.688513Z",
+ "iopub.status.busy": "2026-03-27T23:05:43.688303Z",
+ "iopub.status.idle": "2026-03-27T23:05:45.848117Z",
+ "shell.execute_reply": "2026-03-27T23:05:45.847383Z"
+ },
+ "papermill": {
+ "duration": 2.163659,
+ "end_time": "2026-03-27T23:05:45.848726",
+ "exception": false,
+ "start_time": "2026-03-27T23:05:43.685067",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import time as time_module\n",
+ "from scipy.stats import t\n",
+ "from scipy.special import kv, gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression, Ridge\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature\n",
+ "\n",
+ "import random"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46d6d1ba",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:05:45.854064Z",
+ "iopub.status.busy": "2026-03-27T23:05:45.853822Z",
+ "iopub.status.idle": "2026-03-27T23:05:46.816946Z",
+ "shell.execute_reply": "2026-03-27T23:05:46.816078Z"
+ },
+ "papermill": {
+ "duration": 0.967214,
+ "end_time": "2026-03-27T23:05:46.817604",
+ "exception": false,
+ "start_time": "2026-03-27T23:05:45.850390",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8dd094a7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:05:46.822091Z",
+ "iopub.status.busy": "2026-03-27T23:05:46.821941Z",
+ "iopub.status.idle": "2026-03-27T23:05:46.824578Z",
+ "shell.execute_reply": "2026-03-27T23:05:46.823880Z"
+ },
+ "papermill": {
+ "duration": 0.005885,
+ "end_time": "2026-03-27T23:05:46.825023",
+ "exception": false,
+ "start_time": "2026-03-27T23:05:46.819138",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Javascript\n",
+ "\n",
+ "def save_notebook():\n",
+ " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
+ " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
+ " print(f\"Notebook saved at {current_time}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f0aafba7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:05:46.828285Z",
+ "iopub.status.busy": "2026-03-27T23:05:46.828152Z",
+ "iopub.status.idle": "2026-03-27T23:06:00.185461Z",
+ "shell.execute_reply": "2026-03-27T23:06:00.184726Z"
+ },
+ "papermill": {
+ "duration": 13.359808,
+ "end_time": "2026-03-27T23:06:00.186094",
+ "exception": false,
+ "start_time": "2026-03-27T23:05:46.826286",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "32986e25",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:06:00.190150Z",
+ "iopub.status.busy": "2026-03-27T23:06:00.189892Z",
+ "iopub.status.idle": "2026-03-27T23:06:00.195686Z",
+ "shell.execute_reply": "2026-03-27T23:06:00.194985Z"
+ },
+ "papermill": {
+ "duration": 0.008674,
+ "end_time": "2026-03-27T23:06:00.196227",
+ "exception": false,
+ "start_time": "2026-03-27T23:06:00.187553",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def simulate_data_nonstationary_noise(num_sample, noise_std, seed, scenario='E1'):\n",
+ " \"\"\"\n",
+ " Non-GP data generation: deterministic macro-trend + nonstationary anomalies\n",
+ " + N(0, noise_std^2) Gaussian noise. No Gaussian Process component.\n",
+ " \"\"\"\n",
+ " rng = np.random.default_rng(seed)\n",
+ "\n",
+ " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
+ " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
+ " lat_rad = np.pi/2 - theta\n",
+ " lon_rad = phi - np.pi\n",
+ "\n",
+ " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
+ " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
+ " z_c = np.sin(lat_rad)\n",
+ "\n",
+ " base_wind = 5.0\n",
+ " westerlies_north = 18.0 * np.exp(-((lat_rad - np.pi/4)**2) / 0.05)\n",
+ " westerlies_south = 22.0 * np.exp(-((lat_rad + np.pi/4)**2) / 0.04)\n",
+ " doldrums = -4.0 * np.exp(-(lat_rad**2) / 0.01)\n",
+ " mountain_block = np.where((lon_rad > 0.0) & (lon_rad < 1.0) & (lat_rad > 0.1) & (lat_rad < 1.0), -12.0, 0.0)\n",
+ " mean_trend = base_wind + westerlies_north + westerlies_south + doldrums + mountain_block\n",
+ "\n",
+ " num_anomalies = 60\n",
+ " anomaly_lats = np.arcsin(rng.uniform(-1, 1, num_anomalies))\n",
+ " anomaly_lons = rng.uniform(-np.pi, np.pi, num_anomalies)\n",
+ " ax = np.cos(anomaly_lats) * np.cos(anomaly_lons)\n",
+ " ay = np.cos(anomaly_lats) * np.sin(anomaly_lons)\n",
+ " az = np.sin(anomaly_lats)\n",
+ " anomaly_effect = np.zeros(num_sample)\n",
+ " for i in range(num_anomalies):\n",
+ " sq_dists = (x_c - ax[i])**2 + (y_c - ay[i])**2 + (z_c - az[i])**2\n",
+ " amplitude = rng.uniform(-10.0, 18.0)\n",
+ " radius = rng.uniform(0.005, 0.03)\n",
+ " anomaly_effect += amplitude * np.exp(-sq_dists / radius)\n",
+ "\n",
+ " mean_trend += anomaly_effect\n",
+ " mean_trend = np.maximum(mean_trend, 0.5)\n",
+ "\n",
+ " noise = rng.normal(0.0, noise_std, num_sample).astype(np.float32)\n",
+ " z_final = mean_trend + noise\n",
+ " z_final = np.maximum(z_final, 0.0)\n",
+ "\n",
+ " print(f\"\\n=== Scenario {scenario} (Non-GP: Nonstationary Trend + Gaussian Noise N(0,{noise_std}²)) ===\")\n",
+ " print(f\"Simulate Data | z mean: {np.mean(z_final):.4f} (±{np.std(z_final) / np.sqrt(num_sample):.4f}), Variance: {np.var(z_final, ddof=0):.4f}, Range: [{np.min(z_final):.4f}, {np.max(z_final):.4f}]\")\n",
+ "\n",
+ " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
+ " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
+ "\n",
+ " del x_c, y_c, z_c, mean_trend, westerlies_north, westerlies_south, doldrums, mountain_block, anomaly_effect, noise\n",
+ " gc.collect()\n",
+ "\n",
+ " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z_final})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e5c1e9f9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:06:00.199629Z",
+ "iopub.status.busy": "2026-03-27T23:06:00.199498Z",
+ "iopub.status.idle": "2026-03-27T23:06:00.206548Z",
+ "shell.execute_reply": "2026-03-27T23:06:00.205835Z"
+ },
+ "papermill": {
+ "duration": 0.009363,
+ "end_time": "2026-03-27T23:06:00.206928",
+ "exception": false,
+ "start_time": "2026-03-27T23:06:00.197565",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_frame):\n",
+ " data = data_frame.copy()\n",
+ " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
+ " categorical_data = None\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(wendland(location, grid, theta=theta, k=2))\n",
+ " del grid\n",
+ " gc.collect()\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " X_train_cont = basis[train_x1]\n",
+ " X_val_cont = basis[val_x1]\n",
+ " X_test_cont = basis[test_x1]\n",
+ " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
+ " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
+ " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " if categorical_data is None:\n",
+ " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " return (X_train_flat, X_train_cat, y_train_flat,\n",
+ " X_val_flat, X_val_cat, y_val_flat,\n",
+ " X_test_flat, X_test_cat, y_test_flat)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6728b7b3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:06:00.210306Z",
+ "iopub.status.busy": "2026-03-27T23:06:00.210184Z",
+ "iopub.status.idle": "2026-03-27T23:06:00.217173Z",
+ "shell.execute_reply": "2026-03-27T23:06:00.216493Z"
+ },
+ "papermill": {
+ "duration": 0.009377,
+ "end_time": "2026-03-27T23:06:00.217654",
+ "exception": false,
+ "start_time": "2026-03-27T23:06:00.208277",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def cleanup_tf_session():\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " try:\n",
+ " tf.keras.backend.clear_session()\n",
+ " except:\n",
+ " pass\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " os.environ['PYTHONHASHSEED'] = str(seed)\n",
+ " random.seed(seed)\n",
+ " np.random.seed(seed)\n",
+ " tf.random.set_seed(seed)\n",
+ "\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " return metrics, model\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
+ " epochs=epochs, batch_size=batch_size, verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
+ " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1], output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
+ " dropout_rate=dropout_rate, optimizer=_opt,\n",
+ " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
+ " patience=40, verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience,\n",
+ " restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5,\n",
+ " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
+ " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset, validation_data=val_dataset,\n",
+ " epochs=epochs, callbacks=callbacks, verbose=0)\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ "\n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " del train_dataset, val_dataset\n",
+ " gc.collect()\n",
+ " return metrics, model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ce398870",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:06:00.221137Z",
+ "iopub.status.busy": "2026-03-27T23:06:00.220995Z",
+ "iopub.status.idle": "2026-03-27T23:06:00.229836Z",
+ "shell.execute_reply": "2026-03-27T23:06:00.229146Z"
+ },
+ "papermill": {
+ "duration": 0.01132,
+ "end_time": "2026-03-27T23:06:00.230272",
+ "exception": false,
+ "start_time": "2026-03-27T23:06:00.218952",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(longitude, latitude, c=value,\n",
+ " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
+ " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " return sc\n",
+ "\n",
+ "\n",
+ "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
+ " plot_type='prediction', cbar_label=None):\n",
+ " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
+ " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
+ " if plot_type == 'residual' else\n",
+ " mcolors.LinearSegmentedColormap.from_list(\n",
+ " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
+ " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
+ " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
+ " cbar.ax.tick_params(labelsize=7)\n",
+ " return ax, sc\n",
+ "\n",
+ "\n",
+ "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
+ " model_list=None, experiment_info=None):\n",
+ " if model_list is None:\n",
+ " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
+ " idx_all = np.arange(len(y_combined))\n",
+ " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
+ " y_test = y_combined[test_idx].reshape(-1)\n",
+ " test_locations = dataframe.iloc[test_idx]\n",
+ "\n",
+ " predictions = {}\n",
+ " for model_name in model_list:\n",
+ " if model_name not in models_dict or models_dict[model_name] is None:\n",
+ " continue\n",
+ " model = models_dict[model_name]\n",
+ " X_test = basis_dict[model_name][test_idx]\n",
+ " if \"DeepKriging\" in model_name:\n",
+ " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
+ " elif model_name == \"UniversalKriging\":\n",
+ " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
+ " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
+ " else:\n",
+ " y_pred = model.predict(X_test).reshape(-1)\n",
+ " mse = mean_squared_error(y_test, y_pred)\n",
+ " rmse = np.sqrt(mse)\n",
+ " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
+ " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
+ "\n",
+ " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
+ " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
+ "\n",
+ " fig1 = plt.figure(figsize=(16, 14))\n",
+ " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
+ " f'Real Data (n={len(dataframe)})')\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " p = predictions[mn]\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
+ " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
+ " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig1)\n",
+ "\n",
+ " fig2 = plt.figure(figsize=(18, 6))\n",
+ " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
+ " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
+ " for i, mn in enumerate(model_list):\n",
+ " if mn in predictions:\n",
+ " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
+ " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
+ " -vmax_abs, vmax_abs,\n",
+ " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
+ " plot_type='residual')\n",
+ " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show(); plt.close(fig2)\n",
+ " return predictions, test_idx"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "7d38eb7c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:06:00.233598Z",
+ "iopub.status.busy": "2026-03-27T23:06:00.233474Z",
+ "iopub.status.idle": "2026-03-27T23:06:00.236850Z",
+ "shell.execute_reply": "2026-03-27T23:06:00.235705Z"
+ },
+ "papermill": {
+ "duration": 0.006019,
+ "end_time": "2026-03-27T23:06:00.237617",
+ "exception": false,
+ "start_time": "2026-03-27T23:06:00.231598",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
+ "seed = 50\n",
+ "epochs = 500\n",
+ "batch_size = 256\n",
+ "num_sample = 2500\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "knot_num = 1400\n",
+ "order_max = 1400\n",
+ "\n",
+ "# All models (including dk_sphere) use the same original candidates\n",
+ "base_orders = [10, 50, 100, 150, 200, 1000]\n",
+ "\n",
+ "repeat_experiment = 50\n",
+ "\n",
+ "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
+ "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
+ "print(f\"repeats : {repeat_experiment}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2a2b4ae9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-27T23:06:00.241061Z",
+ "iopub.status.busy": "2026-03-27T23:06:00.240931Z",
+ "iopub.status.idle": "2026-03-28T03:41:53.026815Z",
+ "shell.execute_reply": "2026-03-28T03:41:53.025756Z"
+ },
+ "papermill": {
+ "duration": 16552.788289,
+ "end_time": "2026-03-28T03:41:53.027323",
+ "exception": false,
+ "start_time": "2026-03-27T23:06:00.239034",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, subprocess, sys\n",
+ "\n",
+ "CHECKPOINT_PATH = \"checkpoint_noGP_noise.json\"\n",
+ "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_noGP_noise.py\")\n",
+ "PYTHON_EXE = sys.executable\n",
+ "\n",
+ "# ── load checkpoint ───────────────────────────────────────────────────────────\n",
+ "if os.path.exists(CHECKPOINT_PATH):\n",
+ " with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ " experiment_results = ckpt[\"experiment_results\"]\n",
+ " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
+ " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
+ "else:\n",
+ " experiment_results = {\n",
+ " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ " completed_repeats = set()\n",
+ " print(\"Starting fresh.\")\n",
+ "\n",
+ "# ── main loop ─────────────────────────────────────────────────────────────────\n",
+ "for repeat in range(repeat_experiment):\n",
+ "\n",
+ " if repeat in completed_repeats:\n",
+ " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
+ " continue\n",
+ "\n",
+ " print(f\"\\n\" + \"=\"*70)\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
+ " print(\"=\"*70)\n",
+ "\n",
+ " out_json = f\"repeat_{repeat}_noGP_noise_results.json\"\n",
+ "\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
+ " capture_output=False,\n",
+ " check=True,\n",
+ " timeout=7200,\n",
+ " )\n",
+ " except subprocess.CalledProcessError as e:\n",
+ " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
+ " continue\n",
+ " except subprocess.TimeoutExpired:\n",
+ " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
+ " continue\n",
+ " except Exception as e:\n",
+ " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " if not os.path.exists(out_json):\n",
+ " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " with open(out_json) as f:\n",
+ " res = json.load(f)\n",
+ " os.remove(out_json)\n",
+ "\n",
+ " best_orders = res[\"best_orders\"]\n",
+ " metrics_map = res[\"metrics\"]\n",
+ "\n",
+ " table_rows = []\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " met = metrics_map[m]\n",
+ " table_rows.append({\n",
+ " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
+ " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
+ " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
+ " })\n",
+ " import pandas as _pd\n",
+ " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " for m in experiment_results:\n",
+ " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
+ " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
+ " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
+ " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
+ "\n",
+ " completed_repeats.add(repeat)\n",
+ " with open(CHECKPOINT_PATH, \"w\") as f:\n",
+ " json.dump({\"experiment_results\": experiment_results,\n",
+ " \"completed_repeats\": list(completed_repeats)}, f)\n",
+ "\n",
+ " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
+ "\n",
+ "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a59787b6",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:41:53.054099Z",
+ "iopub.status.busy": "2026-03-28T03:41:53.053923Z",
+ "iopub.status.idle": "2026-03-28T03:41:53.060851Z",
+ "shell.execute_reply": "2026-03-28T03:41:53.060122Z"
+ },
+ "papermill": {
+ "duration": 0.020596,
+ "end_time": "2026-03-28T03:41:53.061305",
+ "exception": false,
+ "start_time": "2026-03-28T03:41:53.040709",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, numpy as np, pandas as pd\n",
+ "\n",
+ "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ "\n",
+ "with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ "results = ckpt[\"experiment_results\"]\n",
+ "n = len(next(iter(results.values()))[\"MSPE\"])\n",
+ "\n",
+ "print(\"\\n\" + \"=\"*80)\n",
+ "print(f\"Summary — {n} Repeats\")\n",
+ "print(\" Scenario: Non-GP + Gaussian Noise (N(0, 0.5^2)), Nonstationary Trend + StdScaler\")\n",
+ "print(\"=\"*80)\n",
+ "\n",
+ "rows = []\n",
+ "for m in MODELS:\n",
+ " vals = results[m]\n",
+ " rows.append({\n",
+ " \"Model\": m,\n",
+ " \"N\": len(vals[\"MSPE\"]),\n",
+ " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
+ " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
+ " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
+ " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
+ " })\n",
+ "\n",
+ "df = pd.DataFrame(rows)\n",
+ "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
+ "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
+ "\n",
+ "print(\"\\n── Ranking by mean RMSE ──\")\n",
+ "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
+ " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 16571.05346,
+ "end_time": "2026-03-28T03:41:54.095574",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "simulation_spherical_nn_sim_RSHC_c15_noise_noGP_50reps.ipynb",
+ "output_path": "simulation_spherical_nn_sim_RSHC_c15_noise_noGP_50reps_out.ipynb",
+ "parameters": {},
+ "start_time": "2026-03-27T23:05:43.042114",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_outliers_noGP_50reps_out.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_outliers_noGP_50reps_out.ipynb
new file mode 100644
index 0000000..8ef28dc
--- /dev/null
+++ b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_outliers_noGP_50reps_out.ipynb
@@ -0,0 +1,1151 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "fb75f2ac",
+ "metadata": {
+ "papermill": {
+ "duration": 0.00685,
+ "end_time": "2026-03-28T03:42:12.044436",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:12.037586",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Library"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a8e1c49d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:12.049396Z",
+ "iopub.status.busy": "2026-03-28T03:42:12.049222Z",
+ "iopub.status.idle": "2026-03-28T03:42:12.053895Z",
+ "shell.execute_reply": "2026-03-28T03:42:12.053111Z"
+ },
+ "papermill": {
+ "duration": 0.007911,
+ "end_time": "2026-03-28T03:42:12.054557",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:12.046646",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "import sys\n",
+ "import os\n",
+ "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
+ "if project_root not in sys.path:\n",
+ " sys.path.append(project_root)\n",
+ "print(f\"Project root added: {project_root}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "46af0f5c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:12.058724Z",
+ "iopub.status.busy": "2026-03-28T03:42:12.058598Z",
+ "iopub.status.idle": "2026-03-28T03:42:14.014104Z",
+ "shell.execute_reply": "2026-03-28T03:42:14.013260Z"
+ },
+ "papermill": {
+ "duration": 1.958617,
+ "end_time": "2026-03-28T03:42:14.014652",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:12.056035",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import multiprocessing as mp\n",
+ "if mp.get_start_method(allow_none=True) is None:\n",
+ " mp.set_start_method('spawn')\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore', category=UserWarning)\n",
+ "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
+ "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
+ "\n",
+ "import os, time, gc\n",
+ "from types import SimpleNamespace\n",
+ "\n",
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import time as time_module\n",
+ "from scipy.stats import t\n",
+ "from scipy.special import kv, gamma\n",
+ "\n",
+ "import jax, jax.numpy as jnp\n",
+ "\n",
+ "import tensorflow as tf\n",
+ "from tensorflow.keras import mixed_precision\n",
+ "from tensorflow.keras.optimizers import Adam\n",
+ "from tensorflow.keras.losses import Huber\n",
+ "from tensorflow.keras import backend as K\n",
+ "\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
+ "from sklearn.linear_model import LinearRegression, Ridge\n",
+ "from sklearn.preprocessing import OneHotEncoder\n",
+ "\n",
+ "import optuna\n",
+ "import plotly.io as pio\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.colors as mcolors\n",
+ "import cartopy.crs as ccrs\n",
+ "import cartopy.feature as cfeature\n",
+ "\n",
+ "import random"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3642d69c",
+ "metadata": {
+ "papermill": {
+ "duration": 0.002179,
+ "end_time": "2026-03-28T03:42:14.018682",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:14.016503",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Environment setting"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "9244ac2c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:14.022813Z",
+ "iopub.status.busy": "2026-03-28T03:42:14.022562Z",
+ "iopub.status.idle": "2026-03-28T03:42:14.906204Z",
+ "shell.execute_reply": "2026-03-28T03:42:14.904854Z"
+ },
+ "papermill": {
+ "duration": 0.886644,
+ "end_time": "2026-03-28T03:42:14.906912",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:14.020268",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "np_f32 = np.float32\n",
+ "jnp_f32 = jnp.float32\n",
+ "dtype_basis = np.float32\n",
+ "\n",
+ "jax.config.update(\"jax_enable_x64\", False)\n",
+ "\n",
+ "pio.renderers.default = \"notebook\"\n",
+ "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
+ "\n",
+ "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
+ "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
+ "\n",
+ "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
+ "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
+ "\n",
+ "def init_hardware(dtype: str = \"float32\"):\n",
+ " gpus = tf.config.list_physical_devices(\"GPU\")\n",
+ " for g in gpus:\n",
+ " tf.config.experimental.set_memory_growth(g, True)\n",
+ " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
+ " mixed_precision.set_global_policy(dtype)\n",
+ " return strategy\n",
+ "\n",
+ "strategy = init_hardware(dtype=\"float32\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "631dc3ef",
+ "metadata": {
+ "papermill": {
+ "duration": 0.002164,
+ "end_time": "2026-03-28T03:42:14.910865",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:14.908701",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Auto save notebook"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8082d639",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:14.914778Z",
+ "iopub.status.busy": "2026-03-28T03:42:14.914619Z",
+ "iopub.status.idle": "2026-03-28T03:42:14.917289Z",
+ "shell.execute_reply": "2026-03-28T03:42:14.916575Z"
+ },
+ "papermill": {
+ "duration": 0.005367,
+ "end_time": "2026-03-28T03:42:14.917792",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:14.912425",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from IPython.display import display, Javascript\n",
+ "\n",
+ "def save_notebook():\n",
+ " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
+ " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
+ " print(f\"💾 Notebook saved at {current_time}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9399eb89",
+ "metadata": {
+ "papermill": {
+ "duration": 0.001492,
+ "end_time": "2026-03-28T03:42:14.920877",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:14.919385",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Our function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8391a63c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:14.924994Z",
+ "iopub.status.busy": "2026-03-28T03:42:14.924866Z",
+ "iopub.status.idle": "2026-03-28T03:42:27.686270Z",
+ "shell.execute_reply": "2026-03-28T03:42:27.685474Z"
+ },
+ "papermill": {
+ "duration": 12.76505,
+ "end_time": "2026-03-28T03:42:27.687470",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:14.922420",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
+ "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
+ "\n",
+ "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
+ "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
+ "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
+ "\n",
+ "from rpy2.robjects.conversion import localconverter\n",
+ "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f7d37f3e",
+ "metadata": {
+ "papermill": {
+ "duration": 0.001646,
+ "end_time": "2026-03-28T03:42:27.691049",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.689403",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Simulation Helper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "076fe31f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:27.731128Z",
+ "iopub.status.busy": "2026-03-28T03:42:27.730828Z",
+ "iopub.status.idle": "2026-03-28T03:42:27.736693Z",
+ "shell.execute_reply": "2026-03-28T03:42:27.735906Z"
+ },
+ "papermill": {
+ "duration": 0.044472,
+ "end_time": "2026-03-28T03:42:27.737157",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.692685",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "import gc\n",
+ "\n",
+ "def simulate_data(num_sample, outlier_ratio, outlier_multiplier, seed, scenario='E1'):\n",
+ " \"\"\"\n",
+ " Non-GP: deterministic macro-trend + nonstationary anomalies + outlier injection.\n",
+ " No noise, no Gaussian Process / Gamma noise component.\n",
+ " \"\"\"\n",
+ " rng = np.random.default_rng(seed)\n",
+ "\n",
+ " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
+ " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
+ " lat_rad = np.pi/2 - theta\n",
+ " lon_rad = phi - np.pi\n",
+ "\n",
+ " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
+ " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
+ " z_c = np.sin(lat_rad)\n",
+ "\n",
+ " base_wind = 5.0\n",
+ " westerlies_north = 18.0 * np.exp(-((lat_rad - np.pi/4)**2) / 0.05)\n",
+ " westerlies_south = 22.0 * np.exp(-((lat_rad + np.pi/4)**2) / 0.04)\n",
+ " doldrums = -4.0 * np.exp(-(lat_rad**2) / 0.01)\n",
+ " mountain_block = np.where((lon_rad > 0.0) & (lon_rad < 1.0) &\n",
+ " (lat_rad > 0.1) & (lat_rad < 1.0), -12.0, 0.0)\n",
+ " mean_trend = base_wind + westerlies_north + westerlies_south + doldrums + mountain_block\n",
+ "\n",
+ " num_anomalies = 60\n",
+ " anomaly_lats = np.arcsin(rng.uniform(-1, 1, num_anomalies))\n",
+ " anomaly_lons = rng.uniform(-np.pi, np.pi, num_anomalies)\n",
+ " ax = np.cos(anomaly_lats) * np.cos(anomaly_lons)\n",
+ " ay = np.cos(anomaly_lats) * np.sin(anomaly_lons)\n",
+ " az = np.sin(anomaly_lats)\n",
+ "\n",
+ " anomaly_effect = np.zeros(num_sample)\n",
+ " for i in range(num_anomalies):\n",
+ " sq_dists = (x_c - ax[i])**2 + (y_c - ay[i])**2 + (z_c - az[i])**2\n",
+ " amplitude = rng.uniform(-10.0, 18.0)\n",
+ " radius = rng.uniform(0.005, 0.03)\n",
+ " anomaly_effect += amplitude * np.exp(-sq_dists / radius)\n",
+ "\n",
+ " mean_trend += anomaly_effect\n",
+ " mean_trend = np.maximum(mean_trend, 0.5)\n",
+ "\n",
+ " # No noise — pure deterministic trend\n",
+ " z_final = mean_trend.copy().astype(np.float32)\n",
+ "\n",
+ " idx_outliers = rng.choice(num_sample, size=int(num_sample * outlier_ratio), replace=False)\n",
+ " z_final[idx_outliers] *= outlier_multiplier\n",
+ "\n",
+ " print(f\"\\n=== Scenario {scenario} (Non-GP: Trend only + Outliers {outlier_ratio*100:.1f}% x{outlier_multiplier}) ===\")\n",
+ " print(f\"Simulate Data | z mean: {np.mean(z_final):.4f} (\\u00b1{np.std(z_final)/np.sqrt(num_sample):.4f}), \"\n",
+ " f\"Variance: {np.var(z_final, ddof=0):.4f}, Range: [{np.min(z_final):.4f}, {np.max(z_final):.4f}]\")\n",
+ "\n",
+ " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
+ " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
+ "\n",
+ " del x_c, y_c, z_c, mean_trend, westerlies_north, westerlies_south, doldrums, mountain_block, anomaly_effect\n",
+ " gc.collect()\n",
+ "\n",
+ " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z_final})\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "57a9ba52",
+ "metadata": {
+ "papermill": {
+ "duration": 0.001559,
+ "end_time": "2026-03-28T03:42:27.740534",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.738975",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Helper"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b3d5a807",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:27.744527Z",
+ "iopub.status.busy": "2026-03-28T03:42:27.744388Z",
+ "iopub.status.idle": "2026-03-28T03:42:27.756491Z",
+ "shell.execute_reply": "2026-03-28T03:42:27.755924Z"
+ },
+ "papermill": {
+ "duration": 0.015059,
+ "end_time": "2026-03-28T03:42:27.757177",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.742118",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def data_preprocessing(data_frame):\n",
+ " data = data_frame.copy()\n",
+ "\n",
+ " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
+ " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
+ " data.dropna(subset=numeric_cols, inplace=True)\n",
+ "\n",
+ " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
+ "\n",
+ " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
+ " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
+ "\n",
+ " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
+ " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
+ " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
+ "\n",
+ " # Handle\n",
+ " categorical_data = None\n",
+ "\n",
+ " return location_data, location_data_norm, categorical_data, y_combined\n",
+ "\n",
+ "\n",
+ "def precompute_wendland(location, num_basis):\n",
+ " parts = []\n",
+ " for nb in num_basis:\n",
+ " grid = np.column_stack(np.meshgrid(\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
+ " )).reshape(-1, 2).astype(np_f32)\n",
+ "\n",
+ " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
+ " parts.append(\n",
+ " wendland(location, grid, theta=theta, k=2)\n",
+ " )\n",
+ "\n",
+ " # Clean up the memory\n",
+ " del grid\n",
+ " gc.collect()\n",
+ "\n",
+ " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
+ "\n",
+ "\n",
+ "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
+ " if knot is None:\n",
+ " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
+ " knot = location_data[idx_knot].astype(np_f32)\n",
+ " else:\n",
+ " idx_knot = None\n",
+ "\n",
+ " if distance_type == \"sphere\":\n",
+ " with localconverter(numpy2ri_converter):\n",
+ " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
+ " res_dict = dict(zip(res_r.names(), res_r))\n",
+ " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
+ " else:\n",
+ " phi = np.asarray(\n",
+ " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max, \n",
+ " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
+ " )\n",
+ "\n",
+ " return phi, idx_knot, knot\n",
+ "\n",
+ "\n",
+ "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
+ " idx_all = np.arange(basis.shape[0])\n",
+ " train_ratio, val_ratio, test_ratio = split_ratio\n",
+ " \n",
+ " train_val_x1, test_x1 = train_test_split(\n",
+ " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
+ " train_x1, val_x1 = train_test_split(\n",
+ " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
+ " \n",
+ " X_train_cont, X_val_cont, X_test_cont = (\n",
+ " basis[train_x1], basis[val_x1], basis[test_x1])\n",
+ " y_train, y_val, y_test = (\n",
+ " y_combined[train_x1], y_combined[val_x1], y_combined[test_x1])\n",
+ " \n",
+ " def flatten(targets):\n",
+ " return targets.reshape(-1).astype(np_f32, copy=False)\n",
+ " y_train_flat, y_val_flat, y_test_flat = map(flatten, [y_train, y_val, y_test])\n",
+ "\n",
+ " def flatten(covariates):\n",
+ " return covariates.reshape(-1, basis.shape[1]).astype(np_f32)\n",
+ " X_train_cont_flat, X_val_cont_flat, X_test_cont_flat = map(flatten, [X_train_cont, X_val_cont, X_test_cont])\n",
+ " \n",
+ " # Handle categorical features\n",
+ " if categorical_data is None:\n",
+ " zero_vector = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
+ " X_train_cat, X_val_cat, X_test_cat = map(zero_vector, [len(X_train_cont_flat), len(X_val_cont_flat), len(X_test_cont_flat)])\n",
+ " else:\n",
+ " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
+ " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
+ " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
+ " \n",
+ " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
+ " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
+ " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
+ " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
+ " \n",
+ " return (X_train_cont_flat, X_train_cat, y_train_flat,\n",
+ " X_val_cont_flat, X_val_cat, y_val_flat,\n",
+ " X_test_cont_flat, X_test_cat, y_test_flat)\n",
+ "\n",
+ "\n",
+ "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
+ " X_train, X_train_cat, y_train,\n",
+ " X_val, X_val_cat, y_val,\n",
+ " X_test, X_test_cat, y_test):\n",
+ "\n",
+ " # 1. Force deterministic weights for this specific seed\n",
+ " os.environ['PYTHONHASHSEED'] = str(seed)\n",
+ " random.seed(seed)\n",
+ " np.random.seed(seed)\n",
+ " tf.random.set_seed(seed)\n",
+ " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
+ " t0 = time.time()\n",
+ " model = LinearRegression().fit(X_train, y_train)\n",
+ " \n",
+ " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
+ " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
+ " training_time = time.time() - t0\n",
+ " \n",
+ " metrics = {\n",
+ " \"Model\": name_model,\n",
+ " \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " \n",
+ " return metrics, model\n",
+ " \n",
+ " elif name_model == \"DeepKriging_wendland\":\n",
+ " config = DeepKrigingDefaultConfig(\n",
+ " input_dim=X_train.shape[1],\n",
+ " output_type='continuous',\n",
+ " optimizer=Adam(learning_rate=1e-3),\n",
+ " loss=loss,\n",
+ " epochs=epochs,\n",
+ " batch_size=batch_size,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model == \"DeepKriging_wendland*\":\n",
+ " optimizer = Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1],\n",
+ " output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64],\n",
+ " activation='relu',\n",
+ " dropout_rate=dropout_rate,\n",
+ " optimizer=optimizer,\n",
+ " loss=loss,\n",
+ " metrics=['mae'],\n",
+ " epochs=epochs,\n",
+ " batch_size=batch_size,\n",
+ " patience=40,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
+ " optimizer = Adam(learning_rate=5e-3)\n",
+ " config = DeepKrigingModelConfig(\n",
+ " input_dim=X_train.shape[1],\n",
+ " output_type='continuous',\n",
+ " hidden_layers=[1024, 512, 256, 128, 64],\n",
+ " activation='relu',\n",
+ " dropout_rate=dropout_rate,\n",
+ " optimizer=optimizer,\n",
+ " loss=loss,\n",
+ " metrics=['mae'],\n",
+ " epochs=epochs,\n",
+ " batch_size=batch_size,\n",
+ " patience=40,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " t0 = time.time()\n",
+ " with strategy.scope():\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " model = DeepKrigingDefaultTrainer(config)\n",
+ " elif name_model == \"DeepKriging_wendland*\":\n",
+ " model = DeepKrigingTrainer(config)\n",
+ " else:\n",
+ " model = DeepKrigingTrainer(config)\n",
+ " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
+ "\n",
+ " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
+ " if name_model == \"DeepKriging_wendland\":\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0)\n",
+ " ]\n",
+ " else:\n",
+ " callbacks = [\n",
+ " tf.keras.callbacks.ModelCheckpoint(\n",
+ " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
+ " save_best_only=True, save_weights_only=True, verbose=0),\n",
+ " tf.keras.callbacks.EarlyStopping(\n",
+ " monitor='val_loss', patience=config.patience, restore_best_weights=True, verbose=0),\n",
+ " tf.keras.callbacks.ReduceLROnPlateau(\n",
+ " monitor='val_loss', factor=0.5, patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
+ " ]\n",
+ "\n",
+ " train_dataset = tf.data.Dataset.from_tensor_slices((\n",
+ " (X_train, X_train_cat), y_train\n",
+ " )).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " val_dataset = tf.data.Dataset.from_tensor_slices((\n",
+ " (X_val, X_val_cat), y_val\n",
+ " )).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
+ "\n",
+ " history = model.model.fit(\n",
+ " train_dataset,\n",
+ " validation_data=val_dataset,\n",
+ " epochs=epochs,\n",
+ " callbacks=callbacks,\n",
+ " verbose=0\n",
+ " )\n",
+ "\n",
+ " if os.path.exists(checkpoint_path):\n",
+ " model.model.load_weights(checkpoint_path)\n",
+ " os.remove(checkpoint_path)\n",
+ " \n",
+ " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
+ " training_time = time.time() - t0\n",
+ "\n",
+ " metrics = {\n",
+ " \"Model\": name_model,\n",
+ " \"Val_loss\": float(val_loss),\n",
+ " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
+ " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
+ " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
+ " \"R2\": float(r2_score(y_test, y_pred)),\n",
+ " \"Time\": float(training_time),\n",
+ " }\n",
+ " \n",
+ " del train_dataset, val_dataset\n",
+ " gc.collect()\n",
+ " \n",
+ " return metrics, model\n",
+ "\n",
+ "\n",
+ "def cleanup_tf_session():\n",
+ " K.clear_session()\n",
+ " gc.collect()\n",
+ " try:\n",
+ " tf.keras.backend.clear_session()\n",
+ " except:\n",
+ " pass"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1573eecc",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:27.761193Z",
+ "iopub.status.busy": "2026-03-28T03:42:27.761067Z",
+ "iopub.status.idle": "2026-03-28T03:42:27.770613Z",
+ "shell.execute_reply": "2026-03-28T03:42:27.769878Z"
+ },
+ "papermill": {
+ "duration": 0.012358,
+ "end_time": "2026-03-28T03:42:27.771172",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.758814",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
+ " \"\"\"Plot data on Robinson projection\"\"\"\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ "\n",
+ " sc = ax.scatter(longitude, latitude, c=value, \n",
+ " cmap=mcolors.LinearSegmentedColormap.from_list(\"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256), \n",
+ " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
+ "\n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " return sc\n",
+ "\n",
+ "\n",
+ "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title, plot_type='prediction', cbar_label=None):\n",
+ " \"\"\"Create subplot with Robinson projection\"\"\"\n",
+ " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
+ " \n",
+ " # Choose colormap based on plot type\n",
+ " if plot_type == 'residual':\n",
+ " cmap = mcolors.LinearSegmentedColormap.from_list(\"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
+ " else:\n",
+ " cmap = mcolors.LinearSegmentedColormap.from_list(\"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256)\n",
+ " \n",
+ " # Set global view\n",
+ " ax.set_global()\n",
+ " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
+ " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
+ " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
+ " \n",
+ " # Plot scatter\n",
+ " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values, \n",
+ " cmap=cmap, s=10, transform=ccrs.PlateCarree(), \n",
+ " vmin=vmin, vmax=vmax)\n",
+ " \n",
+ " ax.set_title(title, fontsize=10, pad=3)\n",
+ " \n",
+ " # Add colorbar\n",
+ " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
+ " \n",
+ " if cbar_label is None:\n",
+ " cbar_label = \"Residual\" if plot_type == 'residual' else \"Prediction Value\"\n",
+ " \n",
+ " # Increased fontsize to match old version\n",
+ " cbar.set_label(cbar_label, fontsize=10)\n",
+ " cbar.ax.tick_params(labelsize=7)\n",
+ " \n",
+ " return ax, sc\n",
+ "\n",
+ "\n",
+ "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed, model_list=None, experiment_info=None):\n",
+ " \"\"\"Visualize model predictions and residuals using Robinson projection\"\"\"\n",
+ " if model_list is None:\n",
+ " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
+ " \n",
+ " idx_all = np.arange(len(y_combined))\n",
+ " train_val_idx, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
+ " y_test = y_combined[test_idx].reshape(-1)\n",
+ " test_locations = dataframe.iloc[test_idx]\n",
+ " \n",
+ " predictions = {}\n",
+ " for model_name in model_list:\n",
+ " if model_name not in models_dict or models_dict[model_name] is None:\n",
+ " continue\n",
+ " \n",
+ " model = models_dict[model_name]\n",
+ " X_test = basis_dict[model_name][test_idx]\n",
+ " \n",
+ " if \"DeepKriging\" in model_name:\n",
+ " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
+ " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
+ " elif model_name == \"UniversalKriging\":\n",
+ " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
+ " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
+ " else:\n",
+ " y_pred = model.predict(X_test).reshape(-1)\n",
+ " \n",
+ " mse = mean_squared_error(y_test, y_pred)\n",
+ " rmse = np.sqrt(mse)\n",
+ " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
+ " \n",
+ " predictions[model_name] = {\n",
+ " 'values': y_pred,\n",
+ " 'rmse': rmse,\n",
+ " 'order': order\n",
+ " }\n",
+ " \n",
+ " # Calculate global min/max for consistent color scale\n",
+ " all_values = [dataframe['z'].values] + [p['values'] for p in predictions.values()]\n",
+ " all_values_concat = np.concatenate(all_values)\n",
+ " vmin = np.percentile(all_values_concat, 2)\n",
+ " vmax = np.percentile(all_values_concat, 98)\n",
+ " \n",
+ " # Figure 1: Predictions comparison\n",
+ " fig1 = plt.figure(figsize=(16, 14))\n",
+ " \n",
+ " noise_info = \"\"\n",
+ " if experiment_info:\n",
+ " noise_info = f\"Noise={experiment_info.get('noise', 'None')}\"\n",
+ " if experiment_info.get('noise_var'):\n",
+ " noise_info += f\", Var={experiment_info['noise_var']}\"\n",
+ " \n",
+ " # Plot real data\n",
+ " create_subplot_robinson(\n",
+ " fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
+ " f'Real Data (n={len(dataframe)})',\n",
+ " plot_type='prediction'\n",
+ " )\n",
+ " \n",
+ " # Plot predictions\n",
+ " subplot_positions = [(2, 2, 2), (2, 2, 3), (2, 2, 4)]\n",
+ " for i, model_name in enumerate(model_list):\n",
+ " if model_name in predictions:\n",
+ " pred = predictions[model_name]\n",
+ " display_name = model_name.replace('DeepKriging_sphere', 'DK_S').replace('_Huber', '_H').replace('UniversalKriging', 'UK')\n",
+ " \n",
+ " create_subplot_robinson(\n",
+ " fig1, subplot_positions[i], test_locations, pred['values'], vmin, vmax,\n",
+ " f\"{display_name} (order={pred['order']}) | Test n={len(test_idx)} | RMSE={pred['rmse']:.4f}\",\n",
+ " plot_type='prediction'\n",
+ " )\n",
+ " \n",
+ " # Modified title fontsize and layout to match old version\n",
+ " plt.suptitle(\n",
+ " \"Prediction Comparison: Real Data vs. Models Predict\\n\"\n",
+ " f\"Stationary Gaussian processes + Eggholder (without noise and outliers)\",\n",
+ " fontsize=20, fontweight='bold', y=0.84\n",
+ " )\n",
+ " # Reverted to tight_layout with rect, as in the old version\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show()\n",
+ " plt.close(fig1)\n",
+ " \n",
+ "\n",
+ " # Figure 2: Residuals comparison\n",
+ " fig2 = plt.figure(figsize=(18, 6))\n",
+ " \n",
+ " residuals_map = {k: (y_test - predictions[k]['values']) \n",
+ " for k in model_list if k in predictions}\n",
+ " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
+ " \n",
+ " for i, model_name in enumerate(model_list):\n",
+ " if model_name in predictions:\n",
+ " residuals = residuals_map[model_name]\n",
+ " display_name = model_name.replace('DeepKriging_sphere', 'DK_S').replace('_Huber', '_H').replace('UniversalKriging', 'UK')\n",
+ " \n",
+ " create_subplot_robinson(\n",
+ " fig2, (1, 3, i+1), test_locations, residuals, -vmax_abs, vmax_abs,\n",
+ " f\"{display_name} Residuals (order={predictions[model_name]['order']})\",\n",
+ " plot_type='residual'\n",
+ " )\n",
+ " \n",
+ " # Modified title fontsize and layout to match old version\n",
+ " plt.suptitle(\n",
+ " f\"Residuals Comparison | Stationary Gaussian processes + Eggholder (without noise and outliers)\",\n",
+ " fontsize=20, fontweight='bold', y=0.84\n",
+ " )\n",
+ " # Reverted to tight_layout with rect\n",
+ " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
+ " plt.show()\n",
+ " plt.close(fig2)\n",
+ " \n",
+ " return predictions, test_idx"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ca651900",
+ "metadata": {
+ "papermill": {
+ "duration": 0.001632,
+ "end_time": "2026-03-28T03:42:27.774509",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.772877",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Experiment Setup"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1ce2f573",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:27.778697Z",
+ "iopub.status.busy": "2026-03-28T03:42:27.778560Z",
+ "iopub.status.idle": "2026-03-28T03:42:27.781727Z",
+ "shell.execute_reply": "2026-03-28T03:42:27.780957Z"
+ },
+ "papermill": {
+ "duration": 0.00595,
+ "end_time": "2026-03-28T03:42:27.782176",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.776226",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Model Setup\n",
+ "seed = 50\n",
+ "OUTLIER_RATIO = 0.025\n",
+ "OUTLIER_MULTIPLIER = 5\n",
+ "epochs = 500\n",
+ "batch_size = 256\n",
+ "num_sample = 2500\n",
+ "huber_delta = 1.345\n",
+ "\n",
+ "# Basis Setup\n",
+ "num_basis = [10**2, 19**2, 37**2]\n",
+ "knot_num = 1400\n",
+ "order_max = 1400\n",
+ "base_orders = [10, 50, 100, 150, 200, 1000]\n",
+ "\n",
+ "repeat_experiment = 50\n",
+ "\n",
+ "print(f\"noGP outliers experiment: {repeat_experiment} repeats, seed={seed}\")\n",
+ "print(f\"Outliers: {OUTLIER_RATIO*100:.1f}% x{OUTLIER_MULTIPLIER}\")\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "fed92e3c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T03:42:27.786146Z",
+ "iopub.status.busy": "2026-03-28T03:42:27.786018Z",
+ "iopub.status.idle": "2026-03-28T09:36:19.130027Z",
+ "shell.execute_reply": "2026-03-28T09:36:19.128858Z"
+ },
+ "papermill": {
+ "duration": 21231.347229,
+ "end_time": "2026-03-28T09:36:19.131058",
+ "exception": false,
+ "start_time": "2026-03-28T03:42:27.783829",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, subprocess, sys\n",
+ "\n",
+ "CHECKPOINT_PATH = \"checkpoint_noGP_outliers.json\"\n",
+ "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_noGP_outliers.py\")\n",
+ "PYTHON_EXE = sys.executable\n",
+ "\n",
+ "# ── load checkpoint ────────────────────────────────────────────────────────────\n",
+ "if os.path.exists(CHECKPOINT_PATH):\n",
+ " with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ " experiment_results = ckpt[\"experiment_results\"]\n",
+ " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
+ " print(f\"▶ Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
+ "else:\n",
+ " experiment_results = {\n",
+ " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ " }\n",
+ " completed_repeats = set()\n",
+ " print(\"▶ Starting fresh.\")\n",
+ "\n",
+ "# ── main loop ──────────────────────────────────────────────────────────────────\n",
+ "for repeat in range(repeat_experiment):\n",
+ "\n",
+ " if repeat in completed_repeats:\n",
+ " print(f\"⏭ Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
+ " continue\n",
+ "\n",
+ " print(f\"\\n{'='*70}\")\n",
+ " print(f\"🏃 Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
+ " print(f\"{'='*70}\")\n",
+ "\n",
+ " out_json = f\"repeat_{repeat}_noGP_outliers_results.json\"\n",
+ "\n",
+ " try:\n",
+ " result = subprocess.run(\n",
+ " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
+ " capture_output=False,\n",
+ " check=True,\n",
+ " timeout=7200,\n",
+ " )\n",
+ " except subprocess.CalledProcessError as e:\n",
+ " print(f\"❌ Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
+ " continue\n",
+ " except subprocess.TimeoutExpired:\n",
+ " print(f\"❌ Repeat {repeat+1} timed out. Skipping.\")\n",
+ " continue\n",
+ " except Exception as e:\n",
+ " print(f\"❌ Repeat {repeat+1} failed: {e}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " if not os.path.exists(out_json):\n",
+ " print(f\"❌ No output JSON for repeat {repeat+1}. Skipping.\")\n",
+ " continue\n",
+ "\n",
+ " with open(out_json) as f:\n",
+ " res = json.load(f)\n",
+ " os.remove(out_json)\n",
+ "\n",
+ " best_orders = res[\"best_orders\"]\n",
+ " metrics_map = res[\"metrics\"]\n",
+ "\n",
+ " table_rows = []\n",
+ " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
+ " met = metrics_map[m]\n",
+ " table_rows.append({\n",
+ " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
+ " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
+ " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
+ " })\n",
+ " import pandas as _pd\n",
+ " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ " for m in experiment_results:\n",
+ " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
+ " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
+ " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
+ " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
+ "\n",
+ " completed_repeats.add(repeat)\n",
+ " with open(CHECKPOINT_PATH, \"w\") as f:\n",
+ " json.dump({\"experiment_results\": experiment_results,\n",
+ " \"completed_repeats\": list(completed_repeats)}, f)\n",
+ "\n",
+ " print(f\"✅ Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
+ "\n",
+ "print(f\"\\n🎉 All done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f230fcba",
+ "metadata": {
+ "papermill": {
+ "duration": 0.023718,
+ "end_time": "2026-03-28T09:36:19.180162",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:19.156444",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "source": [
+ "### Summary of All Experiments"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "db4949b8",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2026-03-28T09:36:19.230512Z",
+ "iopub.status.busy": "2026-03-28T09:36:19.230314Z",
+ "iopub.status.idle": "2026-03-28T09:36:19.237375Z",
+ "shell.execute_reply": "2026-03-28T09:36:19.236689Z"
+ },
+ "papermill": {
+ "duration": 0.03168,
+ "end_time": "2026-03-28T09:36:19.237840",
+ "exception": false,
+ "start_time": "2026-03-28T09:36:19.206160",
+ "status": "completed"
+ },
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import json, numpy as np, pandas as pd\n",
+ "\n",
+ "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
+ " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
+ "\n",
+ "with open(CHECKPOINT_PATH) as f:\n",
+ " ckpt = json.load(f)\n",
+ "results = ckpt[\"experiment_results\"]\n",
+ "n = len(next(iter(results.values()))[\"MSPE\"])\n",
+ "\n",
+ "print(\"\\n\" + \"=\"*80)\n",
+ "print(f\"📊 Summary — {n} Repeats\")\n",
+ "print(\" Scenario: Non-GP + Outliers (2.5% × 5×), Nonstationary Trend\")\n",
+ "print(\"=\"*80)\n",
+ "\n",
+ "rows = []\n",
+ "for m in MODELS:\n",
+ " vals = results[m]\n",
+ " rows.append({\n",
+ " \"Model\": m,\n",
+ " \"N\": len(vals[\"MSPE\"]),\n",
+ " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
+ " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
+ " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
+ " \"R² (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
+ " })\n",
+ "\n",
+ "df = pd.DataFrame(rows)\n",
+ "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
+ "\n",
+ "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
+ "print(f\"\\n🏆 Best Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
+ "\n",
+ "print(\"\\n── Ranking by mean RMSE ──\")\n",
+ "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
+ " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "air-pollution",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "papermill": {
+ "default_parameters": {},
+ "duration": 21248.914793,
+ "end_time": "2026-03-28T09:36:20.377664",
+ "environment_variables": {},
+ "exception": null,
+ "input_path": "simulation_spherical_nn_sim_RSHC_c15_outliers_noGP_50reps.ipynb",
+ "output_path": "simulation_spherical_nn_sim_RSHC_c15_outliers_noGP_50reps_out.ipynb",
+ "parameters": {},
+ "start_time": "2026-03-28T03:42:11.462871",
+ "version": "2.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_outliers_stdscaler_50reps.ipynb b/examples/simulation/simulation_spherical_nn_sim_RSHC_c15_outliers_stdscaler_50reps.ipynb
similarity index 100%
rename from notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_outliers_stdscaler_50reps.ipynb
rename to examples/simulation/simulation_spherical_nn_sim_RSHC_c15_outliers_stdscaler_50reps.ipynb
diff --git a/notebook/real_data/experiment_deepkriging_windspeed_repeat_multitime.ipynb b/notebook/real_data/experiment_deepkriging_windspeed_repeat_multitime.ipynb
deleted file mode 100644
index ff93f9d..0000000
--- a/notebook/real_data/experiment_deepkriging_windspeed_repeat_multitime.ipynb
+++ /dev/null
@@ -1,1905 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "b1833097",
- "metadata": {
- "papermill": {
- "duration": 0.010962,
- "end_time": "2026-01-22T06:28:22.418741",
- "exception": false,
- "start_time": "2026-01-22T06:28:22.407779",
- "status": "completed"
- },
- "tags": []
- },
- "source": [
- "### Library"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "73a5f785",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-01-22T06:28:22.431002Z",
- "iopub.status.busy": "2026-01-22T06:28:22.430384Z",
- "iopub.status.idle": "2026-01-22T06:28:22.447875Z",
- "shell.execute_reply": "2026-01-22T06:28:22.444425Z"
- },
- "papermill": {
- "duration": 0.027822,
- "end_time": "2026-01-22T06:28:22.451416",
- "exception": false,
- "start_time": "2026-01-22T06:28:22.423594",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Project root added: /home/hhuscout/myproject/deepkriging-sphere\n"
- ]
- }
- ],
- "source": [
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "import sys\n",
- "import os\n",
- "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../..\"))\n",
- "if project_root not in sys.path:\n",
- " sys.path.append(project_root)\n",
- "print(f\"Project root added: {project_root}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "b67cc84b",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-01-22T06:28:22.468481Z",
- "iopub.status.busy": "2026-01-22T06:28:22.467637Z",
- "iopub.status.idle": "2026-01-22T06:28:26.827773Z",
- "shell.execute_reply": "2026-01-22T06:28:26.824631Z"
- },
- "papermill": {
- "duration": 4.372431,
- "end_time": "2026-01-22T06:28:26.830373",
- "exception": false,
- "start_time": "2026-01-22T06:28:22.457942",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-02-27 08:31:12.357643: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1772152272.368359 23958 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1772152272.372214 23958 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1772152272.381247 23958 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1772152272.381263 23958 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1772152272.381264 23958 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1772152272.381264 23958 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- }
- ],
- "source": [
- "import multiprocessing as mp\n",
- "if mp.get_start_method(allow_none=True) is None:\n",
- " mp.set_start_method('spawn')\n",
- "\n",
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
- "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
- "\n",
- "import os, time, gc\n",
- "from types import SimpleNamespace\n",
- "\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "from scipy.special import gamma\n",
- "\n",
- "import jax, jax.numpy as jnp\n",
- "\n",
- "import tensorflow as tf\n",
- "from tensorflow.keras import mixed_precision\n",
- "from tensorflow.keras.optimizers import Adam\n",
- "from tensorflow.keras.losses import Huber\n",
- "from tensorflow.keras import backend as K\n",
- "\n",
- "from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
- "from sklearn.linear_model import LinearRegression\n",
- "from sklearn.preprocessing import OneHotEncoder\n",
- "\n",
- "import optuna\n",
- "import plotly.io as pio\n",
- "import matplotlib.pyplot as plt\n",
- "import matplotlib.colors as mcolors\n",
- "import cartopy.crs as ccrs\n",
- "import cartopy.feature as cfeature"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "5f0aced4",
- "metadata": {
- "papermill": {
- "duration": 0.006036,
- "end_time": "2026-01-22T06:28:26.845882",
- "exception": false,
- "start_time": "2026-01-22T06:28:26.839846",
- "status": "completed"
- },
- "tags": []
- },
- "source": [
- "### Environment Setting"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "e5802f99",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-01-22T06:28:26.858357Z",
- "iopub.status.busy": "2026-01-22T06:28:26.857625Z",
- "iopub.status.idle": "2026-01-22T06:28:28.442676Z",
- "shell.execute_reply": "2026-01-22T06:28:28.440796Z"
- },
- "papermill": {
- "duration": 1.592998,
- "end_time": "2026-01-22T06:28:28.443637",
- "exception": false,
- "start_time": "2026-01-22T06:28:26.850639",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "np_f32 = np.float32\n",
- "jnp_f32 = jnp.float32\n",
- "dtype_basis = np.float32\n",
- "\n",
- "jax.config.update(\"jax_enable_x64\", False)\n",
- "\n",
- "pio.renderers.default = \"notebook\"\n",
- "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
- "\n",
- "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
- "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
- "\n",
- "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
- "\n",
- "def init_hardware(dtype: str = \"float32\"):\n",
- " gpus = tf.config.list_physical_devices(\"GPU\")\n",
- " for g in gpus:\n",
- " tf.config.experimental.set_memory_growth(g, True)\n",
- " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
- " mixed_precision.set_global_policy(dtype)\n",
- " return strategy\n",
- "\n",
- "strategy = init_hardware(dtype=\"float32\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "5695a52d",
- "metadata": {
- "papermill": {
- "duration": 0.001958,
- "end_time": "2026-01-22T06:28:28.447783",
- "exception": false,
- "start_time": "2026-01-22T06:28:28.445825",
- "status": "completed"
- },
- "tags": []
- },
- "source": [
- "### Our Functions"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "46760605",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-01-22T06:28:28.453557Z",
- "iopub.status.busy": "2026-01-22T06:28:28.453175Z",
- "iopub.status.idle": "2026-01-22T06:28:44.167367Z",
- "shell.execute_reply": "2026-01-22T06:28:44.165909Z"
- },
- "papermill": {
- "duration": 15.718946,
- "end_time": "2026-01-22T06:28:44.168729",
- "exception": false,
- "start_time": "2026-01-22T06:28:28.449783",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
- "source": [
- "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
- "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
- "\n",
- "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
- "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
- "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
- "\n",
- "from rpy2.robjects.conversion import localconverter\n",
- "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "373798b0",
- "metadata": {
- "papermill": {
- "duration": 0.002504,
- "end_time": "2026-01-22T06:28:44.174219",
- "exception": false,
- "start_time": "2026-01-22T06:28:44.171715",
- "status": "completed"
- },
- "tags": []
- },
- "source": [
- "### Helper"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "30fcd1bf",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-01-22T06:28:44.181793Z",
- "iopub.status.busy": "2026-01-22T06:28:44.181266Z",
- "iopub.status.idle": "2026-01-22T06:28:44.203250Z",
- "shell.execute_reply": "2026-01-22T06:28:44.202032Z"
- },
- "papermill": {
- "duration": 0.026668,
- "end_time": "2026-01-22T06:28:44.204158",
- "exception": false,
- "start_time": "2026-01-22T06:28:44.177490",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def data_preprocessing(data_path, variable, num_sample, seed):\n",
- " data = (pd.read_csv(data_path).sample(n=num_sample, random_state=seed).replace(\"-\", np.nan).dropna())\n",
- "\n",
- " numeric_cols = [\"longitude\", \"latitude\", variable]\n",
- " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
- " data.dropna(subset=numeric_cols, inplace=True)\n",
- "\n",
- " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
- "\n",
- " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
- " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
- "\n",
- " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
- " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
- " y_combined = data[variable].to_numpy().astype(\"float32\")[:, None]\n",
- "\n",
- " # Handle\n",
- " categorical_data = None\n",
- "\n",
- " return location_data, location_data_norm, categorical_data, y_combined\n",
- "\n",
- "\n",
- "def precompute_wendland(location, num_basis):\n",
- " parts = []\n",
- " for nb in num_basis:\n",
- " grid = np.column_stack(np.meshgrid(\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " )).reshape(-1, 2).astype(np_f32)\n",
- "\n",
- " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
- " parts.append(\n",
- " wendland(location, grid, theta=theta, k=2)\n",
- " )\n",
- "\n",
- " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
- "\n",
- "\n",
- "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
- " if knot is None:\n",
- " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
- " knot = location_data[idx_knot].astype(np_f32)\n",
- " else:\n",
- " idx_knot = None\n",
- "\n",
- " if distance_type == \"sphere\":\n",
- " with localconverter(numpy2ri_converter):\n",
- " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
- " res_dict = dict(zip(res_r.names(), res_r))\n",
- " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
- " else:\n",
- " phi = np.asarray(\n",
- " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max, \n",
- " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
- " )\n",
- "\n",
- " return phi, idx_knot, knot\n",
- "\n",
- "\n",
- "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
- " idx_all = np.arange(basis.shape[0])\n",
- " train_ratio, val_ratio, test_ratio = split_ratio\n",
- " \n",
- " train_val_x1, test_x1 = train_test_split(\n",
- " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
- " train_x1, val_x1 = train_test_split(\n",
- " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
- " \n",
- " X_train_cont, X_val_cont, X_test_cont = (\n",
- " basis[train_x1], basis[val_x1], basis[test_x1])\n",
- " y_train, y_val, y_test = (\n",
- " y_combined[train_x1], y_combined[val_x1], y_combined[test_x1])\n",
- " \n",
- " def flatten(targets):\n",
- " return targets.reshape(-1).astype(np_f32, copy=False)\n",
- " y_train_flat, y_val_flat, y_test_flat = map(flatten, [y_train, y_val, y_test])\n",
- "\n",
- " def flatten(covariates):\n",
- " return covariates.reshape(-1, basis.shape[1]).astype(np_f32)\n",
- " X_train_cont_flat, X_val_cont_flat, X_test_cont_flat = map(flatten, [X_train_cont, X_val_cont, X_test_cont])\n",
- " \n",
- " # Handle categorical features\n",
- " if categorical_data is None:\n",
- " zero_vector = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
- " X_train_cat, X_val_cat, X_test_cat = map(zero_vector, [len(X_train_cont_flat), len(X_val_cont_flat), len(X_test_cont_flat)])\n",
- " else:\n",
- " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
- " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
- " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
- " \n",
- " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
- " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
- " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
- " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
- " \n",
- " return (X_train_cont_flat, X_train_cat, y_train_flat,\n",
- " X_val_cont_flat, X_val_cat, y_val_flat,\n",
- " X_test_cont_flat, X_test_cat, y_test_flat)\n",
- "\n",
- "\n",
- "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
- " X_train, X_train_cat, y_train,\n",
- " X_val, X_val_cat, y_val,\n",
- " X_test, X_test_cat, y_test):\n",
- "\n",
- " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
- " t0 = time.time()\n",
- " model = LinearRegression().fit(X_train, y_train)\n",
- "\n",
- " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
- " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
- " training_time = time.time() - t0\n",
- " \n",
- " metrics = {\n",
- " \"Model\": name_model,\n",
- " \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(mean_squared_error(y_test, y_pred))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- "\n",
- " return metrics, model\n",
- " \n",
- " elif name_model == \"DeepKriging_wendland\":\n",
- " config = DeepKrigingDefaultConfig(\n",
- " input_dim=X_train.shape[1],\n",
- " output_type='continuous',\n",
- " optimizer=Adam(learning_rate=1e-3),\n",
- " loss=loss,\n",
- " epochs=epochs,\n",
- " batch_size=batch_size,\n",
- " verbose=0\n",
- " )\n",
- "\n",
- " elif name_model == \"DeepKriging_wendland*\":\n",
- " optimizer = Adam(learning_rate=5e-3)\n",
- " config = DeepKrigingModelConfig(\n",
- " input_dim=X_train.shape[1],\n",
- " output_type='continuous',\n",
- " hidden_layers=[1024, 512, 256, 128, 64],\n",
- " activation='relu',\n",
- " dropout_rate=dropout_rate,\n",
- " optimizer=optimizer,\n",
- " loss=loss,\n",
- " metrics=['mae'],\n",
- " epochs=epochs,\n",
- " batch_size=batch_size,\n",
- " patience=40,\n",
- " verbose=0\n",
- " )\n",
- "\n",
- " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
- " optimizer = Adam(learning_rate=5e-3)\n",
- " config = DeepKrigingModelConfig(\n",
- " input_dim=X_train.shape[1],\n",
- " output_type='continuous',\n",
- " hidden_layers=[1024, 512, 256, 128, 64],\n",
- " activation='relu',\n",
- " dropout_rate=dropout_rate,\n",
- " optimizer=optimizer,\n",
- " loss=loss,\n",
- " metrics=['mae'],\n",
- " epochs=epochs,\n",
- " batch_size=batch_size,\n",
- " patience=40,\n",
- " verbose=0\n",
- " )\n",
- "\n",
- " t0 = time.time()\n",
- " with strategy.scope():\n",
- " if name_model == \"DeepKriging_wendland\":\n",
- " model = DeepKrigingDefaultTrainer(config)\n",
- " elif name_model == \"DeepKriging_wendland*\":\n",
- " model = DeepKrigingTrainer(config)\n",
- " else:\n",
- " model = DeepKrigingTrainer(config)\n",
- " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
- "\n",
- " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
- " if name_model == \"DeepKriging_wendland\":\n",
- " callbacks = [\n",
- " tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0)\n",
- " ]\n",
- " else:\n",
- " callbacks = [\n",
- " tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0),\n",
- " tf.keras.callbacks.EarlyStopping(\n",
- " monitor='val_loss', patience=config.patience, restore_best_weights=True, verbose=0),\n",
- " tf.keras.callbacks.ReduceLROnPlateau(\n",
- " monitor='val_loss', factor=0.5, patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
- " ]\n",
- "\n",
- " train_dataset = tf.data.Dataset.from_tensor_slices((\n",
- " (X_train, X_train_cat), y_train\n",
- " )).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- "\n",
- " val_dataset = tf.data.Dataset.from_tensor_slices((\n",
- " (X_val, X_val_cat), y_val\n",
- " )).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- "\n",
- " history = model.model.fit(\n",
- " train_dataset,\n",
- " validation_data=val_dataset,\n",
- " epochs=epochs,\n",
- " callbacks=callbacks,\n",
- " verbose=0\n",
- " )\n",
- "\n",
- " if os.path.exists(checkpoint_path):\n",
- " model.model.load_weights(checkpoint_path)\n",
- " os.remove(checkpoint_path)\n",
- " \n",
- " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
- " training_time = time.time() - t0\n",
- "\n",
- " metrics = {\n",
- " \"Model\": name_model,\n",
- " \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(mean_squared_error(y_test, y_pred))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- "\n",
- " del train_dataset, val_dataset\n",
- " K.clear_session()\n",
- " gc.collect()\n",
- " \n",
- " return metrics, model"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "10cce7e2",
- "metadata": {},
- "source": [
- "### Plot Helper"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "a539a8b1",
- "metadata": {},
- "outputs": [],
- "source": [
- "def plot_robinson_subplots(data_dict, vmin, vmax, title_main):\n",
- " cmap = mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256)\n",
- " \n",
- " n_plots = len(data_dict)\n",
- " n_cols = 2\n",
- " n_rows = (n_plots + n_cols - 1) // n_cols\n",
- " \n",
- " fig = plt.figure(figsize=(20, 6 * n_rows))\n",
- " fig.suptitle(title_main, fontsize=20, fontweight='bold', y=0.98)\n",
- " \n",
- " for idx, (subplot_title, (lon, lat, val)) in enumerate(data_dict.items(), 1):\n",
- " ax = fig.add_subplot(n_rows, n_cols, idx, projection=ccrs.Robinson())\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " \n",
- " scatter = ax.scatter(lon, lat, c=val, cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(subplot_title, fontsize=14, pad=10, fontweight='bold')\n",
- " \n",
- " cbar = plt.colorbar(scatter, ax=ax, orientation='horizontal', pad=0.05, shrink=0.6, aspect=30)\n",
- " cbar.set_label('Temperature (°C)', fontsize=10)\n",
- " \n",
- " plt.tight_layout()\n",
- " \n",
- " return fig"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "8e9a0017",
- "metadata": {
- "papermill": {
- "duration": 0.002063,
- "end_time": "2026-01-22T06:28:44.208431",
- "exception": false,
- "start_time": "2026-01-22T06:28:44.206368",
- "status": "completed"
- },
- "tags": []
- },
- "source": [
- "### Experiment Setup"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "c046277c",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-01-22T06:28:44.308270Z",
- "iopub.status.busy": "2026-01-22T06:28:44.308026Z",
- "iopub.status.idle": "2026-01-22T06:28:44.312080Z",
- "shell.execute_reply": "2026-01-22T06:28:44.311090Z"
- },
- "papermill": {
- "duration": 0.102419,
- "end_time": "2026-01-22T06:28:44.312756",
- "exception": false,
- "start_time": "2026-01-22T06:28:44.210337",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Model Setup\n",
- "seed = 1234\n",
- "epochs = 500\n",
- "batch_size = 2048\n",
- "num_sample = 200000\n",
- "huber_delta = 1.345\n",
- "\n",
- "# Data\n",
- "data_path = \"data_speed_combined.csv\"\n",
- "\n",
- "# Basis Setup\n",
- "# Wendland\n",
- "num_basis = [10**2, 19**2, 37**2]\n",
- "\n",
- "knot_num = 2000\n",
- "order_max = 1400\n",
- "base_orders = [50, 100, 200, 500, 700, 1000, 1400]\n",
- "\n",
- "# Set to 2 repeats per variable\n",
- "repeat_experiment = 2"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "5e832176",
- "metadata": {
- "papermill": {
- "duration": 0.00218,
- "end_time": "2026-01-22T06:28:44.317676",
- "exception": false,
- "start_time": "2026-01-22T06:28:44.315496",
- "status": "completed"
- },
- "tags": []
- },
- "source": [
- "### Outcome"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "2a9c97e1",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 05 | Target Column: 'vec.4'\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 05 ('vec.4') - Repeat 1/2, Seed=1234\n",
- "================================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 10.6371 10.6522 \n",
- " 100 9.0019 9.0806 \n",
- " 200 6.5102 6.6467 \n",
- " 500 4.3081 4.3323 \n",
- " 700 3.6944 3.6901 \n",
- " 1000 3.0564 3.0757 \n",
- " 1400 2.4906 2.4631 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1772152456.561108 23958 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1772152458.092503 25296 service.cc:152] XLA service 0x55d68b4d7400 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1772152458.092526 25296 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n",
- "I0000 00:00:1772152458.398397 25296 cuda_dnn.cc:529] Loaded cuDNN version 90501\n",
- "I0000 00:00:1772152460.462626 25296 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.8218 0.8071 \n",
- " 100 0.4593 0.4426 \n",
- " 200 0.2973 0.2938 \n",
- " 500 0.2201 0.2092 \n",
- " 700 0.2078 0.2001 *\n",
- " 1000 0.2085 0.1982 \n",
- " 1400 0.2612 0.2414 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.2052 0.2026 \n",
- " 100 0.1380 0.1348 \n",
- " 200 0.1036 0.1052 \n",
- " 500 0.0948 0.0925 \n",
- " 700 0.0926 0.0886 \n",
- " 1000 0.0867 0.0841 *\n",
- " 1400 0.0916 0.0908 \n",
- " Best order: 1000\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.0952 0.2006 \n",
- " 100 0.0678 0.1415 \n",
- " 200 0.0513 0.1082 \n",
- " 500 0.0454 0.0914 \n",
- " 700 0.0416 0.0874 *\n",
- " 1000 0.0426 0.0871 \n",
- " 1400 0.0439 0.0908 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.8198, sigma²=87.3651, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.7677, sigma²=85.6864, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.9241, sigma²=90.2806, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.7871, sigma²=115.6798, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.2381, sigma²=67.6853, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.1654, sigma²=34.8541, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7212, sigma²=21.1049, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1472 0.1398 \n",
- " 100 0.1472 0.1398 \n",
- " 200 0.1472 0.1398 \n",
- " 500 0.1472 0.1398 \n",
- " 700 0.1472 0.1398 \n",
- " 1000 0.1473 0.1399 \n",
- " 1400 0.1471 0.1398 *\n",
- " Best order: 1400\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7212, sigma²=21.1049, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 12.86 | 3.5861 | 2.6695 | 0.2139 | 8.98s |\n",
- "| OLS_sphere | 1400 | 2.4631 | 1.5694 | 1.1259 | 0.8494 | 6.17s |\n",
- "| DeepKriging_wendland | -- | 10.4755 | 3.2366 | 2.2275 | 0.3596 | 221.19s |\n",
- "| DeepKriging_wendland* | -- | 8.3106 | 2.8828 | 1.774 | 0.492 | 95.53s |\n",
- "| DeepKriging_mrts | 700 | 0.2108 | 0.4591 | 0.296 | 0.9871 | 208.32s |\n",
- "| DeepKriging_sphere | 1000 | 0.0925 | 0.3041 | 0.166 | 0.9943 | 176.74s |\n",
- "| DeepKriging_sphere_Huber | 700 | 0.0888 | 0.298 | 0.1632 | 0.9946 | 195.89s |\n",
- "| UniversalKriging | 1400 | 0.1398 | 0.3739 | 0.2058 | 0.9915 | 700.92s |\n",
- "\n",
- "✅ Completed Hour 05 ('vec.4') - Repeat 1/2\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 05 ('vec.4') - Repeat 2/2, Seed=1235\n",
- "================================================================================\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8277, sigma²=24.1034, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 12.7 | 3.5637 | 2.6595 | 0.2097 | 9.15s |\n",
- "| OLS_sphere | 1400 | 2.636 | 1.6236 | 1.1462 | 0.836 | 6.19s |\n",
- "| DeepKriging_wendland | -- | 9.9713 | 3.1577 | 2.1994 | 0.3795 | 209.69s |\n",
- "| DeepKriging_wendland* | -- | 8.3393 | 2.8878 | 1.8686 | 0.4811 | 70.30s |\n",
- "| DeepKriging_mrts | 700 | 0.2197 | 0.4687 | 0.2957 | 0.9863 | 207.23s |\n",
- "| DeepKriging_sphere | 1000 | 0.0963 | 0.3103 | 0.163 | 0.994 | 222.52s |\n",
- "| DeepKriging_sphere_Huber | 700 | 0.0986 | 0.314 | 0.1659 | 0.9939 | 209.26s |\n",
- "| UniversalKriging | 1400 | 0.1548 | 0.3934 | 0.211 | 0.9904 | 699.25s |\n",
- "\n",
- "✅ Completed Hour 05 ('vec.4') - Repeat 2/2\n",
- "\n",
- "================================================================================\n",
- "📊 Summary of repeat experiments for Hour 05 ('vec.4')\n",
- "================================================================================\n",
- "Selected Best Orders: {'OLS_sphere': 1400, 'DeepKriging_mrts': 700, 'DeepKriging_sphere': 1000, 'DeepKriging_sphere_Huber': 700, 'UniversalKriging': 1400}\n",
- "================================================================================\n",
- "\n",
- "| Model | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|------------|-----------|-----------|-----------|\n",
- "| OLS_wendland | 12.78±0.08 | 3.57±0.01 | 2.66±0.00 | 0.21±0.00 |\n",
- "| OLS_sphere | 2.55±0.09 | 1.60±0.03 | 1.14±0.01 | 0.84±0.01 |\n",
- "| DeepKriging_wendland | 10.22±0.25 | 3.20±0.04 | 2.21±0.01 | 0.37±0.01 |\n",
- "| DeepKriging_wendland* | 8.32±0.01 | 2.89±0.00 | 1.82±0.05 | 0.49±0.01 |\n",
- "| DeepKriging_mrts | 0.22±0.00 | 0.46±0.00 | 0.30±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere | 0.09±0.00 | 0.31±0.00 | 0.16±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere_Huber | 0.09±0.00 | 0.31±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| UniversalKriging | 0.15±0.01 | 0.38±0.01 | 0.21±0.00 | 0.99±0.00 |\n",
- "\n",
- "🏆 Best Model for Hour 05 ('vec.4'): DeepKriging_sphere (RMSE: 0.31±0.00)\n",
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 06 | Target Column: 'vec.5'\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 06 ('vec.5') - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 10.7246 10.7473 \n",
- " 100 8.9704 9.0986 \n",
- " 200 6.6685 6.7508 \n",
- " 500 4.4952 4.5014 \n",
- " 700 3.7867 3.7988 \n",
- " 1000 2.9903 3.0072 \n",
- " 1400 2.4222 2.4468 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.8625 0.8507 \n",
- " 100 0.4439 0.4318 \n",
- " 200 0.3013 0.2844 \n",
- " 500 0.2293 0.2262 \n",
- " 700 0.1948 0.1869 *\n",
- " 1000 0.2091 0.2043 \n",
- " 1400 0.2396 0.2288 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1809 0.1786 \n",
- " 100 0.1319 0.1279 \n",
- " 200 0.1084 0.1049 \n",
- " 500 0.0930 0.0912 \n",
- " 700 0.0860 0.0855 *\n",
- " 1000 0.0871 0.0827 \n",
- " 1400 0.0903 0.0843 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.0899 0.1876 \n",
- " 100 0.0663 0.1350 \n",
- " 200 0.0513 0.1049 \n",
- " 500 0.0424 0.0869 \n",
- " 700 0.0407 0.0832 \n",
- " 1000 0.0402 0.0817 *\n",
- " 1400 0.0605 0.1252 \n",
- " Best order: 1000\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.2677, sigma²=100.4253, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.6296, sigma²=80.7453, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.1191, sigma²=95.5283, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.3755, sigma²=102.3720, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.5039, sigma²=75.2774, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.3184, sigma²=39.0711, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6299, sigma²=18.3147, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1431 0.1350 \n",
- " 100 0.1431 0.1350 \n",
- " 200 0.1431 0.1349 \n",
- " 500 0.1431 0.1349 \n",
- " 700 0.1431 0.1349 \n",
- " 1000 0.1431 0.1350 \n",
- " 1400 0.1428 0.1348 *\n",
- " Best order: 1400\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6299, sigma²=18.3147, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 13.0321 | 3.61 | 2.6902 | 0.21 | 8.88s |\n",
- "| OLS_sphere | 1400 | 2.4468 | 1.5642 | 1.1002 | 0.8517 | 6.20s |\n",
- "| DeepKriging_wendland | -- | 10.3001 | 3.2094 | 2.225 | 0.3756 | 218.20s |\n",
- "| DeepKriging_wendland* | -- | 8.2078 | 2.8649 | 1.7539 | 0.5024 | 101.46s |\n",
- "| DeepKriging_mrts | 700 | 0.1833 | 0.4281 | 0.2785 | 0.9889 | 210.53s |\n",
- "| DeepKriging_sphere | 700 | 0.0865 | 0.2941 | 0.1604 | 0.9948 | 167.66s |\n",
- "| DeepKriging_sphere_Huber | 1000 | 0.0799 | 0.2826 | 0.1531 | 0.9952 | 212.94s |\n",
- "| UniversalKriging | 1400 | 0.1348 | 0.3671 | 0.2037 | 0.9918 | 719.24s |\n",
- "\n",
- "✅ Completed Hour 06 ('vec.5') - Repeat 1/2\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 06 ('vec.5') - Repeat 2/2, Seed=1235\n",
- "================================================================================\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9170, sigma²=26.3506, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 12.8247 | 3.5812 | 2.6774 | 0.2049 | 11.27s |\n",
- "| OLS_sphere | 1400 | 2.6122 | 1.6162 | 1.1473 | 0.838 | 7.86s |\n",
- "| DeepKriging_wendland | -- | 9.7478 | 3.1222 | 2.165 | 0.3956 | 262.35s |\n",
- "| DeepKriging_wendland* | -- | 8.4186 | 2.9015 | 1.8306 | 0.4781 | 86.53s |\n",
- "| DeepKriging_mrts | 700 | 0.2109 | 0.4593 | 0.2918 | 0.9869 | 252.59s |\n",
- "| DeepKriging_sphere | 700 | 0.0972 | 0.3118 | 0.1674 | 0.994 | 203.15s |\n",
- "| DeepKriging_sphere_Huber | 1000 | 0.0955 | 0.3091 | 0.1644 | 0.9941 | 285.60s |\n",
- "| UniversalKriging | 1400 | 0.1544 | 0.3929 | 0.2097 | 0.9904 | 704.02s |\n",
- "\n",
- "✅ Completed Hour 06 ('vec.5') - Repeat 2/2\n",
- "\n",
- "================================================================================\n",
- "📊 Summary of repeat experiments for Hour 06 ('vec.5')\n",
- "================================================================================\n",
- "Selected Best Orders: {'OLS_sphere': 1400, 'DeepKriging_mrts': 700, 'DeepKriging_sphere': 700, 'DeepKriging_sphere_Huber': 1000, 'UniversalKriging': 1400}\n",
- "================================================================================\n",
- "\n",
- "| Model | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|------------|-----------|-----------|-----------|\n",
- "| OLS_wendland | 12.93±0.10 | 3.60±0.01 | 2.68±0.01 | 0.21±0.00 |\n",
- "| OLS_sphere | 2.53±0.08 | 1.59±0.03 | 1.12±0.02 | 0.84±0.01 |\n",
- "| DeepKriging_wendland | 10.02±0.28 | 3.17±0.04 | 2.19±0.03 | 0.39±0.01 |\n",
- "| DeepKriging_wendland* | 8.31±0.11 | 2.88±0.02 | 1.79±0.04 | 0.49±0.01 |\n",
- "| DeepKriging_mrts | 0.20±0.01 | 0.44±0.02 | 0.29±0.01 | 0.99±0.00 |\n",
- "| DeepKriging_sphere | 0.09±0.01 | 0.30±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere_Huber | 0.09±0.01 | 0.30±0.01 | 0.16±0.01 | 0.99±0.00 |\n",
- "| UniversalKriging | 0.14±0.01 | 0.38±0.01 | 0.21±0.00 | 0.99±0.00 |\n",
- "\n",
- "🏆 Best Model for Hour 06 ('vec.5'): DeepKriging_sphere (RMSE: 0.30±0.01)\n",
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 07 | Target Column: 'vec.6'\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 07 ('vec.6') - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 10.7831 10.8074 \n",
- " 100 9.1023 9.1859 \n",
- " 200 6.7459 6.8544 \n",
- " 500 4.4124 4.4179 \n",
- " 700 3.7503 3.7587 \n",
- " 1000 3.0041 3.0280 \n",
- " 1400 2.4127 2.4308 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.9472 0.9199 \n",
- " 100 0.4849 0.4651 \n",
- " 200 0.2891 0.2722 \n",
- " 500 0.2061 0.1988 *\n",
- " 700 0.2110 0.1995 \n",
- " 1000 0.2134 0.1988 \n",
- " 1400 0.2395 0.2255 \n",
- " Best order: 500\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1783 0.1717 \n",
- " 100 0.1315 0.1250 \n",
- " 200 0.1066 0.1010 \n",
- " 500 0.0899 0.0839 \n",
- " 700 0.0931 0.0873 \n",
- " 1000 0.0908 0.0811 \n",
- " 1400 0.0894 0.0827 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.0904 0.1854 \n",
- " 100 0.0650 0.1314 \n",
- " 200 0.0498 0.0999 \n",
- " 500 0.0420 0.0841 \n",
- " 700 0.0392 0.0797 *\n",
- " 1000 0.0408 0.0798 \n",
- " 1400 0.0458 0.0911 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.0817, sigma²=94.1019, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.5814, sigma²=78.7644, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.9056, sigma²=88.4255, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.2637, sigma²=98.2822, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=5.6719, sigma²=169.4733, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.2083, sigma²=65.0773, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9529, sigma²=27.5027, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1434 0.1330 \n",
- " 100 0.1434 0.1330 \n",
- " 200 0.1434 0.1330 \n",
- " 500 0.1433 0.1329 \n",
- " 700 0.1433 0.1329 \n",
- " 1000 0.1432 0.1329 \n",
- " 1400 0.1428 0.1326 *\n",
- " Best order: 1400\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9529, sigma²=27.5027, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 13.2356 | 3.6381 | 2.7122 | 0.2054 | 16.27s |\n",
- "| OLS_sphere | 1400 | 2.4308 | 1.5591 | 1.1069 | 0.8541 | 7.04s |\n",
- "| DeepKriging_wendland | -- | 10.8845 | 3.2992 | 2.2817 | 0.3465 | 221.26s |\n",
- "| DeepKriging_wendland* | -- | 8.8723 | 2.9786 | 1.8527 | 0.4673 | 73.51s |\n",
- "| DeepKriging_mrts | 500 | 0.2241 | 0.4734 | 0.3113 | 0.9865 | 193.36s |\n",
- "| DeepKriging_sphere | 1400 | 0.084 | 0.2898 | 0.1561 | 0.995 | 262.17s |\n",
- "| DeepKriging_sphere_Huber | 700 | 0.0787 | 0.2805 | 0.153 | 0.9953 | 211.46s |\n",
- "| UniversalKriging | 1400 | 0.1326 | 0.3642 | 0.2014 | 0.992 | 696.40s |\n",
- "\n",
- "✅ Completed Hour 07 ('vec.6') - Repeat 1/2\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 07 ('vec.6') - Repeat 2/2, Seed=1235\n",
- "================================================================================\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9355, sigma²=26.7330, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 12.956 | 3.5994 | 2.6965 | 0.2004 | 9.15s |\n",
- "| OLS_sphere | 1400 | 2.5598 | 1.5999 | 1.1288 | 0.842 | 6.28s |\n",
- "| DeepKriging_wendland | -- | 9.7668 | 3.1252 | 2.1637 | 0.3972 | 219.16s |\n",
- "| DeepKriging_wendland* | -- | 7.9418 | 2.8181 | 1.7094 | 0.5099 | 101.14s |\n",
- "| DeepKriging_mrts | 500 | 0.219 | 0.4679 | 0.2953 | 0.9865 | 190.56s |\n",
- "| DeepKriging_sphere | 1400 | 0.0941 | 0.3067 | 0.1615 | 0.9942 | 251.87s |\n",
- "| DeepKriging_sphere_Huber | 700 | 0.0932 | 0.3052 | 0.1597 | 0.9943 | 208.31s |\n",
- "| UniversalKriging | 1400 | 0.1549 | 0.3936 | 0.2082 | 0.9904 | 699.33s |\n",
- "\n",
- "✅ Completed Hour 07 ('vec.6') - Repeat 2/2\n",
- "\n",
- "================================================================================\n",
- "📊 Summary of repeat experiments for Hour 07 ('vec.6')\n",
- "================================================================================\n",
- "Selected Best Orders: {'OLS_sphere': 1400, 'DeepKriging_mrts': 500, 'DeepKriging_sphere': 1400, 'DeepKriging_sphere_Huber': 700, 'UniversalKriging': 1400}\n",
- "================================================================================\n",
- "\n",
- "| Model | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|------------|-----------|-----------|-----------|\n",
- "| OLS_wendland | 13.10±0.14 | 3.62±0.02 | 2.70±0.01 | 0.20±0.00 |\n",
- "| OLS_sphere | 2.50±0.06 | 1.58±0.02 | 1.12±0.01 | 0.85±0.01 |\n",
- "| DeepKriging_wendland | 10.33±0.56 | 3.21±0.09 | 2.22±0.06 | 0.37±0.03 |\n",
- "| DeepKriging_wendland* | 8.41±0.47 | 2.90±0.08 | 1.78±0.07 | 0.49±0.02 |\n",
- "| DeepKriging_mrts | 0.22±0.00 | 0.47±0.00 | 0.30±0.01 | 0.99±0.00 |\n",
- "| DeepKriging_sphere | 0.09±0.01 | 0.30±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere_Huber | 0.09±0.01 | 0.29±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| UniversalKriging | 0.14±0.01 | 0.38±0.01 | 0.20±0.00 | 0.99±0.00 |\n",
- "\n",
- "🏆 Best Model for Hour 07 ('vec.6'): DeepKriging_sphere_Huber (RMSE: 0.29±0.01)\n",
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 08 | Target Column: 'vec.7'\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 08 ('vec.7') - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 10.9958 10.9726 \n",
- " 100 9.2994 9.3660 \n",
- " 200 6.8040 6.8604 \n",
- " 500 4.4002 4.3615 \n",
- " 700 3.7434 3.6993 \n",
- " 1000 3.0658 3.0371 \n",
- " 1400 2.5294 2.5032 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.9074 0.8763 \n",
- " 100 0.4396 0.4164 \n",
- " 200 0.2941 0.2807 \n",
- " 500 0.2091 0.2030 \n",
- " 700 0.1899 0.1796 *\n",
- " 1000 0.2034 0.1920 \n",
- " 1400 0.2424 0.2265 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1850 0.1772 \n",
- " 100 0.1395 0.1341 \n",
- " 200 0.1058 0.0984 \n",
- " 500 0.0898 0.0830 \n",
- " 700 0.0901 0.0834 \n",
- " 1000 0.0932 0.0876 \n",
- " 1400 0.0885 0.0834 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.0954 0.1928 \n",
- " 100 0.0643 0.1275 \n",
- " 200 0.0514 0.1025 \n",
- " 500 0.0419 0.0828 \n",
- " 700 0.0415 0.0804 \n",
- " 1000 0.0422 0.0814 \n",
- " 1400 0.0396 0.0767 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.6314, sigma²=79.6808, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.7661, sigma²=83.6826, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.0272, sigma²=91.3151, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.9475, sigma²=117.9733, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=5.7970, sigma²=171.8152, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.9884, sigma²=87.4659, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9856, sigma²=28.2706, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1446 0.1320 \n",
- " 100 0.1446 0.1320 \n",
- " 200 0.1446 0.1320 \n",
- " 500 0.1445 0.1319 \n",
- " 700 0.1445 0.1319 \n",
- " 1000 0.1444 0.1319 \n",
- " 1400 0.1443 0.1317 *\n",
- " Best order: 1400\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9856, sigma²=28.2706, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 13.4009 | 3.6607 | 2.7276 | 0.201 | 10.89s |\n",
- "| OLS_sphere | 1400 | 2.5032 | 1.5822 | 1.126 | 0.8508 | 6.18s |\n",
- "| DeepKriging_wendland | -- | 10.5489 | 3.2479 | 2.2225 | 0.371 | 223.12s |\n",
- "| DeepKriging_wendland* | -- | 8.5679 | 2.9271 | 1.7939 | 0.4892 | 103.65s |\n",
- "| DeepKriging_mrts | 700 | 0.1824 | 0.4271 | 0.2777 | 0.9891 | 215.24s |\n",
- "| DeepKriging_sphere | 1400 | 0.079 | 0.281 | 0.1557 | 0.9953 | 193.39s |\n",
- "| DeepKriging_sphere_Huber | 1400 | 0.0807 | 0.2841 | 0.1546 | 0.9952 | 215.54s |\n",
- "| UniversalKriging | 1400 | 0.1317 | 0.3629 | 0.2005 | 0.9921 | 670.78s |\n",
- "\n",
- "✅ Completed Hour 08 ('vec.7') - Repeat 1/2\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 08 ('vec.7') - Repeat 2/2, Seed=1235\n",
- "================================================================================\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7488, sigma²=21.3983, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 13.1076 | 3.6204 | 2.7145 | 0.1975 | 9.55s |\n",
- "| OLS_sphere | 1400 | 2.5771 | 1.6053 | 1.1316 | 0.8422 | 6.15s |\n",
- "| DeepKriging_wendland | -- | 10.1171 | 3.1807 | 2.2177 | 0.3806 | 225.76s |\n",
- "| DeepKriging_wendland* | -- | 8.4628 | 2.9091 | 1.8436 | 0.4818 | 82.28s |\n",
- "| DeepKriging_mrts | 700 | 0.2003 | 0.4476 | 0.2816 | 0.9877 | 216.49s |\n",
- "| DeepKriging_sphere | 1400 | 0.0896 | 0.2994 | 0.1572 | 0.9945 | 272.00s |\n",
- "| DeepKriging_sphere_Huber | 1400 | 0.09 | 0.3 | 0.1599 | 0.9945 | 183.48s |\n",
- "| UniversalKriging | 1400 | 0.1509 | 0.3885 | 0.2056 | 0.9908 | 694.76s |\n",
- "\n",
- "✅ Completed Hour 08 ('vec.7') - Repeat 2/2\n",
- "\n",
- "================================================================================\n",
- "📊 Summary of repeat experiments for Hour 08 ('vec.7')\n",
- "================================================================================\n",
- "Selected Best Orders: {'OLS_sphere': 1400, 'DeepKriging_mrts': 700, 'DeepKriging_sphere': 1400, 'DeepKriging_sphere_Huber': 1400, 'UniversalKriging': 1400}\n",
- "================================================================================\n",
- "\n",
- "| Model | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|------------|-----------|-----------|-----------|\n",
- "| OLS_wendland | 13.25±0.15 | 3.64±0.02 | 2.72±0.01 | 0.20±0.00 |\n",
- "| OLS_sphere | 2.54±0.04 | 1.59±0.01 | 1.13±0.00 | 0.85±0.00 |\n",
- "| DeepKriging_wendland | 10.33±0.22 | 3.21±0.03 | 2.22±0.00 | 0.38±0.00 |\n",
- "| DeepKriging_wendland* | 8.52±0.05 | 2.92±0.01 | 1.82±0.02 | 0.49±0.00 |\n",
- "| DeepKriging_mrts | 0.19±0.01 | 0.44±0.01 | 0.28±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere | 0.08±0.01 | 0.29±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere_Huber | 0.09±0.00 | 0.29±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| UniversalKriging | 0.14±0.01 | 0.38±0.01 | 0.20±0.00 | 0.99±0.00 |\n",
- "\n",
- "🏆 Best Model for Hour 08 ('vec.7'): DeepKriging_sphere (RMSE: 0.29±0.01)\n",
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 09 | Target Column: 'vec.8'\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 09 ('vec.8') - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 11.2106 11.1437 \n",
- " 100 9.2099 9.2184 \n",
- " 200 6.7352 6.7579 \n",
- " 500 4.4822 4.4914 \n",
- " 700 3.7979 3.7575 \n",
- " 1000 3.0844 3.0534 \n",
- " 1400 2.5547 2.5449 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.9220 0.8900 \n",
- " 100 0.4937 0.4546 \n",
- " 200 0.2947 0.2763 \n",
- " 500 0.2151 0.2022 \n",
- " 700 0.2144 0.1957 \n",
- " 1000 0.2044 0.1866 *\n",
- " 1400 0.2545 0.2404 \n",
- " Best order: 1000\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1898 0.1792 \n",
- " 100 0.1399 0.1294 \n",
- " 200 0.1081 0.1013 \n",
- " 500 0.0934 0.0868 \n",
- " 700 0.0880 0.0822 *\n",
- " 1000 0.0900 0.0817 \n",
- " 1400 0.0917 0.0878 \n",
- " Best order: 700\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.0916 0.1841 \n",
- " 100 0.0665 0.1311 \n",
- " 200 0.0540 0.1064 \n",
- " 500 0.0441 0.0874 \n",
- " 700 0.0427 0.0845 \n",
- " 1000 0.0412 0.0820 *\n",
- " 1400 0.0417 0.0845 \n",
- " Best order: 1000\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.7698, sigma²=83.2292, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.5433, sigma²=76.3557, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.8058, sigma²=83.9602, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.4254, sigma²=101.6425, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.7661, sigma²=81.3689, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.2300, sigma²=35.5956, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8891, sigma²=25.1659, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1441 0.1312 \n",
- " 100 0.1441 0.1312 \n",
- " 200 0.1441 0.1311 \n",
- " 500 0.1441 0.1311 \n",
- " 700 0.1441 0.1311 \n",
- " 1000 0.1440 0.1310 \n",
- " 1400 0.1438 0.1309 *\n",
- " Best order: 1400\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8891, sigma²=25.1659, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 13.5188 | 3.6768 | 2.737 | 0.1983 | 19.07s |\n",
- "| OLS_sphere | 1400 | 2.5449 | 1.5953 | 1.1269 | 0.8491 | 8.04s |\n",
- "| DeepKriging_wendland | -- | 10.4883 | 3.2386 | 2.2331 | 0.3781 | 258.96s |\n",
- "| DeepKriging_wendland* | -- | 9.2886 | 3.0477 | 1.9486 | 0.4492 | 83.70s |\n",
- "| DeepKriging_mrts | 1000 | 0.1755 | 0.4189 | 0.2711 | 0.9896 | 240.02s |\n",
- "| DeepKriging_sphere | 700 | 0.0829 | 0.2879 | 0.1576 | 0.9951 | 201.85s |\n",
- "| DeepKriging_sphere_Huber | 1000 | 0.0854 | 0.2922 | 0.1606 | 0.9949 | 194.41s |\n",
- "| UniversalKriging | 1400 | 0.1309 | 0.3618 | 0.1991 | 0.9922 | 675.45s |\n",
- "\n",
- "✅ Completed Hour 09 ('vec.8') - Repeat 1/2\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 09 ('vec.8') - Repeat 2/2, Seed=1235\n",
- "================================================================================\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6974, sigma²=19.7374, nugget=0.0000\n",
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 | Time |\n",
- "|--------------------------|---------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 13.3017 | 3.6472 | 2.7272 | 0.1964 | 9.91s |\n",
- "| OLS_sphere | 1400 | 2.4732 | 1.5726 | 1.1136 | 0.8506 | 6.10s |\n",
- "| DeepKriging_wendland | -- | 10.3573 | 3.2183 | 2.2176 | 0.3742 | 220.90s |\n",
- "| DeepKriging_wendland* | -- | 8.5516 | 2.9243 | 1.813 | 0.4833 | 96.00s |\n",
- "| DeepKriging_mrts | 1000 | 0.2017 | 0.4491 | 0.2886 | 0.9878 | 238.21s |\n",
- "| DeepKriging_sphere | 700 | 0.0905 | 0.3007 | 0.1607 | 0.9945 | 212.70s |\n",
- "| DeepKriging_sphere_Huber | 1000 | 0.0904 | 0.3007 | 0.1593 | 0.9945 | 222.71s |\n",
- "| UniversalKriging | 1400 | 0.1482 | 0.385 | 0.2054 | 0.991 | 694.16s |\n",
- "\n",
- "✅ Completed Hour 09 ('vec.8') - Repeat 2/2\n",
- "\n",
- "================================================================================\n",
- "📊 Summary of repeat experiments for Hour 09 ('vec.8')\n",
- "================================================================================\n",
- "Selected Best Orders: {'OLS_sphere': 1400, 'DeepKriging_mrts': 1000, 'DeepKriging_sphere': 700, 'DeepKriging_sphere_Huber': 1000, 'UniversalKriging': 1400}\n",
- "================================================================================\n",
- "\n",
- "| Model | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|------------|-----------|-----------|-----------|\n",
- "| OLS_wendland | 13.41±0.11 | 3.66±0.01 | 2.73±0.00 | 0.20±0.00 |\n",
- "| OLS_sphere | 2.51±0.04 | 1.58±0.01 | 1.12±0.01 | 0.85±0.00 |\n",
- "| DeepKriging_wendland | 10.42±0.07 | 3.23±0.01 | 2.23±0.01 | 0.38±0.00 |\n",
- "| DeepKriging_wendland* | 8.92±0.37 | 2.99±0.06 | 1.88±0.07 | 0.47±0.02 |\n",
- "| DeepKriging_mrts | 0.19±0.01 | 0.43±0.02 | 0.28±0.01 | 0.99±0.00 |\n",
- "| DeepKriging_sphere | 0.09±0.00 | 0.29±0.01 | 0.16±0.00 | 0.99±0.00 |\n",
- "| DeepKriging_sphere_Huber | 0.09±0.00 | 0.30±0.00 | 0.16±0.00 | 0.99±0.00 |\n",
- "| UniversalKriging | 0.14±0.01 | 0.37±0.01 | 0.20±0.00 | 0.99±0.00 |\n",
- "\n",
- "🏆 Best Model for Hour 09 ('vec.8'): DeepKriging_sphere (RMSE: 0.29±0.01)\n",
- "\n",
- "\n",
- "################################################################################\n",
- "🚀 STARTING DATASET: Hour 10 | Target Column: 'vec.9'\n",
- "################################################################################\n",
- "\n",
- "================================================================================\n",
- "🏃 Hour 10 ('vec.9') - Repeat 1/2, Seed=1234\n",
- "================================================================================\n",
- "\n",
- "Tuning order parameter for OLS_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 11.3616 11.2161 \n",
- " 100 9.5406 9.4896 \n",
- " 200 6.7991 6.8424 \n",
- " 500 4.5106 4.5302 \n",
- " 700 3.8120 3.7298 \n",
- " 1000 3.1177 3.0522 \n",
- " 1400 2.5910 2.5648 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for DeepKriging_mrts\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.9127 0.8757 \n",
- " 100 0.4552 0.4159 \n",
- " 200 0.3059 0.2881 \n",
- " 500 0.1965 0.1862 *\n",
- " 700 0.2125 0.2001 \n",
- " 1000 0.1989 0.1953 \n",
- " 1400 0.2388 0.2300 \n",
- " Best order: 500\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1902 0.1815 \n",
- " 100 0.1362 0.1284 \n",
- " 200 0.1085 0.1034 \n",
- " 500 0.0877 0.0831 *\n",
- " 700 0.0882 0.0827 \n",
- " 1000 0.0891 0.0827 \n",
- " 1400 0.0879 0.0843 \n",
- " Best order: 500\n",
- "\n",
- "Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.0878 0.1811 \n",
- " 100 0.0691 0.1411 \n",
- " 200 0.0528 0.1083 \n",
- " 500 0.0421 0.0861 \n",
- " 700 0.0409 0.0840 \n",
- " 1000 0.0426 0.0879 \n",
- " 1400 0.0409 0.0829 *\n",
- " Best order: 1400\n",
- "\n",
- "Tuning order parameter for UniversalKriging\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.6243, sigma²=78.6563, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.9578, sigma²=88.5641, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=2.9649, sigma²=88.5107, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.3885, sigma²=100.2580, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=3.9386, sigma²=115.5697, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.4195, sigma²=41.1321, nugget=0.0000\n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.0673, sigma²=30.3491, nugget=0.0000\n",
- " Order Val Loss Test MSE \n",
- " ----------------------------------\n",
- " 50 0.1431 0.1360 \n",
- " 100 0.1431 0.1359 \n",
- " 200 0.1431 0.1359 \n",
- " 500 0.1430 0.1359 \n",
- " 700 0.1430 0.1358 \n",
- " 1000 0.1430 0.1358 \n",
- " 1400 0.1429 0.1358 *\n",
- " Best order: 1400\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-02-28 00:45:57.202891: W external/local_xla/xla/tsl/framework/bfc_allocator.cc:501] Allocator (GPU_0_bfc) ran out of memory trying to allocate 1.09GiB (rounded to 1171200000)requested by op _EagerConst\n",
- "If the cause is memory fragmentation maybe the environment variable 'TF_GPU_ALLOCATOR=cuda_malloc_async' will improve the situation. \n",
- "Current allocation summary follows.\n",
- "Current allocation summary follows.\n",
- "2026-02-28 00:45:57.238830: W external/local_xla/xla/tsl/framework/bfc_allocator.cc:512] ***********************************************************_______**********___________________*____\n"
- ]
- },
- {
- "ename": "InternalError",
- "evalue": "Failed copying input tensor from /job:localhost/replica:0/task:0/device:CPU:0 to /job:localhost/replica:0/task:0/device:GPU:0 in order to run _EagerConst: Dst tensor is not initialized.",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mInternalError\u001b[0m Traceback (most recent call last)",
- "Input \u001b[0;32mIn [8]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 220\u001b[0m parts \u001b[38;5;241m=\u001b[39m prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n\u001b[1;32m 221\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m strategy\u001b[38;5;241m.\u001b[39mscope():\n\u001b[0;32m--> 222\u001b[0m metrics, model \u001b[38;5;241m=\u001b[39m \u001b[43mtrain_eval\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mDeepKriging_wendland\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mepochs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbatch_size\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmse\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparts\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 223\u001b[0m Record[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mDeepKriging_wendland\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m {\n\u001b[1;32m 224\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMSPE\u001b[39m\u001b[38;5;124m\"\u001b[39m: metrics[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMSPE\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRMSE\u001b[39m\u001b[38;5;124m\"\u001b[39m: metrics[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRMSE\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMAE\u001b[39m\u001b[38;5;124m\"\u001b[39m: metrics[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMAE\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mR2\u001b[39m\u001b[38;5;124m\"\u001b[39m: metrics[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mR2\u001b[39m\u001b[38;5;124m\"\u001b[39m],\n\u001b[1;32m 225\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTime\u001b[39m\u001b[38;5;124m\"\u001b[39m: metrics[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mTime\u001b[39m\u001b[38;5;124m\"\u001b[39m], \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mParam\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m--\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 226\u001b[0m }\n\u001b[1;32m 227\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m parts, model; K\u001b[38;5;241m.\u001b[39mclear_session(); gc\u001b[38;5;241m.\u001b[39mcollect()\n",
- "Input \u001b[0;32mIn [5]\u001b[0m, in \u001b[0;36mtrain_eval\u001b[0;34m(name_model, epochs, batch_size, loss, dropout_rate, X_train, X_train_cat, y_train, X_val, X_val_cat, y_val, X_test, X_test_cat, y_test)\u001b[0m\n\u001b[1;32m 188\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 189\u001b[0m callbacks \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 190\u001b[0m tf\u001b[38;5;241m.\u001b[39mkeras\u001b[38;5;241m.\u001b[39mcallbacks\u001b[38;5;241m.\u001b[39mModelCheckpoint(\n\u001b[1;32m 191\u001b[0m filepath\u001b[38;5;241m=\u001b[39mcheckpoint_path, monitor\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mval_loss\u001b[39m\u001b[38;5;124m\"\u001b[39m, mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmin\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 196\u001b[0m monitor\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mval_loss\u001b[39m\u001b[38;5;124m'\u001b[39m, factor\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.5\u001b[39m, patience\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mmax\u001b[39m(\u001b[38;5;241m5\u001b[39m, config\u001b[38;5;241m.\u001b[39mpatience \u001b[38;5;241m/\u001b[39m\u001b[38;5;241m/\u001b[39m \u001b[38;5;241m2\u001b[39m), min_lr\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1e-6\u001b[39m, verbose\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n\u001b[1;32m 197\u001b[0m ]\n\u001b[0;32m--> 199\u001b[0m train_dataset \u001b[38;5;241m=\u001b[39m \u001b[43mtf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mDataset\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrom_tensor_slices\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 200\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mX_train\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mX_train_cat\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_train\u001b[49m\n\u001b[1;32m 201\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mbatch(config\u001b[38;5;241m.\u001b[39mbatch_size)\u001b[38;5;241m.\u001b[39mprefetch(tf\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mAUTOTUNE)\n\u001b[1;32m 203\u001b[0m val_dataset \u001b[38;5;241m=\u001b[39m tf\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mDataset\u001b[38;5;241m.\u001b[39mfrom_tensor_slices((\n\u001b[1;32m 204\u001b[0m (X_val, X_val_cat), y_val\n\u001b[1;32m 205\u001b[0m ))\u001b[38;5;241m.\u001b[39mbatch(config\u001b[38;5;241m.\u001b[39mbatch_size)\u001b[38;5;241m.\u001b[39mprefetch(tf\u001b[38;5;241m.\u001b[39mdata\u001b[38;5;241m.\u001b[39mAUTOTUNE)\n\u001b[1;32m 207\u001b[0m history \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mmodel\u001b[38;5;241m.\u001b[39mfit(\n\u001b[1;32m 208\u001b[0m train_dataset,\n\u001b[1;32m 209\u001b[0m validation_data\u001b[38;5;241m=\u001b[39mval_dataset,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 212\u001b[0m verbose\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 213\u001b[0m )\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/data/ops/dataset_ops.py:827\u001b[0m, in \u001b[0;36mDatasetV2.from_tensor_slices\u001b[0;34m(tensors, name)\u001b[0m\n\u001b[1;32m 823\u001b[0m \u001b[38;5;66;03m# Loaded lazily due to a circular dependency (dataset_ops ->\u001b[39;00m\n\u001b[1;32m 824\u001b[0m \u001b[38;5;66;03m# from_tensor_slices_op -> dataset_ops).\u001b[39;00m\n\u001b[1;32m 825\u001b[0m \u001b[38;5;66;03m# pylint: disable=g-import-not-at-top,protected-access\u001b[39;00m\n\u001b[1;32m 826\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdata\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mops\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m from_tensor_slices_op\n\u001b[0;32m--> 827\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfrom_tensor_slices_op\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_from_tensor_slices\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtensors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/data/ops/from_tensor_slices_op.py:25\u001b[0m, in \u001b[0;36m_from_tensor_slices\u001b[0;34m(tensors, name)\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_from_tensor_slices\u001b[39m(tensors, name\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m---> 25\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_TensorSliceDataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtensors\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/data/ops/from_tensor_slices_op.py:33\u001b[0m, in \u001b[0;36m_TensorSliceDataset.__init__\u001b[0;34m(self, element, is_files, name)\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, element, is_files\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, name\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[1;32m 32\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"See `Dataset.from_tensor_slices` for details.\"\"\"\u001b[39;00m\n\u001b[0;32m---> 33\u001b[0m element \u001b[38;5;241m=\u001b[39m \u001b[43mstructure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnormalize_element\u001b[49m\u001b[43m(\u001b[49m\u001b[43melement\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 34\u001b[0m batched_spec \u001b[38;5;241m=\u001b[39m structure\u001b[38;5;241m.\u001b[39mtype_spec_from_value(element)\n\u001b[1;32m 35\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_tensors \u001b[38;5;241m=\u001b[39m structure\u001b[38;5;241m.\u001b[39mto_batched_tensor_list(batched_spec, element)\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/data/util/structure.py:134\u001b[0m, in \u001b[0;36mnormalize_element\u001b[0;34m(element, element_signature)\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 132\u001b[0m dtype \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(spec, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdtype\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 133\u001b[0m normalized_components\u001b[38;5;241m.\u001b[39mappend(\n\u001b[0;32m--> 134\u001b[0m \u001b[43mops\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_to_tensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcomponent_\u001b[39;49m\u001b[38;5;132;43;01m%d\u001b[39;49;00m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m%\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mi\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m nest\u001b[38;5;241m.\u001b[39mpack_sequence_as(pack_as, normalized_components)\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/profiler/trace.py:183\u001b[0m, in \u001b[0;36mtrace_wrapper..inner_wrapper..wrapped\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Trace(trace_name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mtrace_kwargs):\n\u001b[1;32m 182\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m--> 183\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/ops.py:736\u001b[0m, in \u001b[0;36mconvert_to_tensor\u001b[0;34m(value, dtype, name, as_ref, preferred_dtype, dtype_hint, ctx, accepted_result_types)\u001b[0m\n\u001b[1;32m 734\u001b[0m \u001b[38;5;66;03m# TODO(b/142518781): Fix all call-sites and remove redundant arg\u001b[39;00m\n\u001b[1;32m 735\u001b[0m preferred_dtype \u001b[38;5;241m=\u001b[39m preferred_dtype \u001b[38;5;129;01mor\u001b[39;00m dtype_hint\n\u001b[0;32m--> 736\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mtensor_conversion_registry\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 737\u001b[0m \u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_ref\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpreferred_dtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maccepted_result_types\u001b[49m\n\u001b[1;32m 738\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/tensor_conversion_registry.py:234\u001b[0m, in \u001b[0;36mconvert\u001b[0;34m(value, dtype, name, as_ref, preferred_dtype, accepted_result_types)\u001b[0m\n\u001b[1;32m 225\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 226\u001b[0m _add_error_prefix(\n\u001b[1;32m 227\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mConversion function \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mconversion_func\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m for type \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mactual = \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mret\u001b[38;5;241m.\u001b[39mdtype\u001b[38;5;241m.\u001b[39mbase_dtype\u001b[38;5;241m.\u001b[39mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 231\u001b[0m name\u001b[38;5;241m=\u001b[39mname))\n\u001b[1;32m 233\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ret \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 234\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mconversion_func\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mas_ref\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mas_ref\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 236\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ret \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28mNotImplemented\u001b[39m:\n\u001b[1;32m 237\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/constant_tensor_conversion.py:29\u001b[0m, in \u001b[0;36m_constant_tensor_conversion_function\u001b[0;34m(v, dtype, name, as_ref)\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mtensorflow\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpython\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mframework\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m constant_op \u001b[38;5;66;03m# pylint: disable=g-import-not-at-top\u001b[39;00m\n\u001b[1;32m 28\u001b[0m _ \u001b[38;5;241m=\u001b[39m as_ref\n\u001b[0;32m---> 29\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mconstant_op\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconstant\u001b[49m\u001b[43m(\u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/ops/weak_tensor_ops.py:142\u001b[0m, in \u001b[0;36mweak_tensor_binary_op_wrapper..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m ops\u001b[38;5;241m.\u001b[39mis_auto_dtype_conversion_enabled():\n\u001b[0;32m--> 142\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mop\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 143\u001b[0m bound_arguments \u001b[38;5;241m=\u001b[39m signature\u001b[38;5;241m.\u001b[39mbind(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 144\u001b[0m bound_arguments\u001b[38;5;241m.\u001b[39mapply_defaults()\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/constant_op.py:276\u001b[0m, in \u001b[0;36mconstant\u001b[0;34m(value, dtype, shape, name)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[38;5;129m@tf_export\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mconstant\u001b[39m\u001b[38;5;124m\"\u001b[39m, v1\u001b[38;5;241m=\u001b[39m[])\n\u001b[1;32m 178\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mconstant\u001b[39m(\n\u001b[1;32m 179\u001b[0m value, dtype\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, shape\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, name\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mConst\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 180\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Union[ops\u001b[38;5;241m.\u001b[39mOperation, ops\u001b[38;5;241m.\u001b[39m_EagerTensorBase]:\n\u001b[1;32m 181\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Creates a constant tensor from a tensor-like object.\u001b[39;00m\n\u001b[1;32m 182\u001b[0m \n\u001b[1;32m 183\u001b[0m \u001b[38;5;124;03m Note: All eager `tf.Tensor` values are immutable (in contrast to\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 274\u001b[0m \u001b[38;5;124;03m ValueError: if called on a symbolic tensor.\u001b[39;00m\n\u001b[1;32m 275\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 276\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_constant_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mshape\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mverify_shape\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 277\u001b[0m \u001b[43m \u001b[49m\u001b[43mallow_broadcast\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/constant_op.py:289\u001b[0m, in \u001b[0;36m_constant_impl\u001b[0;34m(value, dtype, shape, name, verify_shape, allow_broadcast)\u001b[0m\n\u001b[1;32m 287\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m trace\u001b[38;5;241m.\u001b[39mTrace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtf.constant\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[1;32m 288\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _constant_eager_impl(ctx, value, dtype, shape, verify_shape)\n\u001b[0;32m--> 289\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_constant_eager_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mshape\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mverify_shape\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 291\u001b[0m const_tensor \u001b[38;5;241m=\u001b[39m ops\u001b[38;5;241m.\u001b[39m_create_graph_constant( \u001b[38;5;66;03m# pylint: disable=protected-access\u001b[39;00m\n\u001b[1;32m 292\u001b[0m value, dtype, shape, name, verify_shape, allow_broadcast\n\u001b[1;32m 293\u001b[0m )\n\u001b[1;32m 294\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m const_tensor\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/constant_op.py:301\u001b[0m, in \u001b[0;36m_constant_eager_impl\u001b[0;34m(ctx, value, dtype, shape, verify_shape)\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_constant_eager_impl\u001b[39m(\n\u001b[1;32m 298\u001b[0m ctx, value, dtype, shape, verify_shape\n\u001b[1;32m 299\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ops\u001b[38;5;241m.\u001b[39m_EagerTensorBase:\n\u001b[1;32m 300\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Creates a constant on the current device.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 301\u001b[0m t \u001b[38;5;241m=\u001b[39m \u001b[43mconvert_to_eager_tensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 302\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m shape \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m t\n",
- "File \u001b[0;32m~/miniconda3/envs/air-pollution/lib/python3.10/site-packages/tensorflow/python/framework/constant_op.py:108\u001b[0m, in \u001b[0;36mconvert_to_eager_tensor\u001b[0;34m(value, ctx, dtype)\u001b[0m\n\u001b[1;32m 106\u001b[0m dtype \u001b[38;5;241m=\u001b[39m dtypes\u001b[38;5;241m.\u001b[39mas_dtype(dtype)\u001b[38;5;241m.\u001b[39mas_datatype_enum\n\u001b[1;32m 107\u001b[0m ctx\u001b[38;5;241m.\u001b[39mensure_initialized()\n\u001b[0;32m--> 108\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mops\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mEagerTensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdevice_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdtype\u001b[49m\u001b[43m)\u001b[49m\n",
- "\u001b[0;31mInternalError\u001b[0m: Failed copying input tensor from /job:localhost/replica:0/task:0/device:CPU:0 to /job:localhost/replica:0/task:0/device:GPU:0 in order to run _EagerConst: Dst tensor is not initialized."
- ]
- }
- ],
- "source": [
- "# Dictionary to hold the final summary table for every hour\n",
- "all_hours_summary = {}\n",
- "\n",
- "# # Generate the 24 column names: 'vec' (Hour 1), 'vec.1' (Hour 2), ..., 'vec.23' (Hour 24)\n",
- "# target_variables = [\"vec\"] + [f\"vec.{i}\" for i in range(5, 24)]\n",
- "# ONLY include hours 5 through 24 (which corresponds to vec.4 through vec.23)\n",
- "target_variables = [f\"vec.{i}\" for i in range(4, 24)]\n",
- "\n",
- "for hour, variable in enumerate(target_variables, start=5):\n",
- " \n",
- " print(f\"\\n\\n{'#'*80}\")\n",
- " print(f\"🚀 STARTING DATASET: Hour {hour:02d} | Target Column: '{variable}'\")\n",
- " print(f\"{'#'*80}\")\n",
- " \n",
- " best_orders = {}\n",
- " experiment_results = {\n",
- " model: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
- " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
- " }\n",
- "\n",
- " for repeat in range(repeat_experiment):\n",
- " seed_current = seed + repeat\n",
- "\n",
- " print(f\"\\n{'='*80}\")\n",
- " print(f\"🏃 Hour {hour:02d} ('{variable}') - Repeat {repeat+1}/{repeat_experiment}, Seed={seed_current}\")\n",
- " print(f\"{'='*80}\")\n",
- "\n",
- " # Data Preprocessing (Variable gets dynamically passed in here!)\n",
- " location_data, location_data_norm, categorical_data, y_combined = data_preprocessing(data_path, variable, num_sample, seed_current)\n",
- "\n",
- " # Compute Basis Functions\n",
- " max_Phi_sphere, idx_knot, knot = precompute_max_mrts(\"sphere\", location_data, knot_num, order_max, knot=None)\n",
- " max_Phi_sphere = max_Phi_sphere.astype(dtype_basis, copy=False)\n",
- "\n",
- " max_Phi_mrts, idx_knot_mrts, knot_mrts = precompute_max_mrts(\"mrts\", location_data, knot_num, order_max, knot=location_data[idx_knot])\n",
- " max_Phi_mrts = max_Phi_mrts.astype(dtype_basis, copy=False)\n",
- "\n",
- " Phi_wendland = precompute_wendland(location_data_norm, num_basis)\n",
- "\n",
- " if repeat == 0:\n",
- " # Tuning order parameter for OLS_sphere\n",
- " Best_val_OLS_S = float('inf')\n",
- " Best_order_OLS_S = None\n",
- " Results_order_OLS_S = []\n",
- " \n",
- " print(\"\\nTuning order parameter for OLS_sphere\")\n",
- " for order in base_orders:\n",
- " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
- " metrics, model = train_eval(\"OLS_sphere\", None, None, None, None, *parts)\n",
- " \n",
- " Results_order_OLS_S.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
- " \n",
- " if metrics[\"Val_loss\"] < Best_val_OLS_S:\n",
- " Best_val_OLS_S = metrics[\"Val_loss\"]\n",
- " Best_order_OLS_S = order\n",
- " \n",
- " del Phi_sphere, parts, model; gc.collect()\n",
- "\n",
- " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
- " print(f\" {'-'*34}\")\n",
- " for res in Results_order_OLS_S:\n",
- " marker = \" *\" if res['order'] == Best_order_OLS_S else \"\"\n",
- " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
- " print(f\" Best order: {Best_order_OLS_S}\")\n",
- " best_orders['OLS_sphere'] = Best_order_OLS_S\n",
- "\n",
- " # Tuning order parameter for DeepKriging_mrts\n",
- " Best_val_DK_mrts = float('inf')\n",
- " Best_order_DK_mrts = None\n",
- " Results_order_DK_mrts = []\n",
- "\n",
- " print(\"\\nTuning order parameter for DeepKriging_mrts\")\n",
- " for order in base_orders:\n",
- " Phi_mrts = max_Phi_mrts[:, :order].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_mrts, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_mrts\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
- " \n",
- " Results_order_DK_mrts.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
- " \n",
- " if metrics[\"Val_loss\"] < Best_val_DK_mrts:\n",
- " Best_val_DK_mrts = metrics[\"Val_loss\"]\n",
- " Best_order_DK_mrts = order\n",
- " \n",
- " del Phi_mrts, parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
- " print(f\" {'-'*34}\")\n",
- " for res in Results_order_DK_mrts:\n",
- " marker = \" *\" if res['order'] == Best_order_DK_mrts else \"\"\n",
- " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
- " print(f\" Best order: {Best_order_DK_mrts}\")\n",
- " best_orders['DeepKriging_mrts'] = Best_order_DK_mrts\n",
- "\n",
- " # Tuning order parameter for DeepKriging_sphere\n",
- " Best_val_DK_S = float('inf')\n",
- " Best_order_DK_S = None\n",
- " Results_order_DK_S = []\n",
- "\n",
- " print(\"\\nTuning order parameter for DeepKriging_sphere\")\n",
- " for order in base_orders:\n",
- " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_sphere\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
- " \n",
- " Results_order_DK_S.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
- " \n",
- " if metrics[\"Val_loss\"] < Best_val_DK_S:\n",
- " Best_val_DK_S = metrics[\"Val_loss\"]\n",
- " Best_order_DK_S = order\n",
- " \n",
- " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
- " print(f\" {'-'*34}\")\n",
- " for res in Results_order_DK_S:\n",
- " marker = \" *\" if res['order'] == Best_order_DK_S else \"\"\n",
- " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
- " print(f\" Best order: {Best_order_DK_S}\")\n",
- " best_orders['DeepKriging_sphere'] = Best_order_DK_S\n",
- "\n",
- " # Tuning order parameter for DeepKriging_sphere_Huber\n",
- " Best_val_DK_S_H = float('inf')\n",
- " Best_order_DK_S_H = None\n",
- " Results_order_DK_S_H = []\n",
- " \n",
- " print(\"\\nTuning order parameter for DeepKriging_sphere_Huber\")\n",
- " for order in base_orders:\n",
- " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_sphere_Huber\", epochs, batch_size, Huber(delta=huber_delta), 0.01, *parts)\n",
- " \n",
- " Results_order_DK_S_H.append({'order': order, 'val_loss': metrics[\"Val_loss\"], 'mspe': metrics[\"MSPE\"]})\n",
- " \n",
- " if metrics[\"Val_loss\"] < Best_val_DK_S_H:\n",
- " Best_val_DK_S_H = metrics[\"Val_loss\"]\n",
- " Best_order_DK_S_H = order\n",
- " \n",
- " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
- " print(f\" {'-'*34}\")\n",
- " for res in Results_order_DK_S_H:\n",
- " marker = \" *\" if res['order'] == Best_order_DK_S_H else \"\"\n",
- " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
- " print(f\" Best order: {Best_order_DK_S_H}\")\n",
- " best_orders['DeepKriging_sphere_Huber'] = Best_order_DK_S_H\n",
- "\n",
- " # Tuning order parameter for UniversalKriging\n",
- " Best_val_UK = float('inf')\n",
- " Best_order_UK = None\n",
- " Results_order_UK = []\n",
- " \n",
- " print(\"\\nTuning order parameter for UniversalKriging\")\n",
- " for order in base_orders:\n",
- " Phi_sphere = max_Phi_sphere[:, :order].astype(np_f32)\n",
- " \n",
- " idx_all = np.arange(Phi_sphere.shape[0])\n",
- " train_val_idx, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed_current)\n",
- " train_idx, val_idx = train_test_split(train_val_idx, train_size=8/9, random_state=seed_current)\n",
- " \n",
- " coords_train, coords_val, coords_test = location_data[train_idx], location_data[val_idx], location_data[test_idx]\n",
- " phi_train, phi_val, phi_test = Phi_sphere[train_idx], Phi_sphere[val_idx], Phi_sphere[test_idx]\n",
- " y_train, y_val, y_test = y_combined[train_idx].flatten(), y_combined[val_idx].flatten(), y_combined[test_idx].flatten()\n",
- " \n",
- " uk_model = UniversalKriging(num_neighbors=30, cov_function='exponential')\n",
- " uk_model.fit(coords_train, phi_train, y_train, center_y=True)\n",
- " \n",
- " y_pred_val = uk_model.predict(coords_val, phi_val, return_centered=True)\n",
- " val_loss = mean_squared_error(y_val - uk_model.y_mean, y_pred_val)\n",
- " \n",
- " y_pred_test = uk_model.predict(coords_test, phi_test, return_centered=False)\n",
- " test_mse = mean_squared_error(y_test, y_pred_test)\n",
- " \n",
- " Results_order_UK.append({'order': order, 'val_loss': val_loss, 'mspe': test_mse})\n",
- " \n",
- " if val_loss < Best_val_UK:\n",
- " Best_val_UK = val_loss\n",
- " Best_order_UK = order\n",
- " \n",
- " uk_model.cleanup()\n",
- " del uk_model, Phi_sphere, coords_train, coords_val, coords_test, phi_train, phi_val, phi_test, y_train, y_val, y_test; gc.collect()\n",
- " \n",
- " print(f\" {'Order':<10} {'Val Loss':<12} {'Test MSE':<12}\")\n",
- " print(f\" {'-'*34}\")\n",
- " for res in Results_order_UK:\n",
- " marker = \" *\" if res['order'] == Best_order_UK else \"\"\n",
- " print(f\" {res['order']:<10} {res['val_loss']:<12.4f} {res['mspe']:<12.4f}{marker}\")\n",
- " print(f\" Best order: {Best_order_UK}\")\n",
- " best_orders['UniversalKriging'] = Best_order_UK\n",
- " gc.collect()\n",
- "\n",
- "\n",
- " # Execute training with best orders\n",
- " Record = {}\n",
- "\n",
- " # OLS_wendland\n",
- " parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n",
- " metrics, model = train_eval(\"OLS_wendland\", None, None, None, None, *parts)\n",
- " Record[\"OLS_wendland\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": \"--\"\n",
- " }\n",
- " del parts, model; gc.collect()\n",
- "\n",
- " # OLS_sphere\n",
- " Phi_sphere = max_Phi_sphere[:, :best_orders['OLS_sphere']].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
- " metrics, model = train_eval(\"OLS_sphere\", None, None, None, None, *parts)\n",
- " Record[\"OLS_sphere\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": best_orders['OLS_sphere']\n",
- " }\n",
- " del Phi_sphere, parts, model; gc.collect()\n",
- "\n",
- " # DeepKriging_wendland\n",
- " parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_wendland\", epochs, batch_size, \"mse\", None, *parts)\n",
- " Record[\"DeepKriging_wendland\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": \"--\"\n",
- " }\n",
- " del parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " # DeepKriging_wendland*\n",
- " parts = prepare_data(categorical_data, Phi_wendland, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_wendland*\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
- " Record[\"DeepKriging_wendland*\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": \"--\"\n",
- " }\n",
- " del parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " # DeepKriging_mrts\n",
- " Phi_mrts = max_Phi_mrts[:, :best_orders['DeepKriging_mrts']].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_mrts, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_mrts\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
- " Record[\"DeepKriging_mrts\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": best_orders['DeepKriging_mrts']\n",
- " }\n",
- " del Phi_mrts, parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " # DeepKriging_sphere\n",
- " Phi_sphere = max_Phi_sphere[:, :best_orders['DeepKriging_sphere']].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_sphere\", epochs, batch_size, \"mse\", 0.01, *parts)\n",
- " Record[\"DeepKriging_sphere\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": best_orders['DeepKriging_sphere']\n",
- " }\n",
- " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " # DeepKriging_sphere_Huber\n",
- " Phi_sphere = max_Phi_sphere[:, :best_orders['DeepKriging_sphere_Huber']].astype(np_f32)\n",
- " parts = prepare_data(categorical_data, Phi_sphere, y_combined, seed_current)\n",
- " with strategy.scope():\n",
- " metrics, model = train_eval(\"DeepKriging_sphere_Huber\", epochs, batch_size, Huber(delta=huber_delta), 0.01, *parts)\n",
- " Record[\"DeepKriging_sphere_Huber\"] = {\n",
- " \"MSPE\": metrics[\"MSPE\"], \"RMSE\": metrics[\"RMSE\"], \"MAE\": metrics[\"MAE\"], \"R2\": metrics[\"R2\"],\n",
- " \"Time\": metrics[\"Time\"], \"Param\": best_orders['DeepKriging_sphere_Huber']\n",
- " }\n",
- " del Phi_sphere, parts, model; K.clear_session(); gc.collect()\n",
- "\n",
- " # UniversalKriging\n",
- " t0 = time.time()\n",
- " Phi_sphere = max_Phi_sphere[:, :best_orders['UniversalKriging']].astype(np_f32)\n",
- " \n",
- " idx_all = np.arange(Phi_sphere.shape[0])\n",
- " train_val_idx, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed_current)\n",
- " train_idx, _ = train_test_split(train_val_idx, train_size=8/9, random_state=seed_current)\n",
- "\n",
- " coords_train, coords_test = location_data[train_idx], location_data[test_idx]\n",
- " phi_train, phi_test = Phi_sphere[train_idx], Phi_sphere[test_idx]\n",
- " y_train, y_test = y_combined[train_idx].flatten(), y_combined[test_idx].flatten()\n",
- "\n",
- " uk_model = UniversalKriging(num_neighbors=30, cov_function='exponential')\n",
- " uk_model.fit(coords_train, phi_train, y_train, center_y=True)\n",
- "\n",
- " y_pred_test = uk_model.predict(coords_test, phi_test, return_centered=False)\n",
- "\n",
- " Record[\"UniversalKriging\"] = {\n",
- " \"MSPE\": mean_squared_error(y_test, y_pred_test),\n",
- " \"RMSE\": np.sqrt(mean_squared_error(y_test, y_pred_test)),\n",
- " \"MAE\": mean_absolute_error(y_test, y_pred_test),\n",
- " \"R2\": r2_score(y_test, y_pred_test),\n",
- " \"Time\": time.time() - t0,\n",
- " \"Param\": best_orders['UniversalKriging']\n",
- " }\n",
- "\n",
- " uk_model.cleanup()\n",
- " del uk_model, Phi_sphere, coords_train, coords_test, phi_train, phi_test, y_train, y_test; gc.collect()\n",
- "\n",
- " # Print partial result for this repeat\n",
- " result_table = []\n",
- " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
- " result_table.append({\n",
- " \"Model\": model, \"Param\": Record[model][\"Param\"],\n",
- " \"MSPE\": f\"{Record[model]['MSPE']:.4f}\", \"RMSE\": f\"{Record[model]['RMSE']:.4f}\", \"MAE\": f\"{Record[model]['MAE']:.4f}\", \"R2\": f\"{Record[model]['R2']:.4f}\",\n",
- " \"Time\": f\"{Record[model]['Time']:.2f}s\"\n",
- " })\n",
- "\n",
- " df_res = pd.DataFrame(result_table)\n",
- " print(\"\\n\", df_res.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
- "\n",
- " # Save results internally for the current hour\n",
- " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
- " experiment_results[model][\"MSPE\"].append(Record[model][\"MSPE\"])\n",
- " experiment_results[model][\"RMSE\"].append(Record[model][\"RMSE\"])\n",
- " experiment_results[model][\"MAE\"].append(Record[model][\"MAE\"])\n",
- " experiment_results[model][\"R2\"].append(Record[model][\"R2\"])\n",
- "\n",
- " # Clean up matrices before next repeat\n",
- " del Phi_wendland, max_Phi_sphere, max_Phi_mrts, location_data, location_data_norm\n",
- " K.clear_session()\n",
- " gc.collect()\n",
- "\n",
- " print(f\"\\n✅ Completed Hour {hour:02d} ('{variable}') - Repeat {repeat+1}/{repeat_experiment}\")\n",
- "\n",
- " # ========================================================\n",
- " # Summary Table for the current Hour\n",
- " # ========================================================\n",
- " print(\"\\n\" + \"=\"*80)\n",
- " print(f\"📊 Summary of repeat experiments for Hour {hour:02d} ('{variable}')\")\n",
- " print(\"=\"*80)\n",
- " print(f\"Selected Best Orders: {best_orders}\")\n",
- " print(\"=\"*80)\n",
- "\n",
- " avg_results = []\n",
- " for model in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_wendland*\", \"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
- " metrics = experiment_results[model]\n",
- " avg_results.append({\n",
- " \"Model\": model,\n",
- " \"MSPE\": f\"{np.mean(metrics['MSPE']):.2f}±{np.std(metrics['MSPE']):.2f}\",\n",
- " \"RMSE\": f\"{np.mean(metrics['RMSE']):.2f}±{np.std(metrics['RMSE']):.2f}\",\n",
- " \"MAE\": f\"{np.mean(metrics['MAE']):.2f}±{np.std(metrics['MAE']):.2f}\",\n",
- " \"R2\": f\"{np.mean(metrics['R2']):.2f}±{np.std(metrics['R2']):.2f}\",\n",
- " })\n",
- "\n",
- " df_avg = pd.DataFrame(avg_results)\n",
- " print(\"\\n\", df_avg.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
- "\n",
- " if avg_results:\n",
- " # Extract the float part of RMSE (everything before the ± symbol) to find the best model\n",
- " best_model = min(avg_results, key=lambda x: float(x[\"RMSE\"].split(\"±\")[0]))\n",
- " print(f\"\\n🏆 Best Model for Hour {hour:02d} ('{variable}'): {best_model['Model']} (RMSE: {best_model['RMSE']})\")\n",
- " \n",
- " # Store df in overarching dictionary if you want to look at it later\n",
- " all_hours_summary[f\"Hour_{hour:02d}\"] = df_avg\n",
- "\n",
- "print(\"\\n\" + \"#\"*80)\n",
- "print(\"🎉 ALL 24 HOURS PROCESSED SUCCESSFULLY!\")\n",
- "print(\"#\"*80)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "air-pollution",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.13"
- },
- "papermill": {
- "default_parameters": {},
- "duration": 9219.462666,
- "end_time": "2026-01-22T09:02:01.113308",
- "environment_variables": {},
- "exception": null,
- "input_path": "/home/user/MLspatial/notebook/Final/Real_data/experiment_univariate_deepkriging_basis_real_data_temperature.ipynb",
- "output_path": "/home/user/MLspatial/notebook/Final/Real_data/experiment_univariate_deepkriging_basis_real_data_temperature.ipynb",
- "parameters": {},
- "start_time": "2026-01-22T06:28:21.650642",
- "version": "2.6.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/notebook/simulation/Rerun/results_sphere_stdscaler_nonoise_50reps_checkpoint.csv b/notebook/simulation/Rerun/results_sphere_stdscaler_nonoise_50reps_checkpoint.csv
deleted file mode 100644
index be57c49..0000000
--- a/notebook/simulation/Rerun/results_sphere_stdscaler_nonoise_50reps_checkpoint.csv
+++ /dev/null
@@ -1,351 +0,0 @@
-Model,Repeat,MSPE,RMSE,MAE,R2
-OLS_wendland,1,160.1282958984375,12.654180965137076,6.362092018127441,-1.1546530723571777
-OLS_sphere,1,2.7306699752807617,1.6524738954914724,0.8265239000320435,0.9632566571235657
-DeepKriging_wendland,1,46.15829086303711,6.793989318731455,4.745780944824219,0.3789036273956299
-DeepKriging_mrts,1,1.4926965236663818,1.2217596014218108,0.7554640173912048,0.9799146056175232
-DeepKriging_sphere,1,0.8799751996994019,0.938069933266919,0.49489033222198486,0.9881592392921448
-DeepKriging_sphere_Huber,1,0.760865330696106,0.8722759487089541,0.5193111300468445,0.9897619485855103
-UniversalKriging,1,1.2423700575652146,1.1146165518083853,0.6281180016529122,0.9832829259825033
-OLS_wendland,2,1057.1839599609375,32.514365439924205,7.48640775680542,-12.28555679321289
-OLS_sphere,2,3.894681692123413,1.9734947915116,1.2977781295776367,0.9510558247566223
-DeepKriging_wendland,2,36.511314392089844,6.042459299994485,4.3458027839660645,0.5411648750305176
-DeepKriging_mrts,2,2.4839961528778076,1.576069843908514,0.9636558294296265,0.9687837958335876
-DeepKriging_sphere,2,1.194469928741455,1.0929180796113929,0.5836231708526611,0.9849891662597656
-DeepKriging_sphere_Huber,2,1.1367454528808594,1.0661826545582418,0.5518617033958435,0.9857146143913269
-UniversalKriging,2,1.5175197863472796,1.231876530479934,0.6869220951408171,0.9809294354321858
-OLS_wendland,3,52.903350830078125,7.273468968111304,4.736739635467529,-0.10807156562805176
-OLS_sphere,3,2.101400375366211,1.4496207695001513,0.8371756076812744,0.9559857249259949
-DeepKriging_wendland,3,24.802766799926758,4.980237624845501,3.522387742996216,0.4805009365081787
-DeepKriging_mrts,3,1.1762624979019165,1.0845563599471981,0.6966630816459656,0.9753629565238953
-DeepKriging_sphere,3,0.8288931250572205,0.910435678704004,0.5063139200210571,0.9826386570930481
-DeepKriging_sphere_Huber,3,0.6945622563362122,0.8334040174706456,0.5044600963592529,0.9854522347450256
-UniversalKriging,3,0.8908215218706046,0.9438334184964021,0.5775810339150842,0.9813415619498738
-OLS_wendland,4,707.9403076171875,26.60714767909532,8.659173011779785,-7.910331726074219
-OLS_sphere,4,2.5517349243164062,1.5974150757759882,0.9718541502952576,0.9678831696510315
-DeepKriging_wendland,4,58.56914138793945,7.653047849578588,5.578404903411865,0.2628327012062073
-DeepKriging_mrts,4,1.9858503341674805,1.4092020203531785,0.9809157848358154,0.975005567073822
-DeepKriging_sphere,4,1.8512485027313232,1.3606059321976085,0.8414065837860107,0.9766996502876282
-DeepKriging_sphere_Huber,4,1.933342456817627,1.3904468550856688,0.8413828611373901,0.9756664037704468
-UniversalKriging,4,1.740073752097746,1.3191185511915697,0.8791548621450288,0.9780989547356792
-OLS_wendland,5,2562.356201171875,50.619721464779666,8.182184219360352,-35.27407455444336
-OLS_sphere,5,2.490877389907837,1.578251370950723,0.8815575838088989,0.9647378325462341
-DeepKriging_wendland,5,37.47075653076172,6.121336172010301,4.398349761962891,0.46954405307769775
-DeepKriging_mrts,5,1.3781325817108154,1.1739389173678567,0.7329786419868469,0.9804904460906982
-DeepKriging_sphere,5,1.6318999528884888,1.2774583957563896,0.6027706861495972,0.9768979549407959
-DeepKriging_sphere_Huber,5,1.14137601852417,1.0683520105864779,0.5795099139213562,0.9838420748710632
-UniversalKriging,5,1.3575695811689499,1.1651478795281525,0.653090410124327,0.9807815227608825
-OLS_wendland,6,92.90664672851562,9.638809404097357,4.809769630432129,-0.6358836889266968
-OLS_sphere,6,1.4528276920318604,1.2053330212152409,0.6266650557518005,0.9744188785552979
-DeepKriging_wendland,6,22.950454711914062,4.790663285173991,3.490152359008789,0.5958924293518066
-DeepKriging_mrts,6,0.9942015409469604,0.9970965554784353,0.6929860711097717,0.9824942946434021
-DeepKriging_sphere,6,0.5109787583351135,0.7148277822910309,0.454572856426239,0.9910027980804443
-DeepKriging_sphere_Huber,6,0.678034245967865,0.8234283490188232,0.5000494718551636,0.9880613088607788
-UniversalKriging,6,0.9553485365801376,0.9774193248448373,0.5777995982099182,0.9831783931580663
-OLS_wendland,7,46.749263763427734,6.837343326426407,4.859798908233643,0.2214171290397644
-OLS_sphere,7,1.9901914596557617,1.4107414574101669,0.6503998041152954,0.966854453086853
-DeepKriging_wendland,7,30.062742233276367,5.482950139594228,3.7964839935302734,0.4993218779563904
-DeepKriging_mrts,7,0.675082266330719,0.8216339004268988,0.5446364879608154,0.9887568950653076
-DeepKriging_sphere,7,0.7502931952476501,0.8661946635991532,0.4723004102706909,0.9875043034553528
-DeepKriging_sphere_Huber,7,0.8377142548561096,0.9152673133331648,0.5117409229278564,0.9860483407974243
-UniversalKriging,7,0.6975679511562746,0.835205334726901,0.4577514226522702,0.9883823970124295
-OLS_wendland,8,655.5652465820312,25.604008408490092,8.200896263122559,-5.367677688598633
-OLS_sphere,8,5.171414852142334,2.2740745045275745,1.0372563600540161,0.9497686624526978
-DeepKriging_wendland,8,43.949249267578125,6.629422996579576,4.562345504760742,0.5731093883514404
-DeepKriging_mrts,8,2.589980125427246,1.6093415192019518,0.9965324997901917,0.9748428463935852
-DeepKriging_sphere,8,1.4319099187850952,1.1966243850035378,0.7095007300376892,0.9860914945602417
-DeepKriging_sphere_Huber,8,1.5855947732925415,1.259204023696137,0.7780024409294128,0.984598696231842
-UniversalKriging,8,1.9547474082401968,1.3981228158642562,0.8121558409139683,0.9810130258874051
-OLS_wendland,9,69.47830200195312,8.335364539236009,5.4228291511535645,0.014758646488189697
-OLS_sphere,9,4.006613254547119,2.0016526308396068,1.396214246749878,0.943183958530426
-DeepKriging_wendland,9,39.9476318359375,6.320413897517907,4.12808084487915,0.4335201382637024
-DeepKriging_mrts,9,1.8758572340011597,1.3696193755935113,0.8635907173156738,0.97339928150177
-DeepKriging_sphere,9,0.8905264735221863,0.9436771023619183,0.5381052494049072,0.9873718619346619
-DeepKriging_sphere_Huber,9,0.9776297807693481,0.9887516274420731,0.5400803089141846,0.9861366748809814
-UniversalKriging,9,1.2349726642105952,1.111293239523482,0.6157689887122362,0.9824873942616416
-OLS_wendland,10,53853.86328125,232.06435159509095,20.123371124267578,-792.4528198242188
-OLS_sphere,10,1.8710200786590576,1.3678523599639902,0.7045848369598389,0.9724334478378296
-DeepKriging_wendland,10,40.434627532958984,6.358822810313162,4.469143867492676,0.404258668422699
-DeepKriging_mrts,10,2.602114677429199,1.613107150014902,0.9331108331680298,0.9616618752479553
-DeepKriging_sphere,10,0.743161141872406,0.8620679450440122,0.44038262963294983,0.9890506863594055
-DeepKriging_sphere_Huber,10,0.7258276343345642,0.8519551832899218,0.44387122988700867,0.9893060326576233
-UniversalKriging,10,1.2583878824382762,1.1217788919561091,0.5781489049471398,0.9814596128880659
-OLS_wendland,11,52.611209869384766,7.253358523427941,5.788345813751221,0.268510103225708
-OLS_sphere,11,3.4983489513397217,1.870387380020439,0.8153406381607056,0.9513600468635559
-DeepKriging_wendland,11,41.1860466003418,6.41763559267288,4.750697135925293,0.42736202478408813
-DeepKriging_mrts,11,1.2353113889694214,1.1114456302354252,0.7613751888275146,0.9828246235847473
-DeepKriging_sphere,11,0.5533596277236938,0.7438814608011776,0.445148766040802,0.9923062324523926
-DeepKriging_sphere_Huber,11,0.5624303221702576,0.7499535466748974,0.47984084486961365,0.9921801686286926
-UniversalKriging,11,0.8045300114183712,0.896955969609641,0.5751316212375993,0.98881406384305
-OLS_wendland,12,66.7006607055664,8.16704724521454,6.1621599197387695,0.18759727478027344
-OLS_sphere,12,2.340311050415039,1.529807520708092,0.9480777382850647,0.9714953899383545
-DeepKriging_wendland,12,46.94449996948242,6.851605649005379,4.686985492706299,0.42822396755218506
-DeepKriging_mrts,12,1.5973186492919922,1.2638507227089726,0.8418811559677124,0.980544924736023
-DeepKriging_sphere,12,0.734509289264679,0.8570351738783415,0.6206535696983337,0.9910538196563721
-DeepKriging_sphere_Huber,12,0.8457884788513184,0.919667591497775,0.6515819430351257,0.9896984696388245
-UniversalKriging,12,1.2213258897463424,1.1051361408199183,0.7256532511469792,0.9851244584707386
-OLS_wendland,13,395.13690185546875,19.878050755933508,6.614373207092285,-4.928126335144043
-OLS_sphere,13,3.1529181003570557,1.7756458262719668,1.2953312397003174,0.9526976346969604
-DeepKriging_wendland,13,33.6309928894043,5.799223472966385,4.2805352210998535,0.49544382095336914
-DeepKriging_mrts,13,1.7442079782485962,1.3206846626839415,0.7918208241462708,0.9738321304321289
-DeepKriging_sphere,13,0.7542272210121155,0.8684625616640682,0.47282037138938904,0.9886845350265503
-DeepKriging_sphere_Huber,13,0.823753297328949,0.9076085595282523,0.47132739424705505,0.987641453742981
-UniversalKriging,13,1.0150033810082928,1.0074737619453387,0.5927185991156081,0.984772193083801
-OLS_wendland,14,50.60451889038086,7.113685324104578,5.390745162963867,0.23015964031219482
-OLS_sphere,14,5.433785915374756,2.331048243896886,0.7562065720558167,0.9173364639282227
-DeepKriging_wendland,14,39.02452087402344,6.246960931046667,4.327627658843994,0.40632474422454834
-DeepKriging_mrts,14,1.4831715822219849,1.217855320726557,0.7774673104286194,0.9774366617202759
-DeepKriging_sphere,14,0.43270787596702576,0.657805348083326,0.43710973858833313,0.9934172630310059
-DeepKriging_sphere_Huber,14,0.41201281547546387,0.6418822442438051,0.43579649925231934,0.9937320947647095
-UniversalKriging,14,0.7319244275393437,0.8555258193294599,0.5092006112846165,0.9888653228540081
-OLS_wendland,15,103.4455337524414,10.170817752395399,7.64441442489624,0.33003538846969604
-OLS_sphere,15,5.301171779632568,2.3024273668527675,1.6298269033432007,0.9656670093536377
-DeepKriging_wendland,15,56.94624328613281,7.546273470139603,5.184893608093262,0.6311878561973572
-DeepKriging_mrts,15,3.451993703842163,1.857954171620539,1.1366888284683228,0.9776431918144226
-DeepKriging_sphere,15,2.2533011436462402,1.5010999778982879,0.9491185545921326,0.9854065179824829
-DeepKriging_sphere_Huber,15,1.940738320350647,1.393103844065706,0.8390479683876038,0.9874308109283447
-UniversalKriging,15,2.250618403628071,1.50020612038082,0.9288551281260723,0.9854238785332277
-OLS_wendland,16,299.0848083496094,17.294068588669624,6.29771089553833,-2.7346341609954834
-OLS_sphere,16,3.2320287227630615,1.7977843927354196,1.299295425415039,0.9596420526504517
-DeepKriging_wendland,16,32.85277557373047,5.731734080863354,4.057799339294434,0.5897715091705322
-DeepKriging_mrts,16,1.567464828491211,1.251984356328469,0.8147905468940735,0.9804272651672363
-DeepKriging_sphere,16,1.1674952507019043,1.0805069415334194,0.5683812499046326,0.9854216575622559
-DeepKriging_sphere_Huber,16,0.9924571514129639,0.9962214369370717,0.5772374272346497,0.9876073002815247
-UniversalKriging,16,1.6187408013698081,1.2722974500366682,0.6782278928329629,0.9797869899616836
-OLS_wendland,17,138.49005126953125,11.768179607294037,5.7263264656066895,-1.0129425525665283
-OLS_sphere,17,1.544426679611206,1.2427496447841802,0.5906820297241211,0.9775518774986267
-DeepKriging_wendland,17,31.45631217956543,5.608592709367068,3.987231492996216,0.5427848100662231
-DeepKriging_mrts,17,0.6181471943855286,0.7862233743571406,0.4898375868797302,0.9910152554512024
-DeepKriging_sphere,17,0.4977565109729767,0.7055186113583232,0.3738920986652374,0.9927651286125183
-DeepKriging_sphere_Huber,17,0.4411160349845886,0.6641656683272545,0.3664151132106781,0.993588387966156
-UniversalKriging,17,0.7523012549391312,0.8673530163313732,0.4722739047646718,0.9890653570845542
-OLS_wendland,18,330.07904052734375,18.168077513246793,7.25604772567749,-2.4460301399230957
-OLS_sphere,18,4.421080112457275,2.10263646702355,1.3149484395980835,0.9538438320159912
-DeepKriging_wendland,18,64.5193099975586,8.032391300077368,5.432534217834473,0.32641738653182983
-DeepKriging_mrts,18,2.7372095584869385,1.6544514373310988,1.1540635824203491,0.9714235067367554
-DeepKriging_sphere,18,1.43064546585083,1.1960959266926838,0.8260340690612793,0.9850640296936035
-DeepKriging_sphere_Huber,18,1.4781726598739624,1.2158012419281214,0.8616254925727844,0.9845678806304932
-UniversalKriging,18,1.9139514515310465,1.3834563424738224,0.9266371776522142,0.9800183161171341
-OLS_wendland,19,313.4207763671875,17.703693862219474,6.805330276489258,-1.9268531799316406
-OLS_sphere,19,2.6697020530700684,1.6339222910132747,0.9629889130592346,0.9750692248344421
-DeepKriging_wendland,19,40.941017150878906,6.398516793045003,4.568624019622803,0.6176758408546448
-DeepKriging_mrts,19,1.7304327487945557,1.3154591399182856,0.9121573567390442,0.9838405251502991
-DeepKriging_sphere,19,0.8870342373847961,0.9418249505002488,0.6294944286346436,0.9917165040969849
-DeepKriging_sphere_Huber,19,0.7992661595344543,0.8940168675894512,0.6070082187652588,0.9925361275672913
-UniversalKriging,19,0.9488968950429502,0.9741133892124418,0.6560411020130675,0.9911388075907863
-OLS_wendland,20,64.4540786743164,8.028329756201872,5.410519599914551,0.14060932397842407
-OLS_sphere,20,2.457770586013794,1.5677278418187877,0.8517091870307922,0.9672296047210693
-DeepKriging_wendland,20,35.66444778442383,5.9719718506054456,4.255906105041504,0.5244723558425903
-DeepKriging_mrts,20,1.5200297832489014,1.2328948792370342,0.8009217381477356,0.979732871055603
-DeepKriging_sphere,20,1.129085898399353,1.0625845370601592,0.6366015672683716,0.9849454760551453
-DeepKriging_sphere_Huber,20,1.057930588722229,1.0285575281539818,0.6014277338981628,0.9858942031860352
-UniversalKriging,20,1.1509123949549251,1.072805851473101,0.6249110474406068,0.9846544484595667
-OLS_wendland,21,80.65776824951172,8.980966999689494,6.1861162185668945,-0.014597296714782715
-OLS_sphere,21,3.0659284591674805,1.7509792857619648,1.2032153606414795,0.9614335894584656
-DeepKriging_wendland,21,42.20697784423828,6.496689760504059,4.492963790893555,0.4690767526626587
-DeepKriging_mrts,21,1.6549221277236938,1.286437766751153,0.7430111169815063,0.9791826605796814
-DeepKriging_sphere,21,1.3759104013442993,1.1729920721574802,0.6176049113273621,0.9826923608779907
-DeepKriging_sphere_Huber,21,1.1163767576217651,1.056587316610305,0.5295265913009644,0.9859570264816284
-UniversalKriging,21,1.113752394216924,1.0553446802902473,0.575239536018199,0.9859900639488204
-OLS_wendland,22,65.26608276367188,8.078742647446562,5.942654609680176,0.20349258184432983
-OLS_sphere,22,7.5143280029296875,2.7412274628220272,1.1233960390090942,0.9082951545715332
-DeepKriging_wendland,22,40.543243408203125,6.367357647266496,4.4716877937316895,0.5052101612091064
-DeepKriging_mrts,22,1.5967704057693481,1.2636338099977178,0.8486728668212891,0.9805130362510681
-DeepKriging_sphere,22,1.4643361568450928,1.2100975815384034,0.7270357608795166,0.9821292161941528
-DeepKriging_sphere_Huber,22,1.4380613565444946,1.1991919598398308,0.7313840389251709,0.9824498891830444
-UniversalKriging,22,1.513780822902087,1.230358005989349,0.7851837458897248,0.9815258164021171
-OLS_wendland,23,891.9482421875,29.865502543695793,6.885936737060547,-13.818158149719238
-OLS_sphere,23,1.171459436416626,1.0823397971139312,0.6765140295028687,0.9805382490158081
-DeepKriging_wendland,23,26.9410457611084,5.190476448372384,3.859866142272949,0.5524216890335083
-DeepKriging_mrts,23,0.8722091913223267,0.9339214053239848,0.6319183111190796,0.9855097532272339
-DeepKriging_sphere,23,0.729727029800415,0.8542406158690975,0.48792654275894165,0.9878768920898438
-DeepKriging_sphere_Huber,23,0.6361367106437683,0.797581789313026,0.4972114861011505,0.9894316792488098
-UniversalKriging,23,0.8872023968831475,0.9419142194930213,0.5628946869618394,0.985260685320516
-OLS_wendland,24,54.68723678588867,7.395081932331019,5.524410247802734,0.3210902214050293
-OLS_sphere,24,4.077549457550049,2.0192942969141594,1.493262529373169,0.9493796229362488
-DeepKriging_wendland,24,39.927303314208984,6.318805529070268,4.196728229522705,0.5043261051177979
-DeepKriging_mrts,24,1.4441419839859009,1.201724587410069,0.8019179701805115,0.9820718169212341
-DeepKriging_sphere,24,1.2397263050079346,1.1134299731047008,0.6068019270896912,0.9846095442771912
-DeepKriging_sphere_Huber,24,1.1203845739364624,1.058482202937991,0.6053541898727417,0.9860910773277283
-UniversalKriging,24,1.3667997953983702,1.1691021321502968,0.6912160197499356,0.9830319873319339
-OLS_wendland,25,615.0125122070312,24.79944580443344,7.314245700836182,-6.798427581787109
-OLS_sphere,25,4.353677749633789,2.086546848176141,1.4467065334320068,0.9447948932647705
-DeepKriging_wendland,25,38.97800827026367,6.243237002570355,4.5450358390808105,0.5057544708251953
-DeepKriging_mrts,25,1.792635440826416,1.3388933642476595,0.8583226799964905,0.977269172668457
-DeepKriging_sphere,25,1.1452269554138184,1.0701527719974464,0.6100338697433472,0.985478401184082
-DeepKriging_sphere_Huber,25,1.2120825052261353,1.100946186344335,0.6174225807189941,0.9846306443214417
-UniversalKriging,25,1.3541980523973716,1.163700155709095,0.6658029618627278,0.9828286158366244
-OLS_wendland,26,67.7548828125,8.231335420969067,5.9333930015563965,0.34338539838790894
-OLS_sphere,26,3.537759304046631,1.8808932197354082,0.9049019813537598,0.9657154679298401
-DeepKriging_wendland,26,45.4124755859375,6.738877917423457,4.890120506286621,0.5599063038825989
-DeepKriging_mrts,26,2.607767105102539,1.6148582306513903,0.9289514422416687,0.9747280478477478
-DeepKriging_sphere,26,2.0065574645996094,1.4165300789604185,0.7247816324234009,0.9805544018745422
-DeepKriging_sphere_Huber,26,2.015169620513916,1.4195667016783382,0.7060369253158569,0.9804709553718567
-UniversalKriging,26,2.0450545190814946,1.430054026630286,0.7740795828607447,0.980181314751309
-OLS_wendland,27,53.53913879394531,7.317044402895565,5.669878959655762,0.22540777921676636
-OLS_sphere,27,2.672912120819092,1.6349043154934455,1.1672686338424683,0.96132892370224
-DeepKriging_wendland,27,41.203697204589844,6.4190106094779,4.62527322769165,0.4038742184638977
-DeepKriging_mrts,27,1.1680908203125,1.0807825037039136,0.6899919509887695,0.9831003546714783
-DeepKriging_sphere,27,1.2103853225708008,1.1001751326815203,0.5728306770324707,0.9824883937835693
-DeepKriging_sphere_Huber,27,1.252493977546692,1.1191487736430272,0.5875202417373657,0.9818791747093201
-UniversalKriging,27,1.2627558955694544,1.1237241189764748,0.6031065705379367,0.9817307326277555
-OLS_wendland,28,103.19859313964844,10.158670835283937,5.972092628479004,-0.7384651899337769
-OLS_sphere,28,1.4803078174591064,1.2166790116785555,0.7217339873313904,0.9750629663467407
-DeepKriging_wendland,28,33.83779525756836,5.817026324297352,4.390262603759766,0.4299744963645935
-DeepKriging_mrts,28,1.3779972791671753,1.173881288362318,0.834766149520874,0.9767864942550659
-DeepKriging_sphere,28,0.815231442451477,0.9029016792826764,0.6105811595916748,0.9862667322158813
-DeepKriging_sphere_Huber,28,0.9597509503364563,0.9796687962451679,0.6589246988296509,0.9838321805000305
-UniversalKriging,28,0.8198019354017644,0.9054291443297837,0.6165815886541295,0.9861897623256343
-OLS_wendland,29,361.5597839355469,19.014725449912415,6.4755401611328125,-5.019263744354248
-OLS_sphere,29,3.0242984294891357,1.739051014055981,1.1291292905807495,0.9496513605117798
-DeepKriging_wendland,29,32.43772888183594,5.695412968506844,3.9541494846343994,0.4599751830101013
-DeepKriging_mrts,29,1.5352177619934082,1.2390390478081827,0.7533035278320312,0.974441647529602
-DeepKriging_sphere,29,0.9089387059211731,0.9533827698889744,0.49911558628082275,0.9848679304122925
-DeepKriging_sphere_Huber,29,0.7102925777435303,0.842788572385465,0.46886277198791504,0.9881750345230103
-UniversalKriging,29,1.022448426955508,1.011161919257004,0.5752208159653579,0.9829782313610949
-OLS_wendland,30,12147.1416015625,110.21407170394578,18.985525131225586,-154.9127960205078
-OLS_sphere,30,4.324729919433594,2.07959849957476,1.0709701776504517,0.9444905519485474
-DeepKriging_wendland,30,46.725616455078125,6.83561383162318,5.110665798187256,0.40026038885116577
-DeepKriging_mrts,30,2.044449806213379,1.4298425809204938,0.9164947271347046,0.9737587571144104
-DeepKriging_sphere,30,1.1688917875289917,1.0811529898811694,0.630437970161438,0.9849968552589417
-DeepKriging_sphere_Huber,30,1.2679283618927002,1.1260232510444446,0.6582623720169067,0.9837257266044617
-UniversalKriging,30,1.6920938385900832,1.3008050732489027,0.7569842235659646,0.978281388132629
-OLS_wendland,31,8843.6884765625,94.04088725954524,12.347898483276367,-116.504638671875
-OLS_sphere,31,2.5058627128601074,1.5829916970281643,0.9345218539237976,0.9667050242424011
-DeepKriging_wendland,31,45.83660125732422,6.770273351743208,4.66135311126709,0.39097654819488525
-DeepKriging_mrts,31,1.1533139944076538,1.0739245757536484,0.7687734365463257,0.9846761226654053
-DeepKriging_sphere,31,0.7449873089790344,0.8631264733392404,0.5762217044830322,0.9901014566421509
-DeepKriging_sphere_Huber,31,0.89936763048172,0.9483499514850623,0.6064143180847168,0.9880502223968506
-UniversalKriging,31,1.0518700865873334,1.0256071794733759,0.6733768188924301,0.9860239748064568
-OLS_wendland,32,975.4537353515625,31.232254727309755,8.938841819763184,-7.798518180847168
-OLS_sphere,32,5.79229211807251,2.4067181218565064,1.7898098230361938,0.9477539658546448
-DeepKriging_wendland,32,46.16244125366211,6.7942947576376245,5.061904430389404,0.5836182832717896
-DeepKriging_mrts,32,2.920494556427002,1.708945451565673,1.0984020233154297,0.9736573696136475
-DeepKriging_sphere,32,2.36368989944458,1.5374296404858923,0.8806224465370178,0.9786797165870667
-DeepKriging_sphere_Huber,32,2.1078360080718994,1.4518388368107182,0.8243895173072815,0.9809874892234802
-UniversalKriging,32,2.5951699328151747,1.610953113164742,0.9393751176643804,0.9765917666596261
-OLS_wendland,33,462.03350830078125,21.494964719691477,6.700897693634033,-6.117753505706787
-OLS_sphere,33,2.2857859134674072,1.5118815805040444,0.712065577507019,0.9647868275642395
-DeepKriging_wendland,33,31.836061477661133,5.642345388015619,4.037989139556885,0.5095567107200623
-DeepKriging_mrts,33,1.7085285186767578,1.3071069270250073,0.7634649872779846,0.9736796617507935
-DeepKriging_sphere,33,0.6911212205886841,0.8313370078305693,0.5275227427482605,0.9893530607223511
-DeepKriging_sphere_Huber,33,0.5303295850753784,0.7282373137071311,0.44751012325286865,0.9918301105499268
-UniversalKriging,33,0.8000878830515097,0.8944763177700736,0.5041869241362478,0.9876744266718073
-OLS_wendland,34,50.68083572387695,7.1190473887927554,5.304773330688477,0.27202385663986206
-OLS_sphere,34,2.8368966579437256,1.6843089556087165,0.647615909576416,0.9592509865760803
-DeepKriging_wendland,34,33.181236267089844,5.760315639536591,4.062608242034912,0.5233869552612305
-DeepKriging_mrts,34,1.4749692678451538,1.214483127855284,0.5707414746284485,0.978813648223877
-DeepKriging_sphere,34,1.6798933744430542,1.296107007327348,0.46983593702316284,0.9758701324462891
-DeepKriging_sphere_Huber,34,1.5555250644683838,1.2472069052360093,0.4445337951183319,0.9776565432548523
-UniversalKriging,34,1.549644737579199,1.2448472748008885,0.514401994495091,0.977741004738065
-OLS_wendland,35,123.76595306396484,11.125014744438088,6.080634593963623,-0.775792121887207
-OLS_sphere,35,2.7870986461639404,1.6694605853879692,1.2202248573303223,0.9600107669830322
-DeepKriging_wendland,35,36.73330307006836,6.060800530463641,4.2875471115112305,0.4729510545730591
-DeepKriging_mrts,35,0.777531623840332,0.88177753647977,0.5965513586997986,0.9888439774513245
-DeepKriging_sphere,35,0.372620552778244,0.6104265334815026,0.37707778811454773,0.9946536421775818
-DeepKriging_sphere_Huber,35,0.4624558091163635,0.68004103487684,0.43614494800567627,0.993364691734314
-UniversalKriging,35,0.5475400790686104,0.7399595117765636,0.4592685992845601,0.9921439028196651
-OLS_wendland,36,84.86972045898438,9.212476347811394,5.729352951049805,-0.26343727111816406
-OLS_sphere,36,3.2344210147857666,1.7984496141915587,1.2831932306289673,0.9518498778343201
-DeepKriging_wendland,36,35.43317794799805,5.952577420579932,4.548092842102051,0.4725138545036316
-DeepKriging_mrts,36,1.6052238941192627,1.2669743068110193,0.7517269253730774,0.9761033654212952
-DeepKriging_sphere,36,0.9004269242286682,0.9489082801981803,0.5370499491691589,0.9865955114364624
-DeepKriging_sphere_Huber,36,0.770861029624939,0.8779869188233609,0.4976470470428467,0.9885243773460388
-UniversalKriging,36,1.6442501509416552,1.282283178920185,0.6974086117108582,0.9755224021664665
-OLS_wendland,37,43.23046112060547,6.574987537676818,4.86290168762207,0.310530424118042
-OLS_sphere,37,4.077783584594727,2.0193522685739422,0.8029429912567139,0.934964656829834
-DeepKriging_wendland,37,27.061721801757812,5.2020882154917185,3.6865439414978027,0.5684007406234741
-DeepKriging_mrts,37,2.4679317474365234,1.5709652279527142,0.6992170214653015,0.9606397151947021
-DeepKriging_sphere,37,0.5910396575927734,0.7687910363634408,0.4476897716522217,0.9905737042427063
-DeepKriging_sphere_Huber,37,0.4499720335006714,0.6707995479281954,0.4169002175331116,0.9928235411643982
-UniversalKriging,37,0.9141028235712986,0.9560872468406315,0.5919787823218701,0.9854212499239139
-OLS_wendland,38,615.6351928710938,24.811996954519678,8.554441452026367,-6.143980503082275
-OLS_sphere,38,3.308594226837158,1.8189541574314505,0.9272924065589905,0.9616062641143799
-DeepKriging_wendland,38,54.265342712402344,7.36650138888213,5.457431316375732,0.3702917695045471
-DeepKriging_mrts,38,1.4703830480575562,1.2125935213654888,0.7095247507095337,0.9829373359680176
-DeepKriging_sphere,38,1.3430358171463013,1.1588942217244425,0.6133497357368469,0.9844151139259338
-DeepKriging_sphere_Huber,38,1.1283466815948486,1.0622366410526651,0.5881457328796387,0.9869064092636108
-UniversalKriging,38,1.1309077789729678,1.0634414788661235,0.6333238696733705,0.9868766718417956
-OLS_wendland,39,34.4522819519043,5.869606626674764,4.604797840118408,0.3458724021911621
-OLS_sphere,39,2.3789193630218506,1.5423745858324593,1.038757562637329,0.9548326730728149
-DeepKriging_wendland,39,23.27908706665039,4.824840626036304,3.473996639251709,0.5580120086669922
-DeepKriging_mrts,39,1.0547834634780884,1.027026515469824,0.5980207920074463,0.9799733757972717
-DeepKriging_sphere,39,0.6606678366661072,0.8128147615946127,0.39271360635757446,0.9874562621116638
-DeepKriging_sphere_Huber,39,0.7222487926483154,0.8498522181228425,0.4058561623096466,0.9862870573997498
-UniversalKriging,39,0.9413493626374811,0.9702316025761484,0.48865833929069824,0.9821270882099662
-OLS_wendland,40,97.40548706054688,9.869421819972377,5.946840763092041,-0.496382474899292
-OLS_sphere,40,1.5088266134262085,1.2283430357299252,0.6033234000205994,0.9768207669258118
-DeepKriging_wendland,40,33.521751403808594,5.789797181578003,4.239408493041992,0.4850252866744995
-DeepKriging_mrts,40,0.8115453124046326,0.9008580978182039,0.5021472573280334,0.9875327348709106
-DeepKriging_sphere,40,0.6439191102981567,0.8024457055141841,0.39751648902893066,0.9901078343391418
-DeepKriging_sphere_Huber,40,0.8039913177490234,0.8966556294079815,0.3980548679828644,0.9876487851142883
-UniversalKriging,40,0.6272924584872303,0.792017966012912,0.44970577297835707,0.990363279313375
-OLS_wendland,41,49.48114013671875,7.034283199922985,5.627366065979004,0.4135163426399231
-OLS_sphere,41,2.9681313037872314,1.7228265448927909,0.9793336987495422,0.9648197293281555
-DeepKriging_wendland,41,41.696590423583984,6.457289711913504,4.857707977294922,0.5057840347290039
-DeepKriging_mrts,41,2.7715842723846436,1.6648075781857323,0.9938689470291138,0.9671493172645569
-DeepKriging_sphere,41,1.4131076335906982,1.188742038286986,0.7222655415534973,0.9832509160041809
-DeepKriging_sphere_Huber,41,1.4394768476486206,1.1997820000519346,0.7293108105659485,0.9829383492469788
-UniversalKriging,41,1.9525179025713553,1.3973252672772203,0.8461318772072618,0.9768574475772578
-OLS_wendland,42,87.251953125,9.340875393933912,5.646005153656006,-0.27686381340026855
-OLS_sphere,42,1.7683993577957153,1.3298117753260104,0.7697454690933228,0.9741208553314209
-DeepKriging_wendland,42,28.529237747192383,5.341276789981248,3.938755750656128,0.5824970006942749
-DeepKriging_mrts,42,1.5610623359680176,1.2494248020461325,0.7708286046981812,0.9771550893783569
-DeepKriging_sphere,42,1.5626980066299438,1.2500792001429124,0.6574620604515076,0.9771311283111572
-DeepKriging_sphere_Huber,42,0.8614883422851562,0.9281639630394817,0.5693644881248474,0.987392783164978
-UniversalKriging,42,1.5314152877098173,1.2375036515945386,0.7257625338033367,0.977588939800091
-OLS_wendland,43,76037.703125,275.7493483673171,23.444534301757812,-885.2103271484375
-OLS_sphere,43,3.8204574584960938,1.9545990531298467,0.8659480214118958,0.955473005771637
-DeepKriging_wendland,43,49.001609802246094,7.000114984930326,4.619032382965088,0.4288921356201172
-DeepKriging_mrts,43,1.7750275135040283,1.3323015850414757,0.8417458534240723,0.9793122410774231
-DeepKriging_sphere,43,0.8466259837150574,0.9201228090396724,0.5793809294700623,0.9901326894760132
-DeepKriging_sphere_Huber,43,0.8449943661689758,0.9192357511373107,0.5732213258743286,0.9901517033576965
-UniversalKriging,43,1.0044643165445108,1.00222967255241,0.5965070696814423,0.9882930885038518
-OLS_wendland,44,54.368568420410156,7.373504487040756,5.451240062713623,0.19623011350631714
-OLS_sphere,44,3.0859758853912354,1.756694590812881,0.7567945718765259,0.9543777704238892
-DeepKriging_wendland,44,43.641082763671875,6.606139777787924,4.46458101272583,0.3548223376274109
-DeepKriging_mrts,44,2.368100643157959,1.5388634257652494,0.8763809204101562,0.9649906754493713
-DeepKriging_sphere,44,1.7802698612213135,1.3342675373482311,0.6125275492668152,0.9736809730529785
-DeepKriging_sphere_Huber,44,1.4528733491897583,1.205351960710961,0.5476329326629639,0.9785211086273193
-UniversalKriging,44,1.6963441224740978,1.3024377614589104,0.6102274636287529,0.9749217203852815
-OLS_wendland,45,45.59053039550781,6.752076006348552,5.3582634925842285,0.14199793338775635
-OLS_sphere,45,2.606297254562378,1.6144030644676,0.8600499033927917,0.9509501457214355
-DeepKriging_wendland,45,35.42885208129883,5.952214048679603,4.43697452545166,0.3332381248474121
-DeepKriging_mrts,45,1.3027021884918213,1.1413597980005346,0.7454290390014648,0.9754834771156311
-DeepKriging_sphere,45,0.81999671459198,0.9055366997488175,0.544424831867218,0.9845678806304932
-DeepKriging_sphere_Huber,45,0.9594420194625854,0.9795111124752927,0.5664111375808716,0.9819435477256775
-UniversalKriging,45,1.2141355602439734,1.10187819664606,0.6592507549571519,0.9771502800769084
-OLS_wendland,46,70.41128540039062,8.391143271354066,6.237138748168945,0.4535655975341797
-OLS_sphere,46,3.183265447616577,1.784170801133282,0.9316509366035461,0.975295901298523
-DeepKriging_wendland,46,65.5256576538086,8.094792008063493,5.663538932800293,0.49148106575012207
-DeepKriging_mrts,46,2.1400411128997803,1.4628879358651434,0.9762635827064514,0.9833920001983643
-DeepKriging_sphere,46,1.9049346446990967,1.3801936982536533,0.806399941444397,0.9852165579795837
-DeepKriging_sphere_Huber,46,1.9256196022033691,1.3876669637212558,0.7987867593765259,0.9850560426712036
-UniversalKriging,46,2.0566042886616516,1.434086569444694,0.8307373315015082,0.9840395008635242
-OLS_wendland,47,49.18731689453125,7.013367015530504,5.46699333190918,0.3180999159812927
-OLS_sphere,47,1.8610363006591797,1.364198043049168,0.8231058120727539,0.9741998314857483
-DeepKriging_wendland,47,35.293155670166016,5.940804294888531,4.09913969039917,0.5107192993164062
-DeepKriging_mrts,47,1.0749822854995728,1.0368135249405135,0.7127419710159302,0.9850971698760986
-DeepKriging_sphere,47,1.273979902267456,1.1287071818091068,0.6610831618309021,0.9823383688926697
-DeepKriging_sphere_Huber,47,0.9210892915725708,0.9597339691667535,0.6307138800621033,0.987230658531189
-UniversalKriging,47,1.5371370911349544,1.2398133291487692,0.7124487210408159,0.9786901586449258
-OLS_wendland,48,145627.828125,381.61214357643286,29.031885147094727,-2543.2607421875
-OLS_sphere,48,2.0977635383605957,1.4483658164844253,1.0188082456588745,0.9633499979972839
-DeepKriging_wendland,48,28.28125,5.318011846545662,3.9171595573425293,0.5058988332748413
-DeepKriging_mrts,48,0.45403167605400085,0.6738187264049589,0.45372429490089417,0.9920676350593567
-DeepKriging_sphere,48,0.2671942114830017,0.5169083201913098,0.32345837354660034,0.995331883430481
-DeepKriging_sphere_Huber,48,0.3179386854171753,0.5638605194701747,0.35060399770736694,0.9944453239440918
-UniversalKriging,48,0.441503406861432,0.664457227262547,0.3950976282508757,0.9922865030479316
-OLS_wendland,49,78.59158325195312,8.865189408690213,5.375292778015137,-0.28303706645965576
-OLS_sphere,49,2.295391082763672,1.5150548118017617,0.6819963455200195,0.9625268578529358
-DeepKriging_wendland,49,32.38834762573242,5.691076139512845,4.018862247467041,0.4712480902671814
-DeepKriging_mrts,49,0.6461712718009949,0.803847791438774,0.4968174695968628,0.989450991153717
-DeepKriging_sphere,49,0.37810376286506653,0.6149014253236583,0.37823721766471863,0.9938273429870605
-DeepKriging_sphere_Huber,49,0.3402661383152008,0.583323356565808,0.36731255054473877,0.9944450259208679
-UniversalKriging,49,0.6933459896562543,0.8326739996278582,0.4855529374603103,0.988680866684262
-OLS_wendland,50,276.252197265625,16.62083623845759,6.594390392303467,-3.099447250366211
-OLS_sphere,50,2.256309986114502,1.5021018561051385,1.0630160570144653,0.966517448425293
-DeepKriging_wendland,50,27.416059494018555,5.236034710925678,3.806889533996582,0.5931590795516968
-DeepKriging_mrts,50,0.9917960166931152,0.9958895604900753,0.6973426938056946,0.9852822422981262
-DeepKriging_sphere,50,0.5673189759254456,0.7532057991846887,0.4954671561717987,0.9915812611579895
-DeepKriging_sphere_Huber,50,0.6481468677520752,0.8050756906975115,0.5117081999778748,0.9903818368911743
-UniversalKriging,50,0.8274392089271454,0.9096368555237554,0.5595374175198976,0.9877212057499654
diff --git a/notebook/simulation/Rerun/results_sphere_stdscaler_outliers_50reps_checkpoint.csv b/notebook/simulation/Rerun/results_sphere_stdscaler_outliers_50reps_checkpoint.csv
deleted file mode 100644
index 22e1687..0000000
--- a/notebook/simulation/Rerun/results_sphere_stdscaler_outliers_50reps_checkpoint.csv
+++ /dev/null
@@ -1,372 +0,0 @@
-Model,Repeat,MSPE,RMSE,MAE,R2
-OLS_wendland,1,11434.009765625,106.92992923230146,14.83938980102539,-93.63195037841797
-OLS_sphere,1,55.636390686035156,7.458980539325408,3.202444076538086,0.5395333766937256
-DeepKriging_wendland,1,94.50776672363281,9.721510516562374,5.738083839416504,0.21781998872756958
-DeepKriging_mrts,1,137.11021423339844,11.70940708291408,3.764101982116699,-0.1347731351852417
-DeepKriging_sphere,1,57.05821990966797,7.553689158925456,2.4504542350769043,0.5277658104896545
-DeepKriging_sphere_Huber,1,48.04107666015625,6.931167048928791,1.3273099660873413,0.6023948788642883
-UniversalKriging,1,52.63360028110931,7.254901810576716,2.6192092457093077,0.5643855499684275
-OLS_wendland,1,11290.5,106.25676449054902,14.983518600463867,-87.34193420410156
-OLS_sphere,1,54.09169387817383,7.354705560263703,3.1313860416412354,0.576762318611145
-DeepKriging_wendland,1,99.20248413085938,9.960044383980394,5.8633341789245605,0.22379529476165771
-DeepKriging_mrts,1,60.101234436035156,7.75249859310114,3.761817455291748,0.5297409892082214
-DeepKriging_sphere,1,61.11210632324219,7.817423253428344,2.2646918296813965,0.5218315124511719
-DeepKriging_sphere_Huber,1,47.98279571533203,6.926961506702057,1.4860665798187256,0.624561071395874
-UniversalKriging,1,51.90044579400074,7.2041964016815045,2.597656481952814,0.593907651231321
-OLS_wendland,2,44281.69140625,210.43215392674665,21.172292709350586,-255.93478393554688
-OLS_sphere,2,82.3411865234375,9.074204456779531,3.5110740661621094,0.5222333669662476
-DeepKriging_wendland,2,138.32728576660156,11.761262082217264,5.859182834625244,0.19738632440567017
-DeepKriging_mrts,2,106.0263442993164,10.296909453778664,3.9192142486572266,0.38480544090270996
-DeepKriging_sphere,2,104.43537139892578,10.219362573024101,3.062854051589966,0.3940366506576538
-DeepKriging_sphere_Huber,2,79.44552612304688,8.91322198326996,1.6625746488571167,0.5390347838401794
-UniversalKriging,2,84.725769891873,9.204660226856449,3.2343686970258942,0.5083972764698471
-OLS_wendland,2,37516.390625,193.69148309876715,20.216636657714844,-213.22222900390625
-OLS_sphere,2,80.78840637207031,8.988237111473547,3.5334246158599854,0.5386903285980225
-DeepKriging_wendland,2,137.79824829101562,11.738749860654481,5.869849681854248,0.21315860748291016
-DeepKriging_mrts,2,98.84378051757812,9.942020947351606,3.712949275970459,0.4355924129486084
-DeepKriging_sphere,2,109.1312255859375,10.446589184319325,3.1627182960510254,0.3768501281738281
-DeepKriging_sphere_Huber,2,79.53244018554688,8.918096219796402,1.7746506929397583,0.545862078666687
-UniversalKriging,2,83.23051570657405,9.123076000262962,3.2545945835860124,0.524745689925108
-OLS_wendland,3,114.67440795898438,10.708613727228393,5.758488178253174,-0.08680486679077148
-OLS_sphere,3,58.857383728027344,7.671856602415568,3.0127484798431396,0.44219034910202026
-DeepKriging_wendland,3,85.15155029296875,9.227759765672747,4.82232141494751,0.1929924488067627
-DeepKriging_mrts,3,67.19758605957031,8.19741337615533,3.223037004470825,0.36314767599105835
-DeepKriging_sphere,3,66.3172607421875,8.143541044422108,2.570128917694092,0.37149083614349365
-DeepKriging_sphere_Huber,3,51.5213508605957,7.177837478000996,1.4842406511306763,0.5117162466049194
-UniversalKriging,3,58.596217163308744,7.654816598933559,2.703460471193898,0.4446655167125594
-OLS_wendland,3,119.39292907714844,10.926707147038783,5.902403354644775,-0.10716474056243896
-OLS_sphere,3,59.526397705078125,7.715335229598137,3.0265634059906006,0.4479947090148926
-DeepKriging_wendland,3,87.31937408447266,9.344483617861004,4.959469795227051,0.1902625560760498
-DeepKriging_mrts,3,76.98978424072266,8.774382271175712,3.312838077545166,0.28605180978775024
-DeepKriging_sphere,3,76.94871520996094,8.77204167853533,3.420156717300415,0.28643256425857544
-DeepKriging_sphere_Huber,3,52.3504524230957,7.235361250352031,1.547482967376709,0.5145393013954163
-UniversalKriging,3,59.23654407998005,7.696528053608331,2.7188117791335253,0.4506825827255744
-OLS_wendland,4,646.9976196289062,25.4361478928887,10.459138870239258,-1.7666308879852295
-OLS_sphere,4,139.6615447998047,11.81784856899955,3.6231625080108643,0.4027922749519348
-DeepKriging_wendland,4,213.78834533691406,14.621502841257941,6.954104423522949,0.08581817150115967
-DeepKriging_mrts,4,159.06005859375,12.611901466224275,4.272494792938232,0.3198421597480774
-DeepKriging_sphere,4,138.15155029296875,11.753788763329412,3.3640034198760986,0.4092492461204529
-DeepKriging_sphere_Huber,4,128.56814575195312,11.338789430620587,2.2101240158081055,0.45022886991500854
-UniversalKriging,4,140.3946529004489,11.848824958638257,3.2610368891740413,0.3996574578581834
-OLS_wendland,5,693.9666748046875,26.34324723348827,7.539922714233398,-7.362863540649414
-OLS_sphere,5,27.096546173095703,5.205434292457807,2.900843858718872,0.6734645366668701
-DeepKriging_wendland,5,54.658668518066406,7.393150107908428,5.27903413772583,0.3413185477256775
-DeepKriging_mrts,5,24.516698837280273,4.951434018269886,2.422832727432251,0.7045538425445557
-DeepKriging_sphere,5,19.09381675720215,4.369647211984298,2.2580087184906006,0.7699039578437805
-DeepKriging_sphere_Huber,5,15.326025009155273,3.914846741464508,1.160775899887085,0.8153089284896851
-UniversalKriging,5,22.099312771133313,4.700990615937593,2.30062521473016,0.7336852797220836
-OLS_wendland,6,351.70343017578125,18.753757761466932,7.006178855895996,-1.3128893375396729
-OLS_sphere,6,99.85591888427734,9.992793347421799,4.199220657348633,0.34332263469696045
-DeepKriging_wendland,6,118.52677154541016,10.887000116901357,5.501960754394531,0.2205384373664856
-DeepKriging_mrts,6,104.23543548583984,10.20957567609153,4.198758602142334,0.314521849155426
-DeepKriging_sphere,6,100.35295867919922,10.01763238890304,3.7877867221832275,0.3400539755821228
-DeepKriging_sphere_Huber,6,89.23344421386719,9.446345548087217,2.2697505950927734,0.4131786823272705
-UniversalKriging,6,97.96015138137604,9.89748207279892,3.726718814438184,0.35578974357392246
-OLS_wendland,7,76.23329162597656,8.731167827156717,5.660698890686035,-0.040972113609313965
-OLS_sphere,7,20.14491844177246,4.488309084919671,2.5142486095428467,0.7249194383621216
-DeepKriging_wendland,7,47.697105407714844,6.906309101663119,4.8773651123046875,0.3486919403076172
-DeepKriging_mrts,7,24.181089401245117,4.917427111940259,2.622922897338867,0.6698051691055298
-DeepKriging_sphere,7,18.261550903320312,4.27335358978406,1.907581090927124,0.7506369352340698
-DeepKriging_sphere_Huber,7,13.004573822021484,3.6061854946773724,0.9396819472312927,0.8224214315414429
-UniversalKriging,7,18.47253357477299,4.297968540458735,2.1254609458991953,0.7477559868182833
-OLS_wendland,8,338.088623046875,18.387186382012747,8.869123458862305,-0.3605726957321167
-OLS_sphere,8,132.2269744873047,11.498998847173814,3.7925479412078857,0.46787798404693604
-DeepKriging_wendland,8,174.04537963867188,13.19262595690001,6.893924236297607,0.29958784580230713
-DeepKriging_mrts,8,142.13516235351562,11.922045225275554,4.753262519836426,0.4280043840408325
-DeepKriging_sphere,8,134.78855895996094,11.609847499427412,3.5259382724761963,0.4575693607330322
-DeepKriging_sphere_Huber,8,125.72103118896484,11.212539016162435,2.5224409103393555,0.49405986070632935
-UniversalKriging,8,129.37807306512693,11.374448253217688,3.323169871751208,0.4793427868687271
-OLS_wendland,9,156.84071350097656,12.523606249837806,7.494758605957031,0.04234111309051514
-OLS_sphere,9,90.81490325927734,9.529685370424216,3.965514659881592,0.445490300655365
-DeepKriging_wendland,9,136.28451538085938,11.674095912783113,6.230611324310303,0.16785591840744019
-DeepKriging_mrts,9,101.02105712890625,10.050923197841392,4.075244426727295,0.3831722140312195
-DeepKriging_sphere,9,100.17607879638672,10.008800067759708,3.3313002586364746,0.3883315920829773
-DeepKriging_sphere_Huber,9,86.29838562011719,9.289692439479209,2.1309874057769775,0.47306787967681885
-UniversalKriging,9,93.99548417985329,9.695126826393418,3.3896593944116757,0.4260699101487446
-OLS_wendland,10,46704.796875,216.11292620988687,20.444887161254883,-298.9169921875
-OLS_sphere,10,85.39060974121094,9.240703963509,3.803103446960449,0.45166027545928955
-DeepKriging_wendland,10,131.78724670410156,11.479862660506944,6.1544952392578125,0.1537221074104309
-DeepKriging_mrts,10,107.76851654052734,10.381161618071811,3.7130188941955566,0.30795949697494507
-DeepKriging_sphere,10,88.19493865966797,9.391216037322748,3.251732349395752,0.4336521625518799
-DeepKriging_sphere_Huber,10,76.78773498535156,8.762861118684443,1.7413902282714844,0.5069040060043335
-UniversalKriging,10,91.59172244193877,9.570356442784082,3.5492599393631554,0.41183951308142963
-OLS_wendland,11,65.7195816040039,8.106761474473263,6.444315433502197,0.15396565198898315
-OLS_sphere,11,24.894906997680664,4.989479631953683,2.9169931411743164,0.679517924785614
-DeepKriging_wendland,11,54.49773406982422,7.382258060365014,5.546703338623047,0.29842889308929443
-DeepKriging_mrts,11,40.16814041137695,6.3378340473206585,3.736910104751587,0.4828994870185852
-DeepKriging_sphere,11,14.486011505126953,3.8060493303591,1.9280191659927368,0.8135157823562622
-DeepKriging_sphere_Huber,11,7.383924961090088,2.7173378444886254,0.8708510994911194,0.9049437642097473
-UniversalKriging,11,17.816791480907597,4.220994134194881,2.265116027929043,0.7706373317180878
-OLS_wendland,12,194.88833618164062,13.960241265165893,8.109787940979004,0.0147705078125
-OLS_sphere,12,106.70854949951172,10.329983034812386,3.7538411617279053,0.46055054664611816
-DeepKriging_wendland,12,180.46078491210938,13.433569328816127,6.752171993255615,0.08770692348480225
-DeepKriging_mrts,12,146.97030639648438,12.123131047567059,5.137851238250732,0.25701308250427246
-DeepKriging_sphere,12,122.69851684570312,11.076936257183352,3.369351625442505,0.37971562147140503
-DeepKriging_sphere_Huber,12,101.6001968383789,10.079692298794587,2.2850968837738037,0.486375093460083
-UniversalKriging,12,109.71541179344669,10.474512484762558,3.4876868568560204,0.4453497939904939
-OLS_wendland,13,492.7255554199219,22.19742226971235,8.746312141418457,-0.8466149568557739
-OLS_sphere,13,176.1959991455078,13.273884101705416,4.146615505218506,0.3396604657173157
-DeepKriging_wendland,13,224.43019104003906,14.980994327481707,6.954847812652588,0.15889054536819458
-DeepKriging_mrts,13,192.38853454589844,13.870419407714333,4.893923759460449,0.27897483110427856
-DeepKriging_sphere,13,189.19400024414062,13.754780995862516,4.193910121917725,0.2909471392631531
-DeepKriging_sphere_Huber,13,166.12847900390625,12.88908371467523,2.529031753540039,0.3773910403251648
-UniversalKriging,13,181.9730644616307,13.489739228822428,4.050047515402548,0.31800941450554765
-OLS_wendland,14,76.39132690429688,8.74021320702744,6.360142230987549,0.08971428871154785
-OLS_sphere,14,36.962890625,6.0797113932324125,3.1644349098205566,0.559546947479248
-DeepKriging_wendland,14,63.182064056396484,7.948714616615474,5.430943965911865,0.2471170425415039
-DeepKriging_mrts,14,44.27729034423828,6.654118299537384,3.949209451675415,0.47238796949386597
-DeepKriging_sphere,14,38.963497161865234,6.242074748179906,2.4675474166870117,0.5357075929641724
-DeepKriging_sphere_Huber,14,26.841228485107422,5.1808521002927135,1.5655806064605713,0.6801575422286987
-UniversalKriging,14,31.836443397744787,5.642379232003534,2.650915357320185,0.6206341647568339
-OLS_wendland,15,362.4444885253906,19.037974906102555,9.598369598388672,0.14655780792236328
-OLS_sphere,15,165.6742401123047,12.87145058306579,4.001501560211182,0.609889566898346
-DeepKriging_wendland,15,291.31024169921875,17.067813032114536,7.228255271911621,0.3140564560890198
-DeepKriging_mrts,15,205.61734008789062,14.339363308316399,4.144783020019531,0.5158361792564392
-DeepKriging_sphere,15,204.92967224121094,14.315364900735537,3.183896780014038,0.5174554586410522
-DeepKriging_sphere_Huber,15,194.58973693847656,13.94954253509686,2.770753860473633,0.541802704334259
-UniversalKriging,15,179.9097599855441,13.41304439661422,3.8799382823909507,0.5763694200938065
-OLS_wendland,16,385.9000244140625,19.644338227949103,7.75636100769043,-1.3868811130523682
-OLS_sphere,16,77.94779205322266,8.828804678620015,3.5428566932678223,0.5178748965263367
-DeepKriging_wendland,16,104.66972351074219,10.230822230433983,5.457324028015137,0.3525935411453247
-DeepKriging_mrts,16,77.94121551513672,8.828432222945176,3.6902942657470703,0.5179154872894287
-DeepKriging_sphere,16,174.34912109375,13.204132727814804,5.0444793701171875,-0.07838964462280273
-DeepKriging_sphere_Huber,16,72.49481201171875,8.514388528351214,1.8568679094314575,0.551602840423584
-UniversalKriging,16,80.05850016438364,8.947541570978235,3.182374305903637,0.5048196101005089
-OLS_wendland,17,157.27857971191406,12.541075699951502,6.484364032745361,-0.466866135597229
-OLS_sphere,17,41.45463943481445,6.438527738141263,2.968749523162842,0.6133713126182556
-DeepKriging_wendland,17,74.2823257446289,8.618719495646028,5.042412757873535,0.3072023391723633
-DeepKriging_mrts,17,48.25529861450195,6.94660338687203,3.0646212100982666,0.5499446392059326
-DeepKriging_sphere,17,40.42520523071289,6.358081882982704,2.123535633087158,0.6229723691940308
-DeepKriging_sphere_Huber,17,33.730770111083984,5.807819738170597,1.0882090330123901,0.685408353805542
-UniversalKriging,17,42.634235888014665,6.529489711150073,2.3375780880712047,0.6023697531246973
-OLS_wendland,18,575.5159912109375,23.98991436439358,8.36988639831543,-2.4929749965667725
-OLS_sphere,18,68.2618408203125,8.262072428895337,3.2027089595794678,0.5856988430023193
-DeepKriging_wendland,18,139.214111328125,11.79890297138361,6.649312973022461,0.15506881475448608
-DeepKriging_mrts,18,76.21635437011719,8.730197842553007,4.035462856292725,0.5374206304550171
-DeepKriging_sphere,18,70.71121215820312,8.40899590665872,2.4732744693756104,0.5708329677581787
-DeepKriging_sphere_Huber,18,61.4638557434082,7.839888758356729,1.82853364944458,0.626957893371582
-UniversalKriging,18,72.58055178926358,8.51942203375696,3.0069704816833602,0.5594873992649765
-OLS_wendland,19,343.1789245605469,18.525089056750762,8.230323791503906,0.10411059856414795
-OLS_sphere,19,220.17811584472656,14.838400043290603,3.9920527935028076,0.42521172761917114
-DeepKriging_wendland,19,273.377197265625,16.534122210314795,6.429704666137695,0.28633230924606323
-DeepKriging_mrts,19,237.1122283935547,15.398448895702277,4.211977005004883,0.3810041546821594
-DeepKriging_sphere,19,207.69334411621094,14.41156980055299,3.155895948410034,0.45780396461486816
-DeepKriging_sphere_Huber,19,210.4810028076172,14.507963427291136,2.330333948135376,0.4505265951156616
-UniversalKriging,19,221.36302567842665,14.87827361216437,3.549625814090553,0.42211844383080843
-OLS_wendland,20,205.25125122070312,14.326592449731482,7.3163347244262695,0.04026675224304199
-OLS_sphere,20,124.36067199707031,11.151711617373824,3.69039249420166,0.4185025691986084
-DeepKriging_wendland,20,180.5133819580078,13.435526858222115,6.308718681335449,0.15593844652175903
-DeepKriging_mrts,20,136.34628295898438,11.676741110386253,4.257756233215332,0.36245912313461304
-DeepKriging_sphere,20,146.30450439453125,12.095639891900356,5.145679950714111,0.31589555740356445
-DeepKriging_sphere_Huber,20,120.28984069824219,10.967672528765718,2.358842134475708,0.43753737211227417
-UniversalKriging,20,126.97978781644998,11.268530863269177,3.4156359333589443,0.4062558759470547
-OLS_wendland,21,333.3641662597656,18.258262958446117,9.033459663391113,-0.24479162693023682
-OLS_sphere,21,167.11106872558594,12.92714464704352,4.389772891998291,0.37600231170654297
-DeepKriging_wendland,21,223.5350799560547,14.951089590931314,7.239269733428955,0.16531336307525635
-DeepKriging_mrts,21,165.32513427734375,12.857882184766812,4.4353485107421875,0.3826709985733032
-DeepKriging_sphere,21,175.36605834960938,13.242585032749814,4.260003089904785,0.34517788887023926
-DeepKriging_sphere_Huber,21,160.2300262451172,12.658199960702042,2.8307201862335205,0.4016963243484497
-UniversalKriging,21,170.0461402769365,13.040174089211252,4.039868602596578,0.36504264777245043
-OLS_wendland,22,184.08963012695312,13.567963374322364,7.4394917488098145,0.03407251834869385
-OLS_sphere,22,91.17948150634766,9.548794767212648,3.3743653297424316,0.5215767025947571
-DeepKriging_wendland,22,134.3319091796875,11.590164329278835,5.9687113761901855,0.29515379667282104
-DeepKriging_mrts,22,93.1388931274414,9.650849347463746,3.9632813930511475,0.5112955570220947
-DeepKriging_sphere,22,96.40362548828125,9.818534793352889,2.8847496509552,0.4941653609275818
-DeepKriging_sphere_Huber,22,89.76451873779297,9.474413899434253,1.9902372360229492,0.5290011167526245
-UniversalKriging,22,85.27187085531372,9.234276953574314,2.8169522808714604,0.5525742238463471
-OLS_wendland,23,48214.59375,219.57821784047707,26.88910675048828,-169.16319274902344
-OLS_sphere,23,198.15093994140625,14.076609674968125,4.659758567810059,0.30066823959350586
-DeepKriging_wendland,23,237.42303466796875,15.408537719977478,6.5078654289245605,0.16206568479537964
-DeepKriging_mrts,23,212.71702575683594,14.58482175951547,4.909252643585205,0.2492603063583374
-DeepKriging_sphere,23,206.96250915527344,14.386191614019099,3.8082668781280518,0.26956963539123535
-DeepKriging_sphere_Huber,23,192.98678588867188,13.89196839503574,3.028486728668213,0.31889402866363525
-UniversalKriging,23,202.1316199887111,14.217300024572566,4.406272286899038,0.2866192514196445
-OLS_wendland,24,97.09913635253906,9.853889402288777,6.372705936431885,0.28624898195266724
-OLS_sphere,24,52.930477142333984,7.275333472929883,2.666246175765991,0.6109215021133423
-DeepKriging_wendland,24,89.67636108398438,9.469760349870759,5.187539100646973,0.34081190824508667
-DeepKriging_mrts,24,56.882102966308594,7.542022471877726,2.62957763671875,0.5818741321563721
-DeepKriging_sphere,24,52.839263916015625,7.269062107040744,1.9315167665481567,0.6115920543670654
-DeepKriging_sphere_Huber,24,48.299835205078125,6.949808285490912,1.4840716123580933,0.6449601650238037
-UniversalKriging,24,54.15359556204708,7.358912661667285,2.2693708042066665,0.6019306965934359
-OLS_wendland,25,1582.551025390625,39.7812898909855,10.00028133392334,-7.611696243286133
-OLS_sphere,25,109.54448699951172,10.466350223430885,4.334222793579102,0.403896689414978
-DeepKriging_wendland,25,159.11459350585938,12.614063322572127,7.001764297485352,0.1341533064842224
-DeepKriging_mrts,25,122.76580047607422,11.07997294563819,4.448757648468018,0.3319509029388428
-DeepKriging_sphere,25,116.77420043945312,10.806211197244533,3.811166763305664,0.3645550608634949
-DeepKriging_sphere_Huber,25,95.73130798339844,9.78423773134108,2.346170663833618,0.4790632724761963
-UniversalKriging,25,105.36505086261805,10.264747968782189,3.6038274360184124,0.4266397065215958
-OLS_wendland,26,420.14385986328125,20.497411052698368,8.43336296081543,0.22291070222854614
-OLS_sphere,26,335.92950439453125,18.328379753664294,5.297590732574463,0.3786718249320984
-DeepKriging_wendland,26,473.78948974609375,21.766705992090163,7.8904595375061035,0.12368887662887573
-DeepKriging_mrts,26,291.7021789550781,17.07929093829946,4.239632606506348,0.4604737162590027
-DeepKriging_sphere,26,309.59942626953125,17.595437654958495,4.066207408905029,0.42737138271331787
-DeepKriging_sphere_Huber,26,331.755615234375,18.214159745494026,3.1190428733825684,0.3863917589187622
-UniversalKriging,26,323.9469403243939,17.998526059774836,4.416545245606963,0.4008344521822802
-OLS_wendland,27,185.81973266601562,13.631571173786813,7.355372428894043,-0.1280895471572876
-OLS_sphere,27,90.6696548461914,9.522061480907977,3.380347490310669,0.44955527782440186
-DeepKriging_wendland,27,162.42848205566406,12.744743310701242,6.350609302520752,0.013915956020355225
-DeepKriging_mrts,27,98.7477035522461,9.937187909677773,3.7566287517547607,0.4005144238471985
-DeepKriging_sphere,27,86.26683807373047,9.287994297679692,2.3169918060302734,0.4762842655181885
-DeepKriging_sphere_Huber,27,78.12088012695312,8.838601706545733,1.6337335109710693,0.5257374048233032
-UniversalKriging,27,93.20570691161433,9.654310276328099,3.040952177161844,0.43415925552015344
-OLS_wendland,28,243.9448699951172,15.618734583669612,7.504209518432617,-1.1930158138275146
-OLS_sphere,28,56.33622741699219,7.505746293140489,3.1711654663085938,0.49354857206344604
-DeepKriging_wendland,28,91.38802337646484,9.55970833113986,5.855122089385986,0.1784399151802063
-DeepKriging_mrts,28,71.39411163330078,8.449503632362127,4.719728469848633,0.3581811785697937
-DeepKriging_sphere,28,130.2328643798828,11.411961460672869,4.1145195960998535,-0.1707674264907837
-DeepKriging_sphere_Huber,28,52.60959243774414,7.253247027210926,1.8825883865356445,0.527050256729126
-UniversalKriging,28,54.354103458945914,7.372523547534176,2.7832261270605905,0.5113674140088014
-OLS_wendland,29,635.5771484375,25.210655454341126,8.771356582641602,-4.122840881347656
-OLS_sphere,29,63.813507080078125,7.9883356889954324,2.9758312702178955,0.48565417528152466
-DeepKriging_wendland,29,98.57979583740234,9.928735863009065,5.147804260253906,0.2054329514503479
-DeepKriging_mrts,29,78.12590026855469,8.838885691565125,3.595335006713867,0.3702942728996277
-DeepKriging_sphere,29,76.98968505859375,8.774376619372669,2.283984661102295,0.37945228815078735
-DeepKriging_sphere_Huber,29,56.92050552368164,7.544567948112181,1.5423067808151245,0.5412127375602722
-UniversalKriging,29,65.8902184278202,8.117279003940926,2.782348570195298,0.46891555160641374
-OLS_wendland,30,11490.064453125,107.19171821145979,19.508508682250977,-78.37836456298828
-OLS_sphere,30,78.5926742553711,8.865250941477692,3.8295092582702637,0.45704764127731323
-DeepKriging_wendland,30,109.9162368774414,10.484094471028072,6.391831874847412,0.24065083265304565
-DeepKriging_mrts,30,76.28620147705078,8.734197242852417,3.350829839706421,0.47298169136047363
-DeepKriging_sphere,30,71.6101303100586,8.462276898687408,2.4847753047943115,0.5052860379219055
-DeepKriging_sphere_Huber,30,67.24651336669922,8.200397146888632,1.8927417993545532,0.5354318022727966
-UniversalKriging,30,73.20110420337981,8.5557643845176,3.0314890274751316,0.4942949164832767
-OLS_wendland,31,7830.37255859375,88.48939235068659,13.597549438476562,-41.503047943115234
-OLS_sphere,31,99.55728912353516,9.977839902681099,3.6907427310943604,0.45960575342178345
-DeepKriging_wendland,31,189.9770965576172,13.783217931877054,6.758006572723389,-0.03119051456451416
-DeepKriging_mrts,31,350.8138732910156,18.730025982123347,6.474599838256836,-0.9042081832885742
-DeepKriging_sphere,31,107.6571273803711,10.375795264960228,3.2920522689819336,0.41564005613327026
-DeepKriging_sphere_Huber,31,91.19261932373047,9.549482673094415,2.0930235385894775,0.5050089359283447
-UniversalKriging,31,109.91378334587203,10.4839774582871,3.4241429845260742,0.40339091332586663
-OLS_wendland,32,951.47802734375,30.846037465835867,10.377948760986328,-2.298419713973999
-OLS_sphere,32,135.20559692382812,11.627794155549372,4.2912187576293945,0.5312925577163696
-DeepKriging_wendland,32,209.37265014648438,14.469714929689678,6.999475479125977,0.2741830348968506
-DeepKriging_mrts,32,127.40652465820312,11.287449874006224,4.053257942199707,0.5583291053771973
-DeepKriging_sphere,32,189.92640686035156,13.781378989794582,4.248446464538574,0.34159594774246216
-DeepKriging_sphere_Huber,32,139.02334594726562,11.79081616968332,2.4699647426605225,0.5180578827857971
-UniversalKriging,32,151.6179290716604,12.313323234271907,4.026945966636523,0.4743971748621797
-OLS_wendland,33,504.10162353515625,22.452207542581558,8.199472427368164,-3.8341870307922363
-OLS_sphere,33,39.102848052978516,6.253227011150204,3.306506633758545,0.625015139579773
-DeepKriging_wendland,33,111.38294219970703,10.553811737931799,5.905643463134766,-0.06812989711761475
-DeepKriging_mrts,33,50.11985778808594,7.0795379643085425,2.7663373947143555,0.5193651914596558
-DeepKriging_sphere,33,73.31327056884766,8.562316892573392,2.881484270095825,0.296947181224823
-DeepKriging_sphere_Huber,33,37.476619720458984,6.121815067482763,1.425157904624939,0.6406101584434509
-UniversalKriging,33,58.90297871089259,7.6748276013792385,3.130013601117648,0.4351376560285849
-OLS_wendland,34,92.08457946777344,9.59607104328503,6.401495933532715,0.002248048782348633
-OLS_sphere,34,32.851226806640625,5.731598974687659,3.3784422874450684,0.6440514326095581
-DeepKriging_wendland,34,62.03310012817383,7.876109453795943,5.276460647583008,0.32786089181900024
-DeepKriging_mrts,34,50.34772491455078,7.0956130753128575,3.2998995780944824,0.4544738531112671
-DeepKriging_sphere,34,61.59213638305664,7.848065773364584,3.041975498199463,0.33263880014419556
-DeepKriging_sphere_Huber,34,25.249221801757812,5.024860376344582,1.1758315563201904,0.7264204025268555
-UniversalKriging,34,32.6233034623131,5.711681316592611,2.534628338040574,0.6465210115319493
-OLS_wendland,35,143.93621826171875,11.997342133227624,6.997428894042969,-0.08916652202606201
-OLS_sphere,35,57.24068069458008,7.565757113110364,3.1873700618743896,0.5668593049049377
-DeepKriging_wendland,35,101.00186920166016,10.049968616949018,5.78079891204834,0.2357180118560791
-DeepKriging_mrts,35,67.25550842285156,8.200945581020006,3.1476776599884033,0.4910770058631897
-DeepKriging_sphere,35,69.3730697631836,8.32904975151329,2.6368916034698486,0.47505342960357666
-DeepKriging_sphere_Huber,35,52.65331268310547,7.2562602408613674,1.3035683631896973,0.6015719175338745
-UniversalKriging,35,58.16202163076926,7.626402928692482,2.4857099131152456,0.5598875061797478
-OLS_wendland,36,145.4001007080078,12.058196411902063,6.894294738769531,-0.20428168773651123
-OLS_sphere,36,49.73139190673828,7.052048773706708,3.157334566116333,0.5880979299545288
-DeepKriging_wendland,36,96.3086929321289,9.813699248098493,5.79290246963501,0.2023196816444397
-DeepKriging_mrts,36,64.64311218261719,8.040094040657559,3.2241528034210205,0.46459102630615234
-DeepKriging_sphere,36,25.99880599975586,5.098902430891952,2.5211679935455322,0.7846639156341553
-DeepKriging_sphere_Huber,36,45.18593215942383,6.722048211625965,1.3352129459381104,0.6257458329200745
-UniversalKriging,36,42.95186100371096,6.553766932361187,2.5239145806928707,0.6442496243105323
-OLS_wendland,37,217.2191619873047,14.738356827927078,6.784821510314941,0.09677755832672119
-OLS_sphere,37,145.89578247070312,12.078732651677623,4.050541877746582,0.3933483958244324
-DeepKriging_wendland,37,198.03211975097656,14.072388558840201,5.926292896270752,0.1765594482421875
-DeepKriging_mrts,37,152.608642578125,12.353487061478836,3.863311529159546,0.36543554067611694
-DeepKriging_sphere,37,149.92665100097656,12.244453887412723,3.3143181800842285,0.37658756971359253
-DeepKriging_sphere_Huber,37,145.11859130859375,12.046517808420562,2.2213501930236816,0.3965800404548645
-UniversalKriging,37,151.92672845635988,12.325856094258114,3.85649682402166,0.36827106491969885
-OLS_wendland,38,874.9893798828125,29.580219402208844,10.002724647521973,-4.321139812469482
-OLS_sphere,38,75.4229507446289,8.684638780319473,2.9822163581848145,0.5413246154785156
-DeepKriging_wendland,38,139.92311096191406,11.828909965077681,6.433381080627441,0.14907485246658325
-DeepKriging_mrts,38,84.97239685058594,9.218047344778933,3.6719956398010254,0.48325085639953613
-DeepKriging_sphere,38,62.58824157714844,7.911273069307394,2.1301846504211426,0.6193773150444031
-DeepKriging_sphere_Huber,38,58.39006805419922,7.641339414932386,1.2722117900848389,0.6449080109596252
-UniversalKriging,38,70.13941174574364,8.374927566596838,2.4233659097496676,0.5734558562753505
-OLS_wendland,39,120.8060302734375,10.991179657954714,6.398131847381592,0.10565286874771118
-OLS_sphere,39,79.02928161621094,8.88984148431292,3.077793836593628,0.41493308544158936
-DeepKriging_wendland,39,113.78227233886719,10.666877347137127,5.493028163909912,0.15765094757080078
-DeepKriging_mrts,39,81.53889465332031,9.029888961295168,3.2914535999298096,0.3963540196418762
-DeepKriging_sphere,39,84.2649154663086,9.179592336607797,2.8651883602142334,0.37617284059524536
-DeepKriging_sphere_Huber,39,71.65084075927734,8.464681964449541,1.6827160120010376,0.46955692768096924
-UniversalKriging,39,76.84355848571809,8.766045772508726,2.76382354354984,0.43111437060875757
-OLS_wendland,40,249.88426208496094,15.807727922916719,7.4497528076171875,-1.2333519458770752
-OLS_sphere,40,52.025306701660156,7.2128570415377125,2.9186933040618896,0.5350214242935181
-DeepKriging_wendland,40,91.84444427490234,9.583550713326577,5.773375034332275,0.17913609743118286
-DeepKriging_mrts,40,61.98670196533203,7.873163402682052,2.8218495845794678,0.44599103927612305
-DeepKriging_sphere,40,58.0510368347168,7.619123101428195,3.0013315677642822,0.4811662435531616
-DeepKriging_sphere_Huber,40,39.66299057006836,6.2978560296396395,1.0768554210662842,0.645510196685791
-UniversalKriging,40,51.86687910259587,7.201866362450491,2.452699137347247,0.5364374367432115
-OLS_wendland,41,102.84648132324219,10.141325422411125,7.152385234832764,0.14425718784332275
-OLS_sphere,41,41.12593460083008,6.412950537843722,3.395007371902466,0.6578081846237183
-DeepKriging_wendland,41,91.09140014648438,9.54418148122113,6.038312911987305,0.2420663833618164
-DeepKriging_mrts,41,55.893821716308594,7.476217072578122,3.382450580596924,0.5349308252334595
-DeepKriging_sphere,41,50.001224517822266,7.071154397820929,2.3740813732147217,0.5839606523513794
-DeepKriging_sphere_Huber,41,33.28831100463867,5.769602326385994,1.473345160484314,0.7230218052864075
-UniversalKriging,41,39.647001055997734,6.29658646061481,2.6878130514586545,0.6701138050844195
-OLS_wendland,42,1174.218505859375,34.26687184234031,9.424605369567871,-6.9974493980407715
-OLS_sphere,42,85.90540313720703,9.268516771156376,3.8558499813079834,0.4149094820022583
-DeepKriging_wendland,42,109.28353118896484,10.453876371421504,5.551146030426025,0.2556840777397156
-DeepKriging_mrts,42,97.85687255859375,9.892263267755956,4.143897533416748,0.33350956439971924
-DeepKriging_sphere,42,77.84477233886719,8.822968453919984,3.2595107555389404,0.469809353351593
-DeepKriging_sphere_Huber,42,70.51678466796875,8.397427264821575,1.9296247959136963,0.5197193622589111
-UniversalKriging,42,78.77065155506416,8.875283181682946,3.313208787033903,0.4635033624513797
-OLS_wendland,43,67906.7265625,260.5891911850912,25.315324783325195,-201.22328186035156
-OLS_sphere,43,229.00999450683594,15.133076174619486,4.969691753387451,0.31801819801330566
-DeepKriging_wendland,43,306.3968811035156,17.504196099893182,7.877997875213623,0.08756345510482788
-DeepKriging_mrts,43,276.1060791015625,16.616440024913956,5.043865203857422,0.17776811122894287
-DeepKriging_sphere,43,253.02890014648438,15.906882162965953,4.423473358154297,0.2464909553527832
-DeepKriging_sphere_Huber,43,220.1409912109375,14.837149025703606,3.4715425968170166,0.34442973136901855
-UniversalKriging,43,236.23335868077186,15.369884797251144,4.664989054963829,0.2965073490989729
-OLS_wendland,44,63.027767181396484,7.939002908514172,6.013075828552246,0.1500225067138672
-OLS_sphere,44,22.578357696533203,4.7516689380188515,2.729233741760254,0.6955136060714722
-DeepKriging_wendland,44,57.27103042602539,7.567762577276417,5.438377380371094,0.22765642404556274
-DeepKriging_mrts,44,66.3051986694336,8.142800419354117,3.6678760051727295,0.105823814868927
-DeepKriging_sphere,44,50.57801055908203,7.111821887468923,2.8776509761810303,0.3179169297218323
-DeepKriging_sphere_Huber,44,17.006149291992188,4.123851269383049,1.5188854932785034,0.7706590890884399
-UniversalKriging,44,21.66850412331889,4.65494405157773,2.1966495189062454,0.7077836920034899
-OLS_wendland,45,59.67863464355469,7.725194796479548,5.983094215393066,0.07098066806793213
-OLS_sphere,45,20.429670333862305,4.519919283998588,2.4417152404785156,0.6819705963134766
-DeepKriging_wendland,45,53.711936950683594,7.328842811159453,5.319265365600586,0.16386443376541138
-DeepKriging_mrts,45,20.09797477722168,4.483076485765292,2.4646828174591064,0.6871341466903687
-DeepKriging_sphere,45,27.493234634399414,5.243399148872744,2.87184739112854,0.5720118880271912
-DeepKriging_sphere_Huber,45,13.861834526062012,3.7231484695163597,1.06931734085083,0.7842123508453369
-UniversalKriging,45,17.24838929621196,4.1531180209827845,1.9825585173561686,0.7314937427701782
-OLS_wendland,46,219.56930541992188,14.817871150064772,8.0545015335083,0.2773206830024719
-OLS_sphere,46,152.2791748046875,12.340144845369016,4.289466857910156,0.4987960457801819
-DeepKriging_wendland,46,224.8146209716797,14.993819425739384,7.378598690032959,0.2600564956665039
-DeepKriging_mrts,46,167.1626739501953,12.929140495415592,4.199665069580078,0.4498092532157898
-DeepKriging_sphere,46,158.67178344726562,12.59649885671672,3.390641212463379,0.47775572538375854
-DeepKriging_sphere_Huber,46,140.11050415039062,11.836828297748964,2.523690938949585,0.5388473868370056
-UniversalKriging,46,149.83125945277047,12.240557971463984,3.7610187866205083,0.5068529589223696
-OLS_wendland,47,262.1463623046875,16.190934571688178,7.707786560058594,0.0163116455078125
-OLS_sphere,47,172.48062133789062,13.133187782784903,4.730251789093018,0.3527768850326538
-DeepKriging_wendland,47,243.4408721923828,15.602591842139011,6.793474197387695,0.08650285005569458
-DeepKriging_mrts,47,154.29306030273438,12.421475769920995,4.527071475982666,0.4210246205329895
-DeepKriging_sphere,47,154.8728485107422,12.444792023603375,3.7832510471343994,0.41884905099868774
-DeepKriging_sphere_Huber,47,151.49057006835938,12.30815055434241,2.6198530197143555,0.431540846824646
-UniversalKriging,47,154.9516359378041,12.44795709897026,3.811084307378028,0.4185533482724284
-OLS_wendland,48,132157.46875,363.5346871345292,29.07362174987793,-986.3389892578125
-OLS_sphere,48,79.77658081054688,8.931773665434367,3.283576011657715,0.40399491786956787
-DeepKriging_wendland,48,105.73374938964844,10.282691738530746,5.317865371704102,0.21007072925567627
-DeepKriging_mrts,48,73.87605285644531,8.595117966406587,2.7381021976470947,0.4480772614479065
-DeepKriging_sphere,48,83.2769775390625,9.125622035733372,3.4269771575927734,0.3778436779975891
-DeepKriging_sphere_Huber,48,69.74122619628906,8.351121253837059,1.6430270671844482,0.4789682626724243
-UniversalKriging,48,76.08438457143524,8.722636331490339,2.690310594706139,0.431579002945077
-OLS_wendland,49,174.1925506591797,13.198202554104846,6.886566638946533,-0.04603230953216553
-OLS_sphere,49,101.46198272705078,10.072833897521132,3.7046401500701904,0.39071720838546753
-DeepKriging_wendland,49,133.48606872558594,11.553617127358251,5.770646095275879,0.19841152429580688
-DeepKriging_mrts,49,96.6652603149414,9.831849282558261,4.10358190536499,0.4195217490196228
-DeepKriging_sphere,49,100.89315795898438,10.044558624398803,2.8467769622802734,0.3941330909729004
-DeepKriging_sphere_Huber,49,92.03209686279297,9.5933360653525,2.0356967449188232,0.4473440647125244
-UniversalKriging,49,97.58569551775344,9.878547237208183,3.1438328465710446,0.41399454582173345
-OLS_wendland,50,388.9678649902344,19.72226825165489,8.321263313293457,-0.92574143409729
-OLS_sphere,50,104.70977783203125,10.232779575073003,3.285640239715576,0.48159223794937134
-DeepKriging_wendland,50,169.98944091796875,13.037999881805826,5.951483249664307,0.15839910507202148
-DeepKriging_mrts,50,107.02892303466797,10.345478385974618,3.0642247200012207,0.4701104164123535
-DeepKriging_sphere,50,109.07627868652344,10.443958956570226,2.6155550479888916,0.45997411012649536
-DeepKriging_sphere_Huber,50,107.64576721191406,10.375247814482027,1.8826717138290405,0.4670564532279968
-UniversalKriging,50,101.52742887166663,10.076082019895761,2.7916406459766505,0.4973477144127607
diff --git a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb b/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb
deleted file mode 100644
index 4795023..0000000
--- a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb
+++ /dev/null
@@ -1,10523 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "d1cde2eb",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:09.855329Z",
- "iopub.status.busy": "2026-03-29T15:51:09.855153Z",
- "iopub.status.idle": "2026-03-29T15:51:09.859870Z",
- "shell.execute_reply": "2026-03-29T15:51:09.859211Z"
- },
- "papermill": {
- "duration": 0.01117,
- "end_time": "2026-03-29T15:51:09.860573",
- "exception": false,
- "start_time": "2026-03-29T15:51:09.849403",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Project root added: /home/hhuscout/myproject/deepkriging-sphere\n"
- ]
- }
- ],
- "source": [
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "import sys\n",
- "import os\n",
- "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
- "if project_root not in sys.path:\n",
- " sys.path.append(project_root)\n",
- "print(f\"Project root added: {project_root}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "8890884f",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:09.866364Z",
- "iopub.status.busy": "2026-03-29T15:51:09.866242Z",
- "iopub.status.idle": "2026-03-29T15:51:11.908858Z",
- "shell.execute_reply": "2026-03-29T15:51:11.907928Z"
- },
- "papermill": {
- "duration": 2.047417,
- "end_time": "2026-03-29T15:51:11.909414",
- "exception": false,
- "start_time": "2026-03-29T15:51:09.861997",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 23:51:10.587611: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774799470.597449 432902 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774799470.600184 432902 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774799470.607560 432902 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799470.607581 432902 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799470.607582 432902 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799470.607583 432902 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- }
- ],
- "source": [
- "import multiprocessing as mp\n",
- "if mp.get_start_method(allow_none=True) is None:\n",
- " mp.set_start_method('spawn')\n",
- "\n",
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
- "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
- "\n",
- "import os, time, gc\n",
- "from types import SimpleNamespace\n",
- "\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "import time as time_module\n",
- "from scipy.stats import t\n",
- "from scipy.special import kv, gamma\n",
- "\n",
- "import jax, jax.numpy as jnp\n",
- "\n",
- "import tensorflow as tf\n",
- "from tensorflow.keras import mixed_precision\n",
- "from tensorflow.keras.optimizers import Adam\n",
- "from tensorflow.keras.losses import Huber\n",
- "from tensorflow.keras import backend as K\n",
- "\n",
- "from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
- "from sklearn.linear_model import LinearRegression, Ridge\n",
- "from sklearn.preprocessing import OneHotEncoder\n",
- "\n",
- "import optuna\n",
- "import plotly.io as pio\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "import matplotlib.colors as mcolors\n",
- "import cartopy.crs as ccrs\n",
- "import cartopy.feature as cfeature\n",
- "\n",
- "import random"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "46d6d1ba",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:11.913996Z",
- "iopub.status.busy": "2026-03-29T15:51:11.913733Z",
- "iopub.status.idle": "2026-03-29T15:51:12.802119Z",
- "shell.execute_reply": "2026-03-29T15:51:12.801449Z"
- },
- "papermill": {
- "duration": 0.891841,
- "end_time": "2026-03-29T15:51:12.802745",
- "exception": false,
- "start_time": "2026-03-29T15:51:11.910904",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "np_f32 = np.float32\n",
- "jnp_f32 = jnp.float32\n",
- "dtype_basis = np.float32\n",
- "\n",
- "jax.config.update(\"jax_enable_x64\", False)\n",
- "\n",
- "pio.renderers.default = \"notebook\"\n",
- "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
- "\n",
- "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
- "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
- "\n",
- "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
- "\n",
- "def init_hardware(dtype: str = \"float32\"):\n",
- " gpus = tf.config.list_physical_devices(\"GPU\")\n",
- " for g in gpus:\n",
- " tf.config.experimental.set_memory_growth(g, True)\n",
- " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
- " mixed_precision.set_global_policy(dtype)\n",
- " return strategy\n",
- "\n",
- "strategy = init_hardware(dtype=\"float32\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "8dd094a7",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:12.807262Z",
- "iopub.status.busy": "2026-03-29T15:51:12.807108Z",
- "iopub.status.idle": "2026-03-29T15:51:12.809922Z",
- "shell.execute_reply": "2026-03-29T15:51:12.809283Z"
- },
- "papermill": {
- "duration": 0.006157,
- "end_time": "2026-03-29T15:51:12.810305",
- "exception": false,
- "start_time": "2026-03-29T15:51:12.804148",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "from IPython.display import display, Javascript\n",
- "\n",
- "def save_notebook():\n",
- " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
- " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
- " print(f\"Notebook saved at {current_time}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "f0aafba7",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:12.813629Z",
- "iopub.status.busy": "2026-03-29T15:51:12.813502Z",
- "iopub.status.idle": "2026-03-29T15:51:25.842841Z",
- "shell.execute_reply": "2026-03-29T15:51:25.842080Z"
- },
- "papermill": {
- "duration": 13.03211,
- "end_time": "2026-03-29T15:51:25.843644",
- "exception": false,
- "start_time": "2026-03-29T15:51:12.811534",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
- "source": [
- "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
- "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
- "\n",
- "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
- "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
- "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
- "\n",
- "from rpy2.robjects.conversion import localconverter\n",
- "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "32986e25",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:25.848880Z",
- "iopub.status.busy": "2026-03-29T15:51:25.848596Z",
- "iopub.status.idle": "2026-03-29T15:51:25.854176Z",
- "shell.execute_reply": "2026-03-29T15:51:25.853405Z"
- },
- "papermill": {
- "duration": 0.009458,
- "end_time": "2026-03-29T15:51:25.854622",
- "exception": false,
- "start_time": "2026-03-29T15:51:25.845164",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import pandas as pd\n",
- "import gc\n",
- "\n",
- "def _gp_draw(rng, num_sample):\n",
- " \"\"\"Sample one GP draw on the sphere with stationary exp covariance (rho=0.5).\"\"\"\n",
- " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
- " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
- " lat_rad = np.pi/2 - theta\n",
- " lon_rad = phi - np.pi\n",
- "\n",
- " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
- " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
- "\n",
- " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
- " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
- " z_c = np.sin(lat_rad)\n",
- " coords = np.column_stack([x_c, y_c, z_c]).astype(np.float32)\n",
- "\n",
- " dist_matrix = np.sqrt(((coords[:, None, :] - coords[None, :, :]) ** 2).sum(axis=2))\n",
- " cov_matrix = np.exp(-dist_matrix / 0.5).astype(np.float32)\n",
- " cov_matrix += np.float32(1e-3) * np.eye(num_sample, dtype=np.float32)\n",
- "\n",
- " try:\n",
- " L = np.linalg.cholesky(cov_matrix)\n",
- " except np.linalg.LinAlgError:\n",
- " cov_matrix += np.float32(1e-2) * np.eye(num_sample, dtype=np.float32)\n",
- " try:\n",
- " L = np.linalg.cholesky(cov_matrix)\n",
- " except np.linalg.LinAlgError:\n",
- " ev, evec = np.linalg.eigh(cov_matrix)\n",
- " ev = np.maximum(ev, 1e-6)\n",
- " L = evec @ np.diag(np.sqrt(ev))\n",
- "\n",
- " y = (np.float32(1.0) + L @ rng.standard_normal(num_sample).astype(np.float32)).astype(np.float32)\n",
- "\n",
- " del dist_matrix, cov_matrix, L, x_c, y_c, z_c, coords\n",
- " gc.collect()\n",
- " return lat_deg, lon_deg, y\n",
- "\n",
- "def simulate_data(num_sample, seed):\n",
- " \"\"\"Stationary GP + N(0, 0.5^2) Gaussian noise.\"\"\"\n",
- " rng = np.random.default_rng(seed)\n",
- " lat_deg, lon_deg, y = _gp_draw(rng, num_sample)\n",
- " noise = rng.normal(0.0, 0.5, num_sample).astype(np.float32)\n",
- " z = y + noise\n",
- " print(f\"\\n=== GP + N(0, 0.5^2) noise | seed={seed} ===\")\n",
- " print(f\"z mean: {np.mean(z):.4f} (\\u00b1{np.std(z)/np.sqrt(num_sample):.4f}), \"\n",
- " f\"Var: {np.var(z, ddof=0):.4f}, Range: [{np.min(z):.4f}, {np.max(z):.4f}]\")\n",
- " del noise\n",
- " gc.collect()\n",
- " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z})\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "e5c1e9f9",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:25.857929Z",
- "iopub.status.busy": "2026-03-29T15:51:25.857800Z",
- "iopub.status.idle": "2026-03-29T15:51:25.865176Z",
- "shell.execute_reply": "2026-03-29T15:51:25.864470Z"
- },
- "papermill": {
- "duration": 0.009723,
- "end_time": "2026-03-29T15:51:25.865681",
- "exception": false,
- "start_time": "2026-03-29T15:51:25.855958",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def data_preprocessing(data_frame):\n",
- " data = data_frame.copy()\n",
- " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
- " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
- " data.dropna(subset=numeric_cols, inplace=True)\n",
- " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
- " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
- " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
- " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
- " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
- " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
- " categorical_data = None\n",
- " return location_data, location_data_norm, categorical_data, y_combined\n",
- "\n",
- "\n",
- "def precompute_wendland(location, num_basis):\n",
- " parts = []\n",
- " for nb in num_basis:\n",
- " grid = np.column_stack(np.meshgrid(\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " )).reshape(-1, 2).astype(np_f32)\n",
- " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
- " parts.append(wendland(location, grid, theta=theta, k=2))\n",
- " del grid\n",
- " gc.collect()\n",
- " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
- "\n",
- "\n",
- "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
- " if knot is None:\n",
- " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
- " knot = location_data[idx_knot].astype(np_f32)\n",
- " else:\n",
- " idx_knot = None\n",
- "\n",
- " if distance_type == \"sphere\":\n",
- " with localconverter(numpy2ri_converter):\n",
- " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
- " res_dict = dict(zip(res_r.names(), res_r))\n",
- " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
- " else:\n",
- " phi = np.asarray(\n",
- " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
- " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
- " )\n",
- " return phi, idx_knot, knot\n",
- "\n",
- "\n",
- "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
- " idx_all = np.arange(basis.shape[0])\n",
- " train_ratio, val_ratio, test_ratio = split_ratio\n",
- " train_val_x1, test_x1 = train_test_split(\n",
- " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
- " train_x1, val_x1 = train_test_split(\n",
- " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
- " X_train_cont = basis[train_x1]\n",
- " X_val_cont = basis[val_x1]\n",
- " X_test_cont = basis[test_x1]\n",
- " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
- " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
- " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
- " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
- " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
- " if categorical_data is None:\n",
- " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
- " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
- " else:\n",
- " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
- " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
- " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
- " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
- " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
- " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
- " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
- " return (X_train_flat, X_train_cat, y_train_flat,\n",
- " X_val_flat, X_val_cat, y_val_flat,\n",
- " X_test_flat, X_test_cat, y_test_flat)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "6728b7b3",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:25.869093Z",
- "iopub.status.busy": "2026-03-29T15:51:25.868970Z",
- "iopub.status.idle": "2026-03-29T15:51:25.876198Z",
- "shell.execute_reply": "2026-03-29T15:51:25.875451Z"
- },
- "papermill": {
- "duration": 0.009645,
- "end_time": "2026-03-29T15:51:25.876616",
- "exception": false,
- "start_time": "2026-03-29T15:51:25.866971",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def cleanup_tf_session():\n",
- " K.clear_session()\n",
- " gc.collect()\n",
- " try:\n",
- " tf.keras.backend.clear_session()\n",
- " except:\n",
- " pass\n",
- "\n",
- "\n",
- "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
- " X_train, X_train_cat, y_train,\n",
- " X_val, X_val_cat, y_val,\n",
- " X_test, X_test_cat, y_test):\n",
- "\n",
- " os.environ['PYTHONHASHSEED'] = str(seed)\n",
- " random.seed(seed)\n",
- " np.random.seed(seed)\n",
- " tf.random.set_seed(seed)\n",
- "\n",
- " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
- " t0 = time.time()\n",
- " model = LinearRegression().fit(X_train, y_train)\n",
- " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
- " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
- " training_time = time.time() - t0\n",
- " metrics = {\n",
- " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- " return metrics, model\n",
- "\n",
- " elif name_model == \"DeepKriging_wendland\":\n",
- " config = DeepKrigingDefaultConfig(\n",
- " input_dim=X_train.shape[1], output_type='continuous',\n",
- " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
- " epochs=epochs, batch_size=batch_size, verbose=0\n",
- " )\n",
- "\n",
- " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
- " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
- " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
- " config = DeepKrigingModelConfig(\n",
- " input_dim=X_train.shape[1], output_type='continuous',\n",
- " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
- " dropout_rate=dropout_rate, optimizer=_opt,\n",
- " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
- " patience=40, verbose=0\n",
- " )\n",
- "\n",
- " t0 = time.time()\n",
- " with strategy.scope():\n",
- " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
- " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
- "\n",
- " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
- " if name_model == \"DeepKriging_wendland\":\n",
- " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0)]\n",
- " else:\n",
- " callbacks = [\n",
- " tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0),\n",
- " tf.keras.callbacks.EarlyStopping(\n",
- " monitor='val_loss', patience=config.patience,\n",
- " restore_best_weights=True, verbose=0),\n",
- " tf.keras.callbacks.ReduceLROnPlateau(\n",
- " monitor='val_loss', factor=0.5,\n",
- " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
- " ]\n",
- "\n",
- " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
- " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
- " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- "\n",
- " history = model.model.fit(\n",
- " train_dataset, validation_data=val_dataset,\n",
- " epochs=epochs, callbacks=callbacks, verbose=0)\n",
- "\n",
- " if os.path.exists(checkpoint_path):\n",
- " model.model.load_weights(checkpoint_path)\n",
- " os.remove(checkpoint_path)\n",
- "\n",
- " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
- " training_time = time.time() - t0\n",
- "\n",
- " metrics = {\n",
- " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- " del train_dataset, val_dataset\n",
- " gc.collect()\n",
- " return metrics, model"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "ce398870",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:25.880045Z",
- "iopub.status.busy": "2026-03-29T15:51:25.879918Z",
- "iopub.status.idle": "2026-03-29T15:51:25.888811Z",
- "shell.execute_reply": "2026-03-29T15:51:25.887685Z"
- },
- "papermill": {
- "duration": 0.011353,
- "end_time": "2026-03-29T15:51:25.889243",
- "exception": false,
- "start_time": "2026-03-29T15:51:25.877890",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " sc = ax.scatter(longitude, latitude, c=value,\n",
- " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
- " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(title, fontsize=10, pad=3)\n",
- " return sc\n",
- "\n",
- "\n",
- "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
- " plot_type='prediction', cbar_label=None):\n",
- " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
- " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
- " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
- " if plot_type == 'residual' else\n",
- " mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
- " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(title, fontsize=10, pad=3)\n",
- " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
- " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
- " cbar.ax.tick_params(labelsize=7)\n",
- " return ax, sc\n",
- "\n",
- "\n",
- "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
- " model_list=None, experiment_info=None):\n",
- " if model_list is None:\n",
- " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
- " idx_all = np.arange(len(y_combined))\n",
- " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
- " y_test = y_combined[test_idx].reshape(-1)\n",
- " test_locations = dataframe.iloc[test_idx]\n",
- "\n",
- " predictions = {}\n",
- " for model_name in model_list:\n",
- " if model_name not in models_dict or models_dict[model_name] is None:\n",
- " continue\n",
- " model = models_dict[model_name]\n",
- " X_test = basis_dict[model_name][test_idx]\n",
- " if \"DeepKriging\" in model_name:\n",
- " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
- " elif model_name == \"UniversalKriging\":\n",
- " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
- " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
- " else:\n",
- " y_pred = model.predict(X_test).reshape(-1)\n",
- " mse = mean_squared_error(y_test, y_pred)\n",
- " rmse = np.sqrt(mse)\n",
- " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
- " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
- "\n",
- " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
- " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
- "\n",
- " fig1 = plt.figure(figsize=(16, 14))\n",
- " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
- " f'Real Data (n={len(dataframe)})')\n",
- " for i, mn in enumerate(model_list):\n",
- " if mn in predictions:\n",
- " p = predictions[mn]\n",
- " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
- " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
- " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
- " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
- " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
- " plt.show(); plt.close(fig1)\n",
- "\n",
- " fig2 = plt.figure(figsize=(18, 6))\n",
- " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
- " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
- " for i, mn in enumerate(model_list):\n",
- " if mn in predictions:\n",
- " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
- " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
- " -vmax_abs, vmax_abs,\n",
- " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
- " plot_type='residual')\n",
- " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
- " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
- " plt.show(); plt.close(fig2)\n",
- " return predictions, test_idx"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "7d38eb7c",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:25.892463Z",
- "iopub.status.busy": "2026-03-29T15:51:25.892341Z",
- "iopub.status.idle": "2026-03-29T15:51:25.895413Z",
- "shell.execute_reply": "2026-03-29T15:51:25.894710Z"
- },
- "papermill": {
- "duration": 0.005332,
- "end_time": "2026-03-29T15:51:25.895859",
- "exception": false,
- "start_time": "2026-03-29T15:51:25.890527",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\n",
- "dk_sphere candidates : [10, 50, 100, 150, 200, 1000] (restored to original)\n",
- "repeats : 50\n"
- ]
- }
- ],
- "source": [
- "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
- "seed = 50\n",
- "epochs = 500\n",
- "batch_size = 256\n",
- "num_sample = 2500\n",
- "huber_delta = 1.345\n",
- "\n",
- "num_basis = [10**2, 19**2, 37**2]\n",
- "knot_num = 1400\n",
- "order_max = 1400\n",
- "\n",
- "# All models (including dk_sphere) use the same original candidates\n",
- "base_orders = [10, 50, 100, 150, 200, 1000]\n",
- "\n",
- "repeat_experiment = 50\n",
- "\n",
- "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
- "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
- "print(f\"repeats : {repeat_experiment}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "main_loop_GP_noise",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T15:51:25.899191Z",
- "iopub.status.busy": "2026-03-29T15:51:25.899064Z",
- "iopub.status.idle": "2026-03-29T21:57:05.953619Z",
- "shell.execute_reply": "2026-03-29T21:57:05.952726Z"
- },
- "papermill": {
- "duration": 21940.057059,
- "end_time": "2026-03-29T21:57:05.954212",
- "exception": false,
- "start_time": "2026-03-29T15:51:25.897153",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Starting fresh.\n",
- "\n",
- "======================================================================\n",
- "Repeat 1/50 seed=50\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 23:51:26.491172: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774799486.500214 433145 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774799486.503163 433145 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774799486.510014 433145 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799486.510039 433145 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799486.510041 433145 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799486.510042 433145 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] seed=50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=50 ===\n",
- "z mean: 1.2542 (±0.0207), Var: 1.0693, Range: [-2.1619, 4.4872]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774799507.244272 433145 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774799508.779980 433506 service.cc:152] XLA service 0x556fdc2851a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774799508.780003 433506 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774799508.999161 433506 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774799510.658291 433506 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f407c327eb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f40744068c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3673, sigma²=0.6935, nugget=0.2454\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3628, sigma²=0.6830, nugget=0.2457\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3630, sigma²=0.6821, nugget=0.2459\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3632, sigma²=0.6816, nugget=0.2460\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3633, sigma²=0.6815, nugget=0.2460\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3641, sigma²=0.6812, nugget=0.2460\n",
- "[repeat 0] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3628, sigma²=0.6830, nugget=0.2457\n",
- "[repeat 0] done → repeat_0_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 33.0244 | 5.7467 | 1.191 | -29.7573 |\n",
- "| OLS_sphere | 200 | 0.3786 | 0.6153 | 0.4986 | 0.6474 |\n",
- "| DeepKriging_wendland | -- | 0.7672 | 0.8759 | 0.7048 | 0.2855 |\n",
- "| DeepKriging_mrts | 50 | 0.4138 | 0.6433 | 0.5119 | 0.6146 |\n",
- "| DeepKriging_sphere | 10 | 0.4278 | 0.6541 | 0.5253 | 0.6016 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4382 | 0.662 | 0.5239 | 0.5919 |\n",
- "| UniversalKriging | 50 | 0.3863 | 0.6215 | 0.4977 | 0.6402 |\n",
- "Repeat 1/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 2/50 seed=51\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 23:58:39.983731: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774799919.993320 743864 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774799919.996047 743864 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774799920.003248 743864 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799920.003278 743864 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799920.003280 743864 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774799920.003281 743864 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] seed=51\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=51 ===\n",
- "z mean: 1.2223 (±0.0221), Var: 1.2193, Range: [-2.0538, 4.5060]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774799940.676582 743864 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774799942.185208 744218 service.cc:152] XLA service 0x7fe050006740 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774799942.185235 744218 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774799942.402487 744218 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774799944.064172 744218 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe284537eb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe27c4f70a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6036, sigma²=1.0261, nugget=0.2739\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5948, sigma²=1.0064, nugget=0.2744\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5955, sigma²=1.0051, nugget=0.2746\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5963, sigma²=1.0050, nugget=0.2747\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5967, sigma²=1.0050, nugget=0.2747\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5980, sigma²=1.0053, nugget=0.2746\n",
- "[repeat 1] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5948, sigma²=1.0064, nugget=0.2744\n",
- "[repeat 1] done → repeat_1_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|-----------|\n",
- "| OLS_wendland | -- | 743.163 | 27.261 | 2.4796 | -697.489 |\n",
- "| OLS_sphere | 150 | 0.4621 | 0.6797 | 0.5175 | 0.5657 |\n",
- "| DeepKriging_wendland | -- | 0.7476 | 0.8646 | 0.6738 | 0.2974 |\n",
- "| DeepKriging_mrts | 10 | 0.4862 | 0.6973 | 0.5362 | 0.543 |\n",
- "| DeepKriging_sphere | 10 | 0.465 | 0.6819 | 0.536 | 0.5629 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4617 | 0.6795 | 0.5274 | 0.5661 |\n",
- "| UniversalKriging | 50 | 0.3977 | 0.6306 | 0.4851 | 0.6262 |\n",
- "Repeat 2/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 3/50 seed=52\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:05:47.114272: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774800347.123775 1044042 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774800347.126468 1044042 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774800347.133314 1044042 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774800347.133343 1044042 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774800347.133345 1044042 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774800347.133346 1044042 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] seed=52\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=52 ===\n",
- "z mean: 0.8577 (±0.0215), Var: 1.1563, Range: [-2.5164, 3.9403]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774800367.942728 1044042 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774800369.473494 1044402 service.cc:152] XLA service 0x5576a336eaf0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774800369.473518 1044402 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774800369.691692 1044402 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774800371.371086 1044402 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fccd41569e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fccc47dd2d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4600, sigma²=0.8892, nugget=0.2690\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4546, sigma²=0.8759, nugget=0.2694\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4549, sigma²=0.8747, nugget=0.2696\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4553, sigma²=0.8741, nugget=0.2697\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4556, sigma²=0.8739, nugget=0.2697\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4565, sigma²=0.8739, nugget=0.2697\n",
- "[repeat 2] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4600, sigma²=0.8892, nugget=0.2690\n",
- "[repeat 2] done → repeat_2_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.1528 | 1.0737 | 0.785 | -0.1251 |\n",
- "| OLS_sphere | 200 | 0.3761 | 0.6133 | 0.4865 | 0.6329 |\n",
- "| DeepKriging_wendland | -- | 0.66 | 0.8124 | 0.649 | 0.3558 |\n",
- "| DeepKriging_mrts | 50 | 0.3734 | 0.6111 | 0.4935 | 0.6355 |\n",
- "| DeepKriging_sphere | 50 | 0.3927 | 0.6267 | 0.5011 | 0.6167 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4054 | 0.6367 | 0.5109 | 0.6043 |\n",
- "| UniversalKriging | 10 | 0.331 | 0.5754 | 0.4604 | 0.6769 |\n",
- "Repeat 3/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 4/50 seed=53\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:13:05.439315: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774800785.449303 1371204 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774800785.452024 1371204 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774800785.459136 1371204 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774800785.459168 1371204 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774800785.459171 1371204 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774800785.459172 1371204 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] seed=53\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=53 ===\n",
- "z mean: 1.2807 (±0.0239), Var: 1.4340, Range: [-2.6009, 5.2742]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774800806.363497 1371204 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774800807.906421 1371571 service.cc:152] XLA service 0x55ed919039d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774800807.906444 1371571 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774800808.126166 1371571 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774800809.786139 1371571 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f0fd03897e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f0fc814d5a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4823, sigma²=0.8200, nugget=0.2604\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4788, sigma²=0.8123, nugget=0.2606\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4792, sigma²=0.8114, nugget=0.2607\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4794, sigma²=0.8108, nugget=0.2608\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4797, sigma²=0.8106, nugget=0.2609\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4807, sigma²=0.8104, nugget=0.2609\n",
- "[repeat 3] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4807, sigma²=0.8104, nugget=0.2609\n",
- "[repeat 3] done → repeat_3_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 7.6975 | 2.7744 | 1.0924 | -4.7538 |\n",
- "| OLS_sphere | 200 | 0.3844 | 0.62 | 0.5031 | 0.7127 |\n",
- "| DeepKriging_wendland | -- | 0.9421 | 0.9706 | 0.7634 | 0.2958 |\n",
- "| DeepKriging_mrts | 10 | 0.492 | 0.7014 | 0.5657 | 0.6322 |\n",
- "| DeepKriging_sphere | 150 | 0.5062 | 0.7115 | 0.5863 | 0.6216 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4444 | 0.6666 | 0.5338 | 0.6678 |\n",
- "| UniversalKriging | 1000 | 0.3772 | 0.6141 | 0.5009 | 0.7181 |\n",
- "Repeat 4/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 5/50 seed=54\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:20:37.055765: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774801237.065125 1697351 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774801237.067950 1697351 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774801237.075158 1697351 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774801237.075187 1697351 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774801237.075189 1697351 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774801237.075190 1697351 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] seed=54\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=54 ===\n",
- "z mean: 1.4638 (±0.0186), Var: 0.8689, Range: [-1.4549, 4.5483]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774801257.825501 1697351 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774801259.353116 1697711 service.cc:152] XLA service 0x7f167c00ae30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774801259.353141 1697711 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774801259.573303 1697711 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774801261.230754 1697711 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f18ac507c70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f18a4622d40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3015, sigma²=0.5818, nugget=0.2593\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2965, sigma²=0.5728, nugget=0.2592\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2964, sigma²=0.5716, nugget=0.2594\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2965, sigma²=0.5711, nugget=0.2595\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2966, sigma²=0.5710, nugget=0.2595\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2972, sigma²=0.5707, nugget=0.2595\n",
- "[repeat 4] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2965, sigma²=0.5728, nugget=0.2592\n",
- "[repeat 4] done → repeat_4_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.1039 | 1.0506 | 0.69 | -0.3852 |\n",
- "| OLS_sphere | 200 | 0.4006 | 0.6329 | 0.5039 | 0.4973 |\n",
- "| DeepKriging_wendland | -- | 0.6495 | 0.8059 | 0.6297 | 0.185 |\n",
- "| DeepKriging_mrts | 10 | 0.4271 | 0.6535 | 0.5188 | 0.464 |\n",
- "| DeepKriging_sphere | 10 | 0.4473 | 0.6688 | 0.5301 | 0.4387 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.434 | 0.6588 | 0.5235 | 0.4554 |\n",
- "| UniversalKriging | 50 | 0.3764 | 0.6136 | 0.4995 | 0.5276 |\n",
- "Repeat 5/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 6/50 seed=55\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:27:57.023727: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774801677.033671 2005334 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774801677.036330 2005334 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774801677.043343 2005334 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774801677.043370 2005334 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774801677.043372 2005334 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774801677.043373 2005334 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] seed=55\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=55 ===\n",
- "z mean: 0.2917 (±0.0244), Var: 1.4894, Range: [-3.3896, 4.3093]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774801697.764822 2005334 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774801699.294780 2005692 service.cc:152] XLA service 0x7f8cb80067e0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774801699.294802 2005692 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774801699.515003 2005692 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774801701.167204 2005692 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f8ee871ed40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f8ee06c1bd0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5763, sigma²=1.1597, nugget=0.2431\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5654, sigma²=1.1332, nugget=0.2435\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5658, sigma²=1.1320, nugget=0.2437\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5665, sigma²=1.1317, nugget=0.2438\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5670, sigma²=1.1316, nugget=0.2439\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5684, sigma²=1.1316, nugget=0.2439\n",
- "[repeat 5] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5665, sigma²=1.1317, nugget=0.2438\n",
- "[repeat 5] done → repeat_5_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.1813 | 1.0869 | 0.7861 | 0.2367 |\n",
- "| OLS_sphere | 150 | 0.4279 | 0.6541 | 0.5163 | 0.7235 |\n",
- "| DeepKriging_wendland | -- | 0.8045 | 0.8969 | 0.7069 | 0.4801 |\n",
- "| DeepKriging_mrts | 50 | 0.5016 | 0.7082 | 0.5573 | 0.6759 |\n",
- "| DeepKriging_sphere | 10 | 0.4356 | 0.66 | 0.5175 | 0.7185 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5516 | 0.7427 | 0.5923 | 0.6435 |\n",
- "| UniversalKriging | 150 | 0.4124 | 0.6422 | 0.5073 | 0.7335 |\n",
- "Repeat 6/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 7/50 seed=56\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:34:45.891836: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774802085.901396 2270043 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774802085.904127 2270043 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774802085.911869 2270043 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774802085.911907 2270043 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774802085.911909 2270043 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774802085.911910 2270043 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] seed=56\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=56 ===\n",
- "z mean: 1.2887 (±0.0213), Var: 1.1351, Range: [-2.1188, 5.6241]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774802106.596640 2270043 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774802108.124864 2270398 service.cc:152] XLA service 0x7f82e8005cc0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774802108.124889 2270398 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774802108.341421 2270398 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774802110.002930 2270398 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f85147d7eb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f85141f2c20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7242, sigma²=1.1645, nugget=0.2409\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7094, sigma²=1.1308, nugget=0.2417\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7003, sigma²=1.1237, nugget=0.2408\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6990, sigma²=1.1248, nugget=0.2404\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6887, sigma²=1.1224, nugget=0.2388\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6877, sigma²=1.1268, nugget=0.2378\n",
- "[repeat 6] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6990, sigma²=1.1248, nugget=0.2404\n",
- "[repeat 6] done → repeat_6_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.5664 | 1.2516 | 0.8241 | -0.4027 |\n",
- "| OLS_sphere | 200 | 0.3623 | 0.6019 | 0.4739 | 0.6755 |\n",
- "| DeepKriging_wendland | -- | 0.9032 | 0.9504 | 0.7359 | 0.1911 |\n",
- "| DeepKriging_mrts | 10 | 0.4279 | 0.6541 | 0.5116 | 0.6168 |\n",
- "| DeepKriging_sphere | 10 | 0.4326 | 0.6577 | 0.5208 | 0.6126 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4018 | 0.6339 | 0.5027 | 0.6402 |\n",
- "| UniversalKriging | 150 | 0.3754 | 0.6127 | 0.4869 | 0.6638 |\n",
- "Repeat 7/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 8/50 seed=57\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:42:20.067473: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774802540.076957 2611083 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774802540.079905 2611083 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774802540.086988 2611083 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774802540.087015 2611083 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774802540.087017 2611083 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774802540.087018 2611083 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] seed=57\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=57 ===\n",
- "z mean: 0.6536 (±0.0190), Var: 0.9002, Range: [-2.2198, 4.7460]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774802560.953043 2611083 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774802562.463588 2611447 service.cc:152] XLA service 0x5599fe1962f0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774802562.463623 2611447 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774802562.686397 2611447 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774802564.354185 2611447 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2dfc7adab0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2df457b5b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3951, sigma²=0.7638, nugget=0.2531\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3910, sigma²=0.7547, nugget=0.2532\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3910, sigma²=0.7531, nugget=0.2534\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3913, sigma²=0.7527, nugget=0.2535\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3915, sigma²=0.7526, nugget=0.2536\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3926, sigma²=0.7527, nugget=0.2536\n",
- "[repeat 7] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3951, sigma²=0.7638, nugget=0.2531\n",
- "[repeat 7] done → repeat_7_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|-----------|\n",
- "| OLS_wendland | -- | 114.697 | 10.7097 | 1.4094 | -110.112 |\n",
- "| OLS_sphere | 200 | 0.4429 | 0.6655 | 0.531 | 0.5709 |\n",
- "| DeepKriging_wendland | -- | 0.8147 | 0.9026 | 0.7107 | 0.2108 |\n",
- "| DeepKriging_mrts | 10 | 0.4497 | 0.6706 | 0.5367 | 0.5644 |\n",
- "| DeepKriging_sphere | 10 | 0.4392 | 0.6627 | 0.5264 | 0.5745 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.475 | 0.6892 | 0.5539 | 0.5399 |\n",
- "| UniversalKriging | 10 | 0.3979 | 0.6308 | 0.5073 | 0.6145 |\n",
- "Repeat 8/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 9/50 seed=58\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:50:09.971803: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774803009.981459 2975394 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774803009.984153 2975394 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774803009.992723 2975394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803009.992756 2975394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803009.992759 2975394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803009.992760 2975394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] seed=58\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=58 ===\n",
- "z mean: 0.6193 (±0.0203), Var: 1.0281, Range: [-2.3593, 3.8079]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803030.818507 2975394 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774803032.333386 2975753 service.cc:152] XLA service 0x7f37cc006af0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774803032.333412 2975753 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803032.547690 2975753 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803034.202198 2975753 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f39f865b400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f39f04171c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3963, sigma²=0.7305, nugget=0.2377\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3892, sigma²=0.7161, nugget=0.2379\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3894, sigma²=0.7149, nugget=0.2381\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3896, sigma²=0.7146, nugget=0.2382\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3898, sigma²=0.7144, nugget=0.2382\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3906, sigma²=0.7142, nugget=0.2382\n",
- "[repeat 8] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3898, sigma²=0.7144, nugget=0.2382\n",
- "[repeat 8] done → repeat_8_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.1832 | 1.0878 | 0.7562 | -0.2304 |\n",
- "| OLS_sphere | 200 | 0.4568 | 0.6758 | 0.5525 | 0.5251 |\n",
- "| DeepKriging_wendland | -- | 0.7136 | 0.8448 | 0.6864 | 0.2579 |\n",
- "| DeepKriging_mrts | 10 | 0.4776 | 0.6911 | 0.5595 | 0.5034 |\n",
- "| DeepKriging_sphere | 10 | 0.4941 | 0.7029 | 0.5556 | 0.4863 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4903 | 0.7002 | 0.5571 | 0.4901 |\n",
- "| UniversalKriging | 200 | 0.4267 | 0.6532 | 0.524 | 0.5563 |\n",
- "Repeat 9/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 10/50 seed=59\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 00:57:31.756369: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774803451.766229 3287309 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774803451.769136 3287309 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774803451.776091 3287309 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803451.776117 3287309 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803451.776119 3287309 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803451.776120 3287309 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] seed=59\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=59 ===\n",
- "z mean: 1.0325 (±0.0216), Var: 1.1688, Range: [-2.1677, 4.7430]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803472.523899 3287309 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774803474.036047 3287670 service.cc:152] XLA service 0x5639de6b2a10 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774803474.036071 3287670 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803474.259581 3287670 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803475.923448 3287670 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9250769a20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f92485e01f0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_mrts best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4384, sigma²=0.8854, nugget=0.2324\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4324, sigma²=0.8695, nugget=0.2329\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4325, sigma²=0.8679, nugget=0.2331\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4329, sigma²=0.8677, nugget=0.2332\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4332, sigma²=0.8674, nugget=0.2333\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4344, sigma²=0.8672, nugget=0.2333\n",
- "[repeat 9] UniversalKriging best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4325, sigma²=0.8679, nugget=0.2331\n",
- "[repeat 9] done → repeat_9_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|-----------|---------|--------|------------|\n",
- "| OLS_wendland | -- | 2346.24 | 48.438 | 3.9512 | -1970.74 |\n",
- "| OLS_sphere | 200 | 0.4985 | 0.7061 | 0.5629 | 0.581 |\n",
- "| DeepKriging_wendland | -- | 0.8208 | 0.906 | 0.7149 | 0.3102 |\n",
- "| DeepKriging_mrts | 100 | 0.4699 | 0.6855 | 0.53 | 0.6051 |\n",
- "| DeepKriging_sphere | 10 | 0.4604 | 0.6785 | 0.5262 | 0.6131 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4883 | 0.6988 | 0.5346 | 0.5896 |\n",
- "| UniversalKriging | 100 | 0.4243 | 0.6514 | 0.5039 | 0.6434 |\n",
- "Repeat 10/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 11/50 seed=60\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:05:34.663786: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774803934.673394 3682770 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774803934.676148 3682770 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774803934.684185 3682770 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803934.684219 3682770 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803934.684221 3682770 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774803934.684222 3682770 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] seed=60\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=60 ===\n",
- "z mean: 0.7764 (±0.0224), Var: 1.2583, Range: [-3.0963, 4.2656]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803955.569697 3682770 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774803957.122040 3683131 service.cc:152] XLA service 0x55c408913dc0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774803957.122068 3683131 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803957.344844 3683131 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774803959.006262 3683131 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efc74602710> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efc741f6c20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5898, sigma²=0.8670, nugget=0.2430\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5767, sigma²=0.8419, nugget=0.2435\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5773, sigma²=0.8407, nugget=0.2437\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5777, sigma²=0.8405, nugget=0.2438\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5781, sigma²=0.8405, nugget=0.2438\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5790, sigma²=0.8403, nugget=0.2437\n",
- "[repeat 10] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5781, sigma²=0.8405, nugget=0.2438\n",
- "[repeat 10] done → repeat_10_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.9762 | 0.9881 | 0.7843 | 0.1903 |\n",
- "| OLS_sphere | 200 | 0.4692 | 0.685 | 0.5389 | 0.6108 |\n",
- "| DeepKriging_wendland | -- | 0.8248 | 0.9082 | 0.7233 | 0.3159 |\n",
- "| DeepKriging_mrts | 10 | 0.4427 | 0.6653 | 0.5313 | 0.6328 |\n",
- "| DeepKriging_sphere | 10 | 0.4524 | 0.6726 | 0.5419 | 0.6248 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4655 | 0.6823 | 0.5423 | 0.6139 |\n",
- "| UniversalKriging | 200 | 0.4199 | 0.648 | 0.5154 | 0.6517 |\n",
- "Repeat 11/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 12/50 seed=61\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:12:57.782793: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774804377.792635 4004572 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774804377.795301 4004572 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774804377.802359 4004572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774804377.802385 4004572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774804377.802387 4004572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774804377.802388 4004572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] seed=61\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=61 ===\n",
- "z mean: 1.4283 (±0.0205), Var: 1.0464, Range: [-2.1578, 5.3840]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774804398.727809 4004572 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774804400.244807 4004934 service.cc:152] XLA service 0x7fd6a0006760 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774804400.244831 4004934 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774804400.464362 4004934 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774804402.117301 4004934 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd8cc1a3d90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd8c42bb9a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4187, sigma²=0.8133, nugget=0.2366\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4079, sigma²=0.7895, nugget=0.2370\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4080, sigma²=0.7885, nugget=0.2371\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4083, sigma²=0.7880, nugget=0.2373\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4086, sigma²=0.7878, nugget=0.2373\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4094, sigma²=0.7877, nugget=0.2373\n",
- "[repeat 11] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4094, sigma²=0.7877, nugget=0.2373\n",
- "[repeat 11] done → repeat_11_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.0582 | 1.0287 | 0.7812 | 0.0083 |\n",
- "| OLS_sphere | 200 | 0.3857 | 0.6211 | 0.5038 | 0.6385 |\n",
- "| DeepKriging_wendland | -- | 0.7343 | 0.8569 | 0.6851 | 0.3118 |\n",
- "| DeepKriging_mrts | 50 | 0.4478 | 0.6692 | 0.5524 | 0.5803 |\n",
- "| DeepKriging_sphere | 10 | 0.4241 | 0.6512 | 0.5342 | 0.6026 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4064 | 0.6375 | 0.5248 | 0.6192 |\n",
- "| UniversalKriging | 1000 | 0.3776 | 0.6145 | 0.4946 | 0.6461 |\n",
- "Repeat 12/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 13/50 seed=62\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:20:35.361360: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774804835.370619 156310 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774804835.373259 156310 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774804835.380943 156310 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774804835.380972 156310 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774804835.380974 156310 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774804835.380975 156310 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] seed=62\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=62 ===\n",
- "z mean: 0.5086 (±0.0182), Var: 0.8323, Range: [-2.2232, 3.6178]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774804856.173717 156310 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774804857.703897 156677 service.cc:152] XLA service 0x560854c1d030 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774804857.703923 156677 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774804857.914242 156677 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774804859.596225 156677 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1a8066b910> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1a784220e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4275, sigma²=0.6470, nugget=0.2416\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4245, sigma²=0.6404, nugget=0.2418\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4245, sigma²=0.6391, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4248, sigma²=0.6388, nugget=0.2421\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4249, sigma²=0.6387, nugget=0.2421\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4259, sigma²=0.6386, nugget=0.2421\n",
- "[repeat 12] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4275, sigma²=0.6470, nugget=0.2416\n",
- "[repeat 12] done → repeat_12_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 21.0605 | 4.5892 | 0.9754 | -25.4498 |\n",
- "| OLS_sphere | 200 | 0.4213 | 0.6491 | 0.5136 | 0.4709 |\n",
- "| DeepKriging_wendland | -- | 0.6213 | 0.7882 | 0.6203 | 0.2197 |\n",
- "| DeepKriging_mrts | 10 | 0.4249 | 0.6519 | 0.5221 | 0.4664 |\n",
- "| DeepKriging_sphere | 150 | 0.5238 | 0.7238 | 0.5709 | 0.3421 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.4877 | 0.6984 | 0.5546 | 0.3874 |\n",
- "| UniversalKriging | 10 | 0.3711 | 0.6091 | 0.4797 | 0.534 |\n",
- "Repeat 13/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 14/50 seed=63\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:27:38.424244: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774805258.434468 456357 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774805258.437469 456357 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774805258.444586 456357 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774805258.444616 456357 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774805258.444618 456357 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774805258.444619 456357 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] seed=63\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=63 ===\n",
- "z mean: 1.0100 (±0.0232), Var: 1.3428, Range: [-2.9298, 4.6204]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774805279.159143 456357 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774805280.719316 456723 service.cc:152] XLA service 0x55a5af9a7d00 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774805280.719340 456723 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774805280.933189 456723 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774805282.611780 456723 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9ac817feb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9ab8622ef0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6979, sigma²=1.4195, nugget=0.2410\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6845, sigma²=1.3830, nugget=0.2417\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6848, sigma²=1.3799, nugget=0.2419\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6851, sigma²=1.3796, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6859, sigma²=1.3800, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6878, sigma²=1.3810, nugget=0.2420\n",
- "[repeat 13] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6878, sigma²=1.3810, nugget=0.2420\n",
- "[repeat 13] done → repeat_13_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.1429 | 1.0691 | 0.8397 | 0.0745 |\n",
- "| OLS_sphere | 200 | 0.4143 | 0.6437 | 0.5153 | 0.6645 |\n",
- "| DeepKriging_wendland | -- | 0.9 | 0.9487 | 0.7443 | 0.2711 |\n",
- "| DeepKriging_mrts | 10 | 0.5206 | 0.7215 | 0.5759 | 0.5784 |\n",
- "| DeepKriging_sphere | 10 | 0.4092 | 0.6397 | 0.5306 | 0.6686 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.3932 | 0.627 | 0.5067 | 0.6816 |\n",
- "| UniversalKriging | 1000 | 0.3754 | 0.6127 | 0.4906 | 0.696 |\n",
- "Repeat 14/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 15/50 seed=64\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:35:07.657669: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774805707.667759 800856 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774805707.670488 800856 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774805707.677817 800856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774805707.677847 800856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774805707.677849 800856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774805707.677850 800856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] seed=64\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=64 ===\n",
- "z mean: 0.9968 (±0.0222), Var: 1.2294, Range: [-2.5702, 4.7999]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774805728.506858 800856 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774805730.021728 801221 service.cc:152] XLA service 0x556928134cf0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774805730.021750 801221 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774805730.248660 801221 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774805731.904296 801221 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f457851a9e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f4568612cb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4527, sigma²=0.8124, nugget=0.2660\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4488, sigma²=0.8033, nugget=0.2662\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4490, sigma²=0.8015, nugget=0.2664\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4492, sigma²=0.8012, nugget=0.2665\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4494, sigma²=0.8010, nugget=0.2665\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4501, sigma²=0.8008, nugget=0.2665\n",
- "[repeat 14] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4501, sigma²=0.8008, nugget=0.2665\n",
- "[repeat 14] done → repeat_14_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.9808 | 0.9904 | 0.7705 | 0.1402 |\n",
- "| OLS_sphere | 200 | 0.3939 | 0.6276 | 0.5024 | 0.6547 |\n",
- "| DeepKriging_wendland | -- | 0.788 | 0.8877 | 0.7175 | 0.3092 |\n",
- "| DeepKriging_mrts | 10 | 0.4111 | 0.6412 | 0.5206 | 0.6396 |\n",
- "| DeepKriging_sphere | 10 | 0.4308 | 0.6564 | 0.5291 | 0.6224 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4333 | 0.6582 | 0.5305 | 0.6202 |\n",
- "| UniversalKriging | 1000 | 0.3893 | 0.6239 | 0.5052 | 0.6588 |\n",
- "Repeat 15/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 16/50 seed=65\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:42:29.701500: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774806149.711199 1113050 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774806149.713914 1113050 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774806149.720972 1113050 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774806149.721002 1113050 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774806149.721004 1113050 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774806149.721005 1113050 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] seed=65\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=65 ===\n",
- "z mean: 0.7784 (±0.0237), Var: 1.4047, Range: [-3.3457, 5.1973]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] OLS_sphere best order: 100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774806170.538950 1113050 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774806172.033120 1113405 service.cc:152] XLA service 0x55e16d5d7410 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774806172.033146 1113405 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774806172.251589 1113405 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774806173.921033 1113405 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f373862bbe0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f372073a9e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4662, sigma²=0.8099, nugget=0.2375\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4631, sigma²=0.8018, nugget=0.2378\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4633, sigma²=0.8005, nugget=0.2380\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4635, sigma²=0.8000, nugget=0.2381\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4638, sigma²=0.7998, nugget=0.2381\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4648, sigma²=0.7994, nugget=0.2382\n",
- "[repeat 15] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4648, sigma²=0.7994, nugget=0.2382\n",
- "[repeat 15] done → repeat_15_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.1487 | 1.0718 | 0.8089 | 0.1244 |\n",
- "| OLS_sphere | 100 | 0.4353 | 0.6598 | 0.5334 | 0.6682 |\n",
- "| DeepKriging_wendland | -- | 0.7976 | 0.8931 | 0.7062 | 0.3921 |\n",
- "| DeepKriging_mrts | 10 | 0.4424 | 0.6651 | 0.5424 | 0.6628 |\n",
- "| DeepKriging_sphere | 10 | 0.4606 | 0.6787 | 0.5573 | 0.6489 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4655 | 0.6823 | 0.5587 | 0.6452 |\n",
- "| UniversalKriging | 1000 | 0.3827 | 0.6186 | 0.5069 | 0.7083 |\n",
- "Repeat 16/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 17/50 seed=66\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:49:58.391243: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774806598.400750 1440154 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774806598.403430 1440154 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774806598.410621 1440154 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774806598.410651 1440154 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774806598.410653 1440154 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774806598.410654 1440154 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] seed=66\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=66 ===\n",
- "z mean: 1.2377 (±0.0184), Var: 0.8456, Range: [-2.0570, 4.1835]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774806619.208363 1440154 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774806620.734953 1440521 service.cc:152] XLA service 0x7fd4640179f0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774806620.734981 1440521 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774806620.951201 1440521 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774806622.601883 1440521 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd68463acb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd67c450ee0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3352, sigma²=0.6196, nugget=0.2537\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3301, sigma²=0.6108, nugget=0.2537\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3299, sigma²=0.6093, nugget=0.2538\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3301, sigma²=0.6088, nugget=0.2539\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3303, sigma²=0.6086, nugget=0.2540\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3309, sigma²=0.6084, nugget=0.2540\n",
- "[repeat 16] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3303, sigma²=0.6086, nugget=0.2540\n",
- "[repeat 16] done → repeat_16_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.995 | 0.9975 | 0.7825 | 0.0461 |\n",
- "| OLS_sphere | 200 | 0.5666 | 0.7527 | 0.6036 | 0.4568 |\n",
- "| DeepKriging_wendland | -- | 0.8927 | 0.9448 | 0.7456 | 0.1442 |\n",
- "| DeepKriging_mrts | 10 | 0.6227 | 0.7891 | 0.6298 | 0.403 |\n",
- "| DeepKriging_sphere | 10 | 0.5655 | 0.752 | 0.595 | 0.4578 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5595 | 0.748 | 0.5963 | 0.4636 |\n",
- "| UniversalKriging | 200 | 0.5439 | 0.7375 | 0.5804 | 0.4785 |\n",
- "Repeat 17/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 18/50 seed=67\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 01:57:24.892696: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774807044.902765 1754451 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774807044.905404 1754451 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774807044.912463 1754451 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807044.912494 1754451 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807044.912495 1754451 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807044.912496 1754451 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] seed=67\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=67 ===\n",
- "z mean: 1.2655 (±0.0193), Var: 0.9301, Range: [-1.7824, 4.3876]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807065.707751 1754451 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774807067.226746 1754812 service.cc:152] XLA service 0x7f0bcc018150 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774807067.226776 1754812 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807067.446014 1754812 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807069.122953 1754812 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f0df06a2b00> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f0de8453f40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3806, sigma²=0.6446, nugget=0.2475\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3766, sigma²=0.6366, nugget=0.2477\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3768, sigma²=0.6359, nugget=0.2478\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3771, sigma²=0.6354, nugget=0.2480\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3773, sigma²=0.6352, nugget=0.2480\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3779, sigma²=0.6349, nugget=0.2480\n",
- "[repeat 17] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3806, sigma²=0.6446, nugget=0.2475\n",
- "[repeat 17] done → repeat_17_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.0362 | 1.0179 | 0.7801 | 0.0234 |\n",
- "| OLS_sphere | 200 | 0.4854 | 0.6967 | 0.5554 | 0.5425 |\n",
- "| DeepKriging_wendland | -- | 0.7775 | 0.8818 | 0.6991 | 0.2672 |\n",
- "| DeepKriging_mrts | 10 | 0.4601 | 0.6783 | 0.5533 | 0.5663 |\n",
- "| DeepKriging_sphere | 10 | 0.4772 | 0.6908 | 0.5536 | 0.5502 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4995 | 0.7067 | 0.5726 | 0.5292 |\n",
- "| UniversalKriging | 10 | 0.4371 | 0.6612 | 0.531 | 0.588 |\n",
- "Repeat 18/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 19/50 seed=68\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:04:37.315057: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774807477.324669 2056685 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774807477.327375 2056685 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774807477.334601 2056685 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807477.334664 2056685 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807477.334666 2056685 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807477.334667 2056685 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] seed=68\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=68 ===\n",
- "z mean: 1.5737 (±0.0259), Var: 1.6793, Range: [-2.4963, 5.2063]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807498.159310 2056685 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774807499.704292 2057046 service.cc:152] XLA service 0x561f8f4fa5e0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774807499.704314 2057046 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807499.926906 2057046 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807501.590972 2057046 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2a4876e320> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2a405a00d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5634, sigma²=1.0993, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5467, sigma²=1.0647, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5475, sigma²=1.0631, nugget=0.2423\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5512, sigma²=1.0650, nugget=0.2429\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5467, sigma²=1.0613, nugget=0.2422\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5428, sigma²=1.0584, nugget=0.2413\n",
- "[repeat 18] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5467, sigma²=1.0613, nugget=0.2422\n",
- "[repeat 18] done → repeat_18_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.5717 | 1.2537 | 0.9648 | 0.1138 |\n",
- "| OLS_sphere | 200 | 0.4313 | 0.6567 | 0.5258 | 0.7568 |\n",
- "| DeepKriging_wendland | -- | 0.9722 | 0.986 | 0.7781 | 0.4519 |\n",
- "| DeepKriging_mrts | 10 | 0.43 | 0.6558 | 0.5226 | 0.7575 |\n",
- "| DeepKriging_sphere | 10 | 0.4066 | 0.6376 | 0.5124 | 0.7708 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4445 | 0.6667 | 0.5438 | 0.7494 |\n",
- "| UniversalKriging | 200 | 0.3571 | 0.5975 | 0.4689 | 0.7987 |\n",
- "Repeat 19/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 20/50 seed=69\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:12:11.694268: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774807931.704307 2389138 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774807931.707159 2389138 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774807931.714898 2389138 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807931.714934 2389138 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807931.714936 2389138 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774807931.714937 2389138 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] seed=69\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=69 ===\n",
- "z mean: 0.9741 (±0.0222), Var: 1.2341, Range: [-2.6064, 4.8486]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807952.493539 2389138 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774807954.042698 2389499 service.cc:152] XLA service 0x7f953801b400 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774807954.042725 2389499 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807954.262313 2389499 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774807955.948924 2389499 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9760751750> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9758527e20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4707, sigma²=0.8091, nugget=0.2835\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4620, sigma²=0.7896, nugget=0.2841\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4623, sigma²=0.7886, nugget=0.2842\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4627, sigma²=0.7885, nugget=0.2843\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4628, sigma²=0.7883, nugget=0.2843\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4636, sigma²=0.7881, nugget=0.2843\n",
- "[repeat 19] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4620, sigma²=0.7896, nugget=0.2841\n",
- "[repeat 19] done → repeat_19_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.9611 | 0.9803 | 0.7849 | 0.1165 |\n",
- "| OLS_sphere | 200 | 0.4766 | 0.6904 | 0.5481 | 0.5618 |\n",
- "| DeepKriging_wendland | -- | 0.7747 | 0.8802 | 0.7079 | 0.2878 |\n",
- "| DeepKriging_mrts | 10 | 0.4557 | 0.6751 | 0.5469 | 0.581 |\n",
- "| DeepKriging_sphere | 10 | 0.4887 | 0.6991 | 0.5621 | 0.5507 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.5054 | 0.7109 | 0.5661 | 0.5354 |\n",
- "| UniversalKriging | 50 | 0.417 | 0.6458 | 0.516 | 0.6166 |\n",
- "Repeat 20/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 21/50 seed=70\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:19:31.036548: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774808371.046134 2713954 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774808371.048812 2713954 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774808371.056274 2713954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774808371.056306 2713954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774808371.056308 2713954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774808371.056309 2713954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] seed=70\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=70 ===\n",
- "z mean: 1.2127 (±0.0212), Var: 1.1287, Range: [-1.9270, 4.7133]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774808391.910042 2713954 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774808393.412828 2714313 service.cc:152] XLA service 0x7f11a4006780 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774808393.412862 2714313 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774808393.630306 2714313 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774808395.294918 2714313 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f13e078e0e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f13d0565990> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4484, sigma²=0.7830, nugget=0.2585\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4442, sigma²=0.7741, nugget=0.2587\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4444, sigma²=0.7725, nugget=0.2589\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4447, sigma²=0.7721, nugget=0.2590\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4450, sigma²=0.7720, nugget=0.2591\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4459, sigma²=0.7718, nugget=0.2591\n",
- "[repeat 20] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4484, sigma²=0.7830, nugget=0.2585\n",
- "[repeat 20] done → repeat_20_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.3806 | 1.175 | 0.8235 | -0.1872 |\n",
- "| OLS_sphere | 200 | 0.5458 | 0.7388 | 0.5898 | 0.5307 |\n",
- "| DeepKriging_wendland | -- | 0.9234 | 0.9609 | 0.7339 | 0.2059 |\n",
- "| DeepKriging_mrts | 10 | 0.6025 | 0.7762 | 0.6254 | 0.4819 |\n",
- "| DeepKriging_sphere | 10 | 0.5245 | 0.7242 | 0.5746 | 0.549 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5369 | 0.7327 | 0.5834 | 0.5383 |\n",
- "| UniversalKriging | 10 | 0.4836 | 0.6954 | 0.5562 | 0.5841 |\n",
- "Repeat 21/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 22/50 seed=71\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:27:01.984516: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774808821.994158 3051170 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774808821.996816 3051170 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774808822.003891 3051170 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774808822.003924 3051170 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774808822.003926 3051170 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774808822.003927 3051170 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] seed=71\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=71 ===\n",
- "z mean: 1.1754 (±0.0197), Var: 0.9713, Range: [-1.9970, 4.5180]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774808842.776106 3051170 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774808844.299634 3051537 service.cc:152] XLA service 0x7f0f18006d90 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774808844.299671 3051537 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774808844.512679 3051537 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774808846.192106 3051537 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f114c76b640> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1144589870> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3292, sigma²=0.6736, nugget=0.2334\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3246, sigma²=0.6644, nugget=0.2334\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3247, sigma²=0.6629, nugget=0.2336\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3249, sigma²=0.6623, nugget=0.2337\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3250, sigma²=0.6622, nugget=0.2338\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3258, sigma²=0.6618, nugget=0.2338\n",
- "[repeat 21] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3258, sigma²=0.6618, nugget=0.2338\n",
- "[repeat 21] done → repeat_21_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 0.9738 | 0.9868 | 0.7538 | -0.0006 |\n",
- "| OLS_sphere | 150 | 0.4703 | 0.6858 | 0.5565 | 0.5167 |\n",
- "| DeepKriging_wendland | -- | 0.7467 | 0.8641 | 0.6834 | 0.2328 |\n",
- "| DeepKriging_mrts | 50 | 0.5265 | 0.7256 | 0.5862 | 0.459 |\n",
- "| DeepKriging_sphere | 10 | 0.5021 | 0.7086 | 0.579 | 0.4841 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5048 | 0.7105 | 0.5713 | 0.4813 |\n",
- "| UniversalKriging | 1000 | 0.4478 | 0.6692 | 0.5465 | 0.5399 |\n",
- "Repeat 22/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 23/50 seed=72\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:34:11.172521: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774809251.182951 3336206 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774809251.185674 3336206 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774809251.192830 3336206 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774809251.192860 3336206 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774809251.192862 3336206 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774809251.192863 3336206 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] seed=72\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=72 ===\n",
- "z mean: 0.9583 (±0.0209), Var: 1.0964, Range: [-2.6146, 4.1242]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774809271.850011 3336206 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774809273.391900 3336572 service.cc:152] XLA service 0x5599be41af30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774809273.391934 3336572 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774809273.610237 3336572 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774809275.270548 3336572 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6eb079d360> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6ea85463b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4057, sigma²=0.9043, nugget=0.2257\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4001, sigma²=0.8907, nugget=0.2258\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4002, sigma²=0.8891, nugget=0.2260\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4007, sigma²=0.8886, nugget=0.2262\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4009, sigma²=0.8884, nugget=0.2263\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4019, sigma²=0.8881, nugget=0.2263\n",
- "[repeat 22] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4009, sigma²=0.8884, nugget=0.2263\n",
- "[repeat 22] done → repeat_22_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|-----------|\n",
- "| OLS_wendland | -- | 197.478 | 14.0527 | 1.9328 | -206.698 |\n",
- "| OLS_sphere | 200 | 0.3962 | 0.6294 | 0.5057 | 0.5833 |\n",
- "| DeepKriging_wendland | -- | 0.6887 | 0.8299 | 0.6591 | 0.2757 |\n",
- "| DeepKriging_mrts | 10 | 0.3966 | 0.6297 | 0.4881 | 0.5829 |\n",
- "| DeepKriging_sphere | 50 | 0.4136 | 0.6431 | 0.5076 | 0.565 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.3719 | 0.6098 | 0.4773 | 0.6089 |\n",
- "| UniversalKriging | 200 | 0.3427 | 0.5854 | 0.461 | 0.6395 |\n",
- "Repeat 23/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 24/50 seed=73\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:41:55.924885: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774809715.942360 3692501 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774809715.945315 3692501 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774809715.952814 3692501 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774809715.952864 3692501 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774809715.952866 3692501 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774809715.952867 3692501 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] seed=73\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=73 ===\n",
- "z mean: 1.2927 (±0.0227), Var: 1.2853, Range: [-2.2168, 5.9669]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774809736.853001 3692501 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774809738.401267 3692860 service.cc:152] XLA service 0x5632f4371c70 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774809738.401298 3692860 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774809738.620326 3692860 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774809740.287485 3692860 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2ea07432e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2e984ff880> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5793, sigma²=1.1073, nugget=0.2331\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5696, sigma²=1.0831, nugget=0.2336\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5700, sigma²=1.0814, nugget=0.2338\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5701, sigma²=1.0801, nugget=0.2339\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5704, sigma²=1.0798, nugget=0.2339\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5716, sigma²=1.0793, nugget=0.2340\n",
- "[repeat 23] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5716, sigma²=1.0793, nugget=0.2340\n",
- "[repeat 23] done → repeat_23_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.3794 | 1.1745 | 0.8708 | -0.0231 |\n",
- "| OLS_sphere | 200 | 0.475 | 0.6892 | 0.5684 | 0.6477 |\n",
- "| DeepKriging_wendland | -- | 1.0793 | 1.0389 | 0.7838 | 0.1995 |\n",
- "| DeepKriging_mrts | 10 | 0.498 | 0.7057 | 0.5703 | 0.6306 |\n",
- "| DeepKriging_sphere | 10 | 0.4995 | 0.7067 | 0.5728 | 0.6295 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.5157 | 0.7181 | 0.5661 | 0.6175 |\n",
- "| UniversalKriging | 1000 | 0.4386 | 0.6622 | 0.5337 | 0.6747 |\n",
- "Repeat 24/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 25/50 seed=74\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:49:28.405057: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774810168.414425 4007322 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774810168.417158 4007322 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774810168.424349 4007322 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774810168.424379 4007322 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774810168.424381 4007322 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774810168.424382 4007322 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] seed=74\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=74 ===\n",
- "z mean: 1.1071 (±0.0254), Var: 1.6192, Range: [-3.7020, 5.6165]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774810189.127094 4007322 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774810190.657917 4007681 service.cc:152] XLA service 0x7f5d0401ae30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774810190.657945 4007681 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774810190.880773 4007681 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774810192.548544 4007681 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f5f3c722b90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f5f3c123f40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6178, sigma²=0.9744, nugget=0.2685\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6152, sigma²=0.9649, nugget=0.2690\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6159, sigma²=0.9639, nugget=0.2692\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6165, sigma²=0.9635, nugget=0.2693\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6168, sigma²=0.9633, nugget=0.2694\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6179, sigma²=0.9632, nugget=0.2693\n",
- "[repeat 24] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6152, sigma²=0.9649, nugget=0.2690\n",
- "[repeat 24] done → repeat_24_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 4.0479 | 2.0119 | 0.9733 | -1.6275 |\n",
- "| OLS_sphere | 200 | 0.4086 | 0.6392 | 0.5097 | 0.7348 |\n",
- "| DeepKriging_wendland | -- | 0.9909 | 0.9954 | 0.7639 | 0.3568 |\n",
- "| DeepKriging_mrts | 10 | 0.4007 | 0.633 | 0.5143 | 0.7399 |\n",
- "| DeepKriging_sphere | 10 | 0.4221 | 0.6497 | 0.5298 | 0.726 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4545 | 0.6741 | 0.5389 | 0.705 |\n",
- "| UniversalKriging | 50 | 0.3559 | 0.5966 | 0.4792 | 0.769 |\n",
- "Repeat 25/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 26/50 seed=75\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 02:56:44.765654: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774810604.775396 135416 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774810604.778156 135416 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774810604.785229 135416 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774810604.785268 135416 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774810604.785271 135416 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774810604.785272 135416 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] seed=75\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=75 ===\n",
- "z mean: 1.1770 (±0.0215), Var: 1.1512, Range: [-2.1764, 4.7081]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774810625.650762 135416 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774810627.158854 135775 service.cc:152] XLA service 0x55ac03a8b900 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774810627.158879 135775 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774810627.373446 135775 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774810629.058109 135775 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f011c20fbe0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f010c746710> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_mrts best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4496, sigma²=0.9360, nugget=0.2652\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4448, sigma²=0.9229, nugget=0.2656\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4447, sigma²=0.9204, nugget=0.2658\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4451, sigma²=0.9197, nugget=0.2660\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4453, sigma²=0.9194, nugget=0.2660\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4460, sigma²=0.9192, nugget=0.2660\n",
- "[repeat 25] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4496, sigma²=0.9360, nugget=0.2652\n",
- "[repeat 25] done → repeat_25_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.823 | 0.9072 | 0.7216 | 0.2207 |\n",
- "| OLS_sphere | 200 | 0.4236 | 0.6508 | 0.5241 | 0.5989 |\n",
- "| DeepKriging_wendland | -- | 0.695 | 0.8337 | 0.6559 | 0.3419 |\n",
- "| DeepKriging_mrts | 150 | 0.4315 | 0.6569 | 0.5281 | 0.5915 |\n",
- "| DeepKriging_sphere | 10 | 0.4511 | 0.6716 | 0.538 | 0.5729 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4462 | 0.668 | 0.5299 | 0.5775 |\n",
- "| UniversalKriging | 10 | 0.3835 | 0.6193 | 0.4967 | 0.6369 |\n",
- "Repeat 26/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 27/50 seed=76\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:04:19.473752: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774811059.484217 485599 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774811059.486996 485599 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774811059.498132 485599 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811059.498174 485599 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811059.498176 485599 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811059.498177 485599 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] seed=76\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=76 ===\n",
- "z mean: 0.9450 (±0.0213), Var: 1.1356, Range: [-2.3063, 4.5449]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811080.329391 485599 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774811081.843396 485964 service.cc:152] XLA service 0x559e639b9070 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774811081.843419 485964 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811082.058540 485964 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811083.729502 485964 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f27b03116c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f27a8407640> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4568, sigma²=0.7312, nugget=0.2742\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4508, sigma²=0.7185, nugget=0.2746\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4510, sigma²=0.7173, nugget=0.2747\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4512, sigma²=0.7170, nugget=0.2748\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4514, sigma²=0.7168, nugget=0.2748\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4520, sigma²=0.7167, nugget=0.2748\n",
- "[repeat 26] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4568, sigma²=0.7312, nugget=0.2742\n",
- "[repeat 26] done → repeat_26_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.8528 | 0.9235 | 0.7195 | 0.0982 |\n",
- "| OLS_sphere | 200 | 0.3772 | 0.6142 | 0.485 | 0.6011 |\n",
- "| DeepKriging_wendland | -- | 0.679 | 0.824 | 0.6589 | 0.2819 |\n",
- "| DeepKriging_mrts | 50 | 0.4381 | 0.6619 | 0.5353 | 0.5367 |\n",
- "| DeepKriging_sphere | 10 | 0.4028 | 0.6346 | 0.5013 | 0.5741 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4155 | 0.6446 | 0.5046 | 0.5606 |\n",
- "| UniversalKriging | 10 | 0.3546 | 0.5955 | 0.4766 | 0.6251 |\n",
- "Repeat 27/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 28/50 seed=77\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:11:08.060440: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774811468.070067 748329 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774811468.072742 748329 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774811468.079710 748329 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811468.079738 748329 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811468.079740 748329 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811468.079742 748329 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] seed=77\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=77 ===\n",
- "z mean: 0.8147 (±0.0241), Var: 1.4567, Range: [-2.6027, 4.6758]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811488.871873 748329 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774811490.409946 748695 service.cc:152] XLA service 0x7faa90018150 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774811490.409968 748695 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811490.631545 748695 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811492.292278 748695 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7facc839fe20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7facc01aa950> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5077, sigma²=1.0192, nugget=0.2183\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5019, sigma²=1.0034, nugget=0.2187\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5027, sigma²=1.0014, nugget=0.2191\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5032, sigma²=1.0008, nugget=0.2192\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5036, sigma²=1.0007, nugget=0.2193\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5046, sigma²=1.0005, nugget=0.2193\n",
- "[repeat 27] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5077, sigma²=1.0192, nugget=0.2183\n",
- "[repeat 27] done → repeat_27_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.9812 | 1.4076 | 0.9048 | -0.4992 |\n",
- "| OLS_sphere | 150 | 0.4439 | 0.6662 | 0.5309 | 0.6641 |\n",
- "| DeepKriging_wendland | -- | 0.7475 | 0.8646 | 0.6792 | 0.4344 |\n",
- "| DeepKriging_mrts | 50 | 0.4745 | 0.6889 | 0.5499 | 0.6409 |\n",
- "| DeepKriging_sphere | 10 | 0.4701 | 0.6856 | 0.5489 | 0.6443 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5266 | 0.7257 | 0.5887 | 0.6015 |\n",
- "| UniversalKriging | 10 | 0.4024 | 0.6344 | 0.5016 | 0.6955 |\n",
- "Repeat 28/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 29/50 seed=78\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:18:44.325358: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774811924.336524 1091954 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774811924.339651 1091954 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774811924.347033 1091954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811924.347072 1091954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811924.347074 1091954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774811924.347075 1091954 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] seed=78\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=78 ===\n",
- "z mean: 1.3149 (±0.0214), Var: 1.1429, Range: [-1.9459, 4.9160]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811945.155901 1091954 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774811946.671175 1092312 service.cc:152] XLA service 0x55df907d6ae0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774811946.671201 1092312 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811946.889811 1092312 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774811948.548154 1092312 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f99f41f7490> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f99e42ef520> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8281, sigma²=1.2378, nugget=0.2428\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8191, sigma²=1.2149, nugget=0.2434\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8203, sigma²=1.2138, nugget=0.2436\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8213, sigma²=1.2140, nugget=0.2437\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8220, sigma²=1.2142, nugget=0.2437\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8244, sigma²=1.2153, nugget=0.2436\n",
- "[repeat 28] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8244, sigma²=1.2153, nugget=0.2436\n",
- "[repeat 28] done → repeat_28_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.7642 | 1.3282 | 0.9264 | -0.497 |\n",
- "| OLS_sphere | 200 | 0.4086 | 0.6392 | 0.505 | 0.6533 |\n",
- "| DeepKriging_wendland | -- | 0.9388 | 0.9689 | 0.7688 | 0.2033 |\n",
- "| DeepKriging_mrts | 10 | 0.4472 | 0.6687 | 0.5259 | 0.6206 |\n",
- "| DeepKriging_sphere | 10 | 0.4497 | 0.6706 | 0.5338 | 0.6184 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4358 | 0.6602 | 0.5253 | 0.6302 |\n",
- "| UniversalKriging | 1000 | 0.394 | 0.6277 | 0.5059 | 0.6657 |\n",
- "Repeat 29/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 30/50 seed=79\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:26:16.356542: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774812376.367446 1427914 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774812376.370443 1427914 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774812376.377463 1427914 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774812376.377497 1427914 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774812376.377499 1427914 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774812376.377500 1427914 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] seed=79\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=79 ===\n",
- "z mean: 1.0367 (±0.0202), Var: 1.0167, Range: [-3.0471, 4.2758]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774812397.173064 1427914 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774812398.695581 1428273 service.cc:152] XLA service 0x7fe154006dc0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774812398.695614 1428273 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774812398.924119 1428273 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774812400.580614 1428273 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe39423d480> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe384707010> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4829, sigma²=0.8955, nugget=0.2414\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4735, sigma²=0.8744, nugget=0.2418\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4731, sigma²=0.8721, nugget=0.2419\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4734, sigma²=0.8716, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4737, sigma²=0.8714, nugget=0.2421\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4748, sigma²=0.8715, nugget=0.2421\n",
- "[repeat 29] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4829, sigma²=0.8955, nugget=0.2414\n",
- "[repeat 29] done → repeat_29_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|-----------|\n",
- "| OLS_wendland | -- | 111.853 | 10.5761 | 2.011 | -102.749 |\n",
- "| OLS_sphere | 200 | 0.4201 | 0.6482 | 0.5343 | 0.6103 |\n",
- "| DeepKriging_wendland | -- | 0.8379 | 0.9154 | 0.7253 | 0.2228 |\n",
- "| DeepKriging_mrts | 50 | 0.4789 | 0.692 | 0.5639 | 0.5558 |\n",
- "| DeepKriging_sphere | 10 | 0.4399 | 0.6633 | 0.5292 | 0.5919 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4105 | 0.6407 | 0.5204 | 0.6193 |\n",
- "| UniversalKriging | 10 | 0.3719 | 0.6099 | 0.4984 | 0.655 |\n",
- "Repeat 30/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 31/50 seed=80\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:33:42.547298: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774812822.558184 1755326 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774812822.561265 1755326 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774812822.568549 1755326 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774812822.568575 1755326 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774812822.568577 1755326 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774812822.568578 1755326 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] seed=80\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=80 ===\n",
- "z mean: 0.6482 (±0.0206), Var: 1.0586, Range: [-2.7609, 3.7839]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774812843.429913 1755326 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774812844.955571 1755687 service.cc:152] XLA service 0x7fe020009880 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774812844.955624 1755687 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774812845.173692 1755687 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774812846.872013 1755687 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe25870a950> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe2582f79a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4428, sigma²=0.8081, nugget=0.2411\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4362, sigma²=0.7941, nugget=0.2413\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4364, sigma²=0.7927, nugget=0.2415\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4368, sigma²=0.7922, nugget=0.2416\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4370, sigma²=0.7920, nugget=0.2416\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4379, sigma²=0.7919, nugget=0.2416\n",
- "[repeat 30] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4379, sigma²=0.7919, nugget=0.2416\n",
- "[repeat 30] done → repeat_30_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 10.4248 | 3.2287 | 0.9649 | -9.9774 |\n",
- "| OLS_sphere | 150 | 0.4245 | 0.6515 | 0.5261 | 0.553 |\n",
- "| DeepKriging_wendland | -- | 0.6952 | 0.8338 | 0.6707 | 0.2679 |\n",
- "| DeepKriging_mrts | 10 | 0.4456 | 0.6675 | 0.5201 | 0.5308 |\n",
- "| DeepKriging_sphere | 10 | 0.4294 | 0.6553 | 0.5247 | 0.5479 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4454 | 0.6673 | 0.5207 | 0.531 |\n",
- "| UniversalKriging | 1000 | 0.3525 | 0.5937 | 0.4735 | 0.6288 |\n",
- "Repeat 31/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 32/50 seed=81\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:40:58.929068: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774813258.939684 2075901 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774813258.942441 2075901 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774813258.949489 2075901 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774813258.949518 2075901 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774813258.949521 2075901 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774813258.949521 2075901 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] seed=81\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=81 ===\n",
- "z mean: 0.8650 (±0.0222), Var: 1.2326, Range: [-2.7528, 4.6805]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774813279.851593 2075901 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774813281.400912 2076259 service.cc:152] XLA service 0x7f99e40099a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774813281.400936 2076259 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774813281.621996 2076259 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774813283.309999 2076259 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9c1816aef0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9c1027ef80> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_mrts best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4705, sigma²=0.7903, nugget=0.2753\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4680, sigma²=0.7830, nugget=0.2757\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4684, sigma²=0.7818, nugget=0.2759\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4687, sigma²=0.7815, nugget=0.2759\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4688, sigma²=0.7814, nugget=0.2759\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4696, sigma²=0.7812, nugget=0.2759\n",
- "[repeat 31] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4696, sigma²=0.7812, nugget=0.2759\n",
- "[repeat 31] done → repeat_31_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 7.4331 | 2.7264 | 0.9342 | -5.8004 |\n",
- "| OLS_sphere | 200 | 0.4086 | 0.6392 | 0.5197 | 0.6262 |\n",
- "| DeepKriging_wendland | -- | 0.6868 | 0.8287 | 0.6753 | 0.3716 |\n",
- "| DeepKriging_mrts | 150 | 0.4074 | 0.6383 | 0.5065 | 0.6273 |\n",
- "| DeepKriging_sphere | 10 | 0.3931 | 0.6269 | 0.4923 | 0.6404 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4042 | 0.6358 | 0.5126 | 0.6302 |\n",
- "| UniversalKriging | 1000 | 0.3419 | 0.5847 | 0.4666 | 0.6872 |\n",
- "Repeat 32/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 33/50 seed=82\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:48:28.256584: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774813708.267133 2408228 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774813708.270213 2408228 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774813708.278441 2408228 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774813708.278472 2408228 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774813708.278475 2408228 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774813708.278476 2408228 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] seed=82\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=82 ===\n",
- "z mean: 1.6575 (±0.0227), Var: 1.2923, Range: [-2.5118, 5.5249]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774813729.164590 2408228 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774813730.688633 2408586 service.cc:152] XLA service 0x55a53e2f4a70 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774813730.688656 2408586 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774813730.909680 2408586 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774813732.582619 2408586 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7f8422f0a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7f7c32bc70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4466, sigma²=0.8974, nugget=0.2570\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4421, sigma²=0.8853, nugget=0.2573\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4424, sigma²=0.8831, nugget=0.2576\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4426, sigma²=0.8827, nugget=0.2577\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4428, sigma²=0.8825, nugget=0.2577\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4437, sigma²=0.8823, nugget=0.2577\n",
- "[repeat 32] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4437, sigma²=0.8823, nugget=0.2577\n",
- "[repeat 32] done → repeat_32_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 12.2039 | 3.4934 | 1.0732 | -9.7465 |\n",
- "| OLS_sphere | 200 | 0.4287 | 0.6547 | 0.5208 | 0.6225 |\n",
- "| DeepKriging_wendland | -- | 0.8471 | 0.9204 | 0.7297 | 0.254 |\n",
- "| DeepKriging_mrts | 10 | 0.433 | 0.658 | 0.5348 | 0.6187 |\n",
- "| DeepKriging_sphere | 10 | 0.4086 | 0.6392 | 0.5175 | 0.6402 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4536 | 0.6735 | 0.5467 | 0.6006 |\n",
- "| UniversalKriging | 1000 | 0.3889 | 0.6236 | 0.501 | 0.6575 |\n",
- "Repeat 33/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 34/50 seed=83\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 03:55:28.503079: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774814128.513018 2694960 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774814128.515723 2694960 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774814128.523649 2694960 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774814128.523687 2694960 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774814128.523689 2694960 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774814128.523690 2694960 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] seed=83\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=83 ===\n",
- "z mean: 1.3733 (±0.0248), Var: 1.5316, Range: [-4.0675, 5.7772]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774814149.296635 2694960 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774814150.816207 2695329 service.cc:152] XLA service 0x7fd2c00072d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774814150.816230 2695329 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774814151.041574 2695329 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774814152.712322 2695329 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd4fc63b520> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd4f472f490> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5472, sigma²=1.0150, nugget=0.2439\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5345, sigma²=0.9861, nugget=0.2444\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5352, sigma²=0.9852, nugget=0.2446\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5356, sigma²=0.9848, nugget=0.2447\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5359, sigma²=0.9848, nugget=0.2447\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5370, sigma²=0.9846, nugget=0.2447\n",
- "[repeat 33] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5370, sigma²=0.9846, nugget=0.2447\n",
- "[repeat 33] done → repeat_33_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.7693 | 1.3302 | 0.8364 | -0.1073 |\n",
- "| OLS_sphere | 200 | 0.4372 | 0.6612 | 0.536 | 0.7264 |\n",
- "| DeepKriging_wendland | -- | 0.8026 | 0.8959 | 0.7132 | 0.4977 |\n",
- "| DeepKriging_mrts | 10 | 0.4781 | 0.6914 | 0.5646 | 0.7008 |\n",
- "| DeepKriging_sphere | 10 | 0.4418 | 0.6647 | 0.5445 | 0.7235 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5097 | 0.7139 | 0.5806 | 0.681 |\n",
- "| UniversalKriging | 1000 | 0.4034 | 0.6352 | 0.513 | 0.7475 |\n",
- "Repeat 34/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 35/50 seed=84\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:02:49.833022: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774814569.842897 3016666 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774814569.845711 3016666 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774814569.853149 3016666 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774814569.853176 3016666 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774814569.853178 3016666 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774814569.853179 3016666 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] seed=84\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=84 ===\n",
- "z mean: 1.5714 (±0.0193), Var: 0.9295, Range: [-1.6099, 4.8844]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774814590.631885 3016666 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774814592.178999 3017031 service.cc:152] XLA service 0x7f80b80082a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774814592.179021 3017031 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774814592.394286 3017031 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774814594.046712 3017031 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f82e440b130> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f82dc6f6830> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3899, sigma²=0.6959, nugget=0.2630\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3860, sigma²=0.6875, nugget=0.2632\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3861, sigma²=0.6861, nugget=0.2634\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3863, sigma²=0.6855, nugget=0.2635\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3865, sigma²=0.6853, nugget=0.2636\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3873, sigma²=0.6852, nugget=0.2635\n",
- "[repeat 34] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3899, sigma²=0.6959, nugget=0.2630\n",
- "[repeat 34] done → repeat_34_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.3217 | 1.1496 | 0.7133 | -0.5326 |\n",
- "| OLS_sphere | 200 | 0.4506 | 0.6712 | 0.5331 | 0.4775 |\n",
- "| DeepKriging_wendland | -- | 0.549 | 0.7409 | 0.5785 | 0.3634 |\n",
- "| DeepKriging_mrts | 10 | 0.4583 | 0.677 | 0.5308 | 0.4686 |\n",
- "| DeepKriging_sphere | 10 | 0.4167 | 0.6455 | 0.5004 | 0.5168 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4241 | 0.6513 | 0.5109 | 0.5082 |\n",
- "| UniversalKriging | 10 | 0.3834 | 0.6192 | 0.4778 | 0.5554 |\n",
- "Repeat 35/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 36/50 seed=85\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:10:44.925858: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774815044.936005 3390764 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774815044.939104 3390764 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774815044.946681 3390764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815044.946709 3390764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815044.946711 3390764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815044.946712 3390764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] seed=85\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=85 ===\n",
- "z mean: 1.2417 (±0.0193), Var: 0.9301, Range: [-1.7051, 4.5036]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815065.769707 3390764 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774815067.283696 3391118 service.cc:152] XLA service 0x7fad8c006710 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774815067.283720 3391118 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815067.498840 3391118 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815069.169114 3391118 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fafb4722f80> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fafac500ca0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4623, sigma²=0.7674, nugget=0.2605\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4573, sigma²=0.7573, nugget=0.2607\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4579, sigma²=0.7564, nugget=0.2609\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4581, sigma²=0.7562, nugget=0.2610\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4585, sigma²=0.7560, nugget=0.2610\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4596, sigma²=0.7560, nugget=0.2611\n",
- "[repeat 35] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4596, sigma²=0.7560, nugget=0.2611\n",
- "[repeat 35] done → repeat_35_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 0.8802 | 0.9382 | 0.7116 | -0.1724 |\n",
- "| OLS_sphere | 200 | 0.3582 | 0.5985 | 0.4757 | 0.5229 |\n",
- "| DeepKriging_wendland | -- | 0.663 | 0.8142 | 0.6465 | 0.1169 |\n",
- "| DeepKriging_mrts | 10 | 0.3517 | 0.5931 | 0.4701 | 0.5315 |\n",
- "| DeepKriging_sphere | 10 | 0.3819 | 0.618 | 0.5066 | 0.4913 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.39 | 0.6245 | 0.504 | 0.4805 |\n",
- "| UniversalKriging | 1000 | 0.3395 | 0.5827 | 0.4704 | 0.5478 |\n",
- "Repeat 36/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 37/50 seed=86\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:18:17.371725: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774815497.383387 3728036 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774815497.386184 3728036 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774815497.393753 3728036 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815497.393810 3728036 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815497.393812 3728036 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815497.393813 3728036 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] seed=86\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=86 ===\n",
- "z mean: 1.1092 (±0.0267), Var: 1.7868, Range: [-4.5170, 4.9042]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815518.343381 3728036 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774815519.886649 3728403 service.cc:152] XLA service 0x7f68b8017c70 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774815519.886681 3728403 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815520.105409 3728403 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815521.760838 3728403 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6ae40feb90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6adc3f2dd0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8374, sigma²=1.2765, nugget=0.2762\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8278, sigma²=1.2534, nugget=0.2767\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8288, sigma²=1.2516, nugget=0.2769\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8298, sigma²=1.2517, nugget=0.2770\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8301, sigma²=1.2517, nugget=0.2770\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8314, sigma²=1.2519, nugget=0.2769\n",
- "[repeat 36] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8314, sigma²=1.2519, nugget=0.2769\n",
- "[repeat 36] done → repeat_36_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.3778 | 1.1738 | 0.9109 | 0.1486 |\n",
- "| OLS_sphere | 200 | 0.3577 | 0.5981 | 0.4733 | 0.779 |\n",
- "| DeepKriging_wendland | -- | 1.1291 | 1.0626 | 0.8345 | 0.3023 |\n",
- "| DeepKriging_mrts | 10 | 0.395 | 0.6285 | 0.5049 | 0.7559 |\n",
- "| DeepKriging_sphere | 10 | 0.3981 | 0.6309 | 0.5004 | 0.754 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4113 | 0.6414 | 0.5183 | 0.7458 |\n",
- "| UniversalKriging | 1000 | 0.3333 | 0.5773 | 0.4516 | 0.7941 |\n",
- "Repeat 37/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 38/50 seed=87\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:25:38.566942: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774815938.577800 4049240 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774815938.580619 4049240 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774815938.587971 4049240 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815938.588005 4049240 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815938.588007 4049240 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774815938.588008 4049240 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] seed=87\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=87 ===\n",
- "z mean: 0.8641 (±0.0244), Var: 1.4889, Range: [-3.1944, 4.6565]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815959.414127 4049240 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774815960.950338 4049606 service.cc:152] XLA service 0x7f88cc0198e0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774815960.950365 4049606 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815961.173880 4049606 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774815962.835768 4049606 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f8b0064aa70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f8af877a9e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5246, sigma²=0.9615, nugget=0.2436\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5189, sigma²=0.9467, nugget=0.2440\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5194, sigma²=0.9449, nugget=0.2442\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5198, sigma²=0.9447, nugget=0.2443\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5201, sigma²=0.9445, nugget=0.2444\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5211, sigma²=0.9444, nugget=0.2443\n",
- "[repeat 37] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5211, sigma²=0.9444, nugget=0.2443\n",
- "[repeat 37] done → repeat_37_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 89.3898 | 9.4546 | 1.8179 | -56.553 |\n",
- "| OLS_sphere | 150 | 0.4912 | 0.7009 | 0.5691 | 0.6837 |\n",
- "| DeepKriging_wendland | -- | 1.2588 | 1.122 | 0.8798 | 0.1895 |\n",
- "| DeepKriging_mrts | 10 | 0.4135 | 0.643 | 0.519 | 0.7338 |\n",
- "| DeepKriging_sphere | 10 | 0.4983 | 0.7059 | 0.5642 | 0.6792 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4578 | 0.6766 | 0.5404 | 0.7053 |\n",
- "| UniversalKriging | 1000 | 0.4073 | 0.6382 | 0.5149 | 0.7378 |\n",
- "Repeat 38/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 39/50 seed=88\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:33:34.702661: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774816414.712715 242119 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774816414.716218 242119 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774816414.724183 242119 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774816414.724217 242119 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774816414.724219 242119 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774816414.724220 242119 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] seed=88\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=88 ===\n",
- "z mean: 0.6690 (±0.0208), Var: 1.0799, Range: [-2.6868, 4.3748]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774816435.528710 242119 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774816437.039857 242484 service.cc:152] XLA service 0x7fa80401ba00 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774816437.039884 242484 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774816437.257720 242484 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774816438.934319 242484 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7faa246a56c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7faa1c43ab90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4402, sigma²=0.8663, nugget=0.2440\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4333, sigma²=0.8500, nugget=0.2443\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4335, sigma²=0.8485, nugget=0.2445\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4338, sigma²=0.8482, nugget=0.2446\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4341, sigma²=0.8480, nugget=0.2447\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4350, sigma²=0.8478, nugget=0.2447\n",
- "[repeat 38] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4338, sigma²=0.8482, nugget=0.2446\n",
- "[repeat 38] done → repeat_38_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.4654 | 1.2105 | 0.8297 | -0.2382 |\n",
- "| OLS_sphere | 200 | 0.3779 | 0.6147 | 0.4988 | 0.6807 |\n",
- "| DeepKriging_wendland | -- | 0.7227 | 0.8501 | 0.6725 | 0.3894 |\n",
- "| DeepKriging_mrts | 10 | 0.3847 | 0.6202 | 0.5097 | 0.675 |\n",
- "| DeepKriging_sphere | 10 | 0.4227 | 0.6501 | 0.5116 | 0.6429 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4059 | 0.6371 | 0.5177 | 0.657 |\n",
- "| UniversalKriging | 150 | 0.3375 | 0.5809 | 0.4672 | 0.7148 |\n",
- "Repeat 39/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 40/50 seed=89\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:40:43.887098: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774816843.898236 558029 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774816843.901584 558029 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774816843.909921 558029 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774816843.909958 558029 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774816843.909961 558029 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774816843.909962 558029 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] seed=89\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=89 ===\n",
- "z mean: 1.3288 (±0.0209), Var: 1.0891, Range: [-1.9980, 4.9758]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774816864.659350 558029 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774816866.169300 558393 service.cc:152] XLA service 0x7f60f0005e30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774816866.169325 558393 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774816866.388612 558393 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774816868.046198 558393 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6328409480> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f632053bd90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4202, sigma²=0.7913, nugget=0.2629\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4155, sigma²=0.7797, nugget=0.2633\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4157, sigma²=0.7788, nugget=0.2634\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4160, sigma²=0.7784, nugget=0.2635\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4163, sigma²=0.7781, nugget=0.2636\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4171, sigma²=0.7779, nugget=0.2636\n",
- "[repeat 39] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4171, sigma²=0.7779, nugget=0.2636\n",
- "[repeat 39] done → repeat_39_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.1302 | 1.0631 | 0.7743 | -0.128 |\n",
- "| OLS_sphere | 150 | 0.4427 | 0.6654 | 0.5227 | 0.5582 |\n",
- "| DeepKriging_wendland | -- | 0.6767 | 0.8226 | 0.6526 | 0.3246 |\n",
- "| DeepKriging_mrts | 50 | 0.4164 | 0.6453 | 0.5015 | 0.5844 |\n",
- "| DeepKriging_sphere | 10 | 0.4546 | 0.6742 | 0.5238 | 0.5463 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4431 | 0.6656 | 0.5172 | 0.5578 |\n",
- "| UniversalKriging | 1000 | 0.3831 | 0.6189 | 0.4809 | 0.6176 |\n",
- "Repeat 40/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 41/50 seed=90\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:48:27.364592: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774817307.374914 917634 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774817307.377685 917634 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774817307.385302 917634 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774817307.385330 917634 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774817307.385332 917634 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774817307.385333 917634 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] seed=90\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=90 ===\n",
- "z mean: 0.3695 (±0.0212), Var: 1.1235, Range: [-3.1169, 3.7441]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774817328.354659 917634 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774817329.869385 917995 service.cc:152] XLA service 0x555cf10078c0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774817329.869407 917995 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774817330.087127 917995 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774817331.736812 917995 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f39447832e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f394415ad40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4224, sigma²=0.8435, nugget=0.2448\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4130, sigma²=0.8220, nugget=0.2452\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4131, sigma²=0.8209, nugget=0.2453\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4134, sigma²=0.8204, nugget=0.2455\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4137, sigma²=0.8202, nugget=0.2455\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4145, sigma²=0.8199, nugget=0.2455\n",
- "[repeat 40] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4224, sigma²=0.8435, nugget=0.2448\n",
- "[repeat 40] done → repeat_40_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.0614 | 1.0303 | 0.8091 | 0.1135 |\n",
- "| OLS_sphere | 200 | 0.4885 | 0.6989 | 0.5502 | 0.592 |\n",
- "| DeepKriging_wendland | -- | 0.8381 | 0.9155 | 0.7342 | 0.3 |\n",
- "| DeepKriging_mrts | 10 | 0.5213 | 0.722 | 0.5715 | 0.5646 |\n",
- "| DeepKriging_sphere | 10 | 0.5338 | 0.7306 | 0.5731 | 0.5542 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5266 | 0.7257 | 0.5816 | 0.5602 |\n",
- "| UniversalKriging | 10 | 0.4457 | 0.6676 | 0.5277 | 0.6277 |\n",
- "Repeat 41/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 42/50 seed=91\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 04:55:33.740057: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774817733.750489 1221244 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774817733.753517 1221244 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774817733.761002 1221244 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774817733.761030 1221244 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774817733.761031 1221244 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774817733.761032 1221244 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] seed=91\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=91 ===\n",
- "z mean: 1.1361 (±0.0209), Var: 1.0912, Range: [-3.0089, 4.4920]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] OLS_sphere best order: 100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774817754.579894 1221244 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774817756.099764 1221603 service.cc:152] XLA service 0x55b6fe8d40d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774817756.099787 1221603 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774817756.321536 1221603 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774817757.985849 1221603 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7faf084372e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7faf00573d00> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4067, sigma²=0.7760, nugget=0.2502\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4017, sigma²=0.7642, nugget=0.2506\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4018, sigma²=0.7627, nugget=0.2508\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4022, sigma²=0.7622, nugget=0.2509\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4024, sigma²=0.7620, nugget=0.2509\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4032, sigma²=0.7617, nugget=0.2509\n",
- "[repeat 41] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4032, sigma²=0.7617, nugget=0.2509\n",
- "[repeat 41] done → repeat_41_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 15.1314 | 3.8899 | 1.0705 | -12.1085 |\n",
- "| OLS_sphere | 100 | 0.4877 | 0.6984 | 0.5515 | 0.5775 |\n",
- "| DeepKriging_wendland | -- | 0.7705 | 0.8778 | 0.7036 | 0.3325 |\n",
- "| DeepKriging_mrts | 50 | 0.4584 | 0.6771 | 0.5394 | 0.6029 |\n",
- "| DeepKriging_sphere | 10 | 0.4988 | 0.7063 | 0.5421 | 0.5679 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5204 | 0.7214 | 0.5635 | 0.5492 |\n",
- "| UniversalKriging | 1000 | 0.4157 | 0.6447 | 0.5037 | 0.6399 |\n",
- "Repeat 42/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 43/50 seed=92\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:02:57.080754: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774818177.090316 1541236 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774818177.093012 1541236 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774818177.100114 1541236 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774818177.100141 1541236 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774818177.100143 1541236 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774818177.100144 1541236 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] seed=92\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=92 ===\n",
- "z mean: 0.2250 (±0.0201), Var: 1.0133, Range: [-3.2990, 4.0592]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774818198.031256 1541236 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774818199.556538 1541590 service.cc:152] XLA service 0x55b378050ee0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774818199.556569 1541590 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774818199.765801 1541590 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774818201.425080 1541590 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff340603be0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff3401ef5b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3317, sigma²=0.7256, nugget=0.2372\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3243, sigma²=0.7100, nugget=0.2372\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3242, sigma²=0.7085, nugget=0.2373\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3244, sigma²=0.7079, nugget=0.2375\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3246, sigma²=0.7078, nugget=0.2375\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3253, sigma²=0.7074, nugget=0.2376\n",
- "[repeat 42] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3253, sigma²=0.7074, nugget=0.2376\n",
- "[repeat 42] done → repeat_42_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 19.4082 | 4.4055 | 0.9158 | -21.0987 |\n",
- "| OLS_sphere | 200 | 0.4322 | 0.6574 | 0.5191 | 0.5079 |\n",
- "| DeepKriging_wendland | -- | 0.5637 | 0.7508 | 0.5967 | 0.3582 |\n",
- "| DeepKriging_mrts | 10 | 0.4675 | 0.6837 | 0.5484 | 0.4677 |\n",
- "| DeepKriging_sphere | 10 | 0.4418 | 0.6646 | 0.5322 | 0.497 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4499 | 0.6707 | 0.533 | 0.4878 |\n",
- "| UniversalKriging | 1000 | 0.4067 | 0.6378 | 0.5165 | 0.5369 |\n",
- "Repeat 43/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 44/50 seed=93\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:10:06.073357: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774818606.084046 1851979 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774818606.086902 1851979 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774818606.094219 1851979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774818606.094254 1851979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774818606.094256 1851979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774818606.094257 1851979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] seed=93\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=93 ===\n",
- "z mean: 0.6042 (±0.0214), Var: 1.1411, Range: [-2.8933, 4.2087]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774818627.030365 1851979 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774818628.563163 1852332 service.cc:152] XLA service 0x7f78480072e0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774818628.563187 1852332 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774818628.783463 1852332 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774818630.445028 1852332 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7a6465b910> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7a5c74ab00> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3983, sigma²=0.8794, nugget=0.2544\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3898, sigma²=0.8579, nugget=0.2548\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3902, sigma²=0.8564, nugget=0.2551\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3904, sigma²=0.8560, nugget=0.2552\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3906, sigma²=0.8558, nugget=0.2553\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3915, sigma²=0.8555, nugget=0.2553\n",
- "[repeat 43] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3904, sigma²=0.8560, nugget=0.2552\n",
- "[repeat 43] done → repeat_43_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.8405 | 0.9168 | 0.7251 | 0.245 |\n",
- "| OLS_sphere | 150 | 0.4306 | 0.6562 | 0.5251 | 0.6132 |\n",
- "| DeepKriging_wendland | -- | 0.7368 | 0.8584 | 0.6689 | 0.3381 |\n",
- "| DeepKriging_mrts | 200 | 0.4497 | 0.6706 | 0.5428 | 0.5961 |\n",
- "| DeepKriging_sphere | 10 | 0.4671 | 0.6834 | 0.5597 | 0.5804 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.444 | 0.6664 | 0.5294 | 0.6011 |\n",
- "| UniversalKriging | 150 | 0.3785 | 0.6152 | 0.491 | 0.66 |\n",
- "Repeat 44/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 45/50 seed=94\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:17:22.395901: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774819042.405360 2161860 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774819042.408218 2161860 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774819042.415463 2161860 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819042.415492 2161860 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819042.415494 2161860 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819042.415495 2161860 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 44] seed=94\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=94 ===\n",
- "z mean: 0.4940 (±0.0246), Var: 1.5159, Range: [-3.2991, 4.0559]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 44] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819063.179768 2161860 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774819064.702706 2162224 service.cc:152] XLA service 0x55a1c5ad9b10 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774819064.702727 2162224 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819064.920954 2162224 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819066.598609 2162224 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f11301f37f0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f11206c75b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 44] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 44] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 44] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4989, sigma²=0.9694, nugget=0.2372\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4941, sigma²=0.9565, nugget=0.2375\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4948, sigma²=0.9552, nugget=0.2378\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4951, sigma²=0.9547, nugget=0.2379\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4953, sigma²=0.9545, nugget=0.2380\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4964, sigma²=0.9541, nugget=0.2380\n",
- "[repeat 44] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4964, sigma²=0.9541, nugget=0.2380\n",
- "[repeat 44] done → repeat_44_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.7866 | 1.3366 | 0.9922 | -0.1883 |\n",
- "| OLS_sphere | 150 | 0.4599 | 0.6781 | 0.5398 | 0.6941 |\n",
- "| DeepKriging_wendland | -- | 1.1609 | 1.0775 | 0.8079 | 0.2278 |\n",
- "| DeepKriging_mrts | 10 | 0.4814 | 0.6938 | 0.5612 | 0.6798 |\n",
- "| DeepKriging_sphere | 10 | 0.4389 | 0.6625 | 0.5312 | 0.708 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4275 | 0.6538 | 0.5174 | 0.7157 |\n",
- "| UniversalKriging | 1000 | 0.4119 | 0.6418 | 0.5093 | 0.726 |\n",
- "Repeat 45/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 46/50 seed=95\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:23:23.621623: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774819403.631600 2469111 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774819403.634486 2469111 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774819403.641869 2469111 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819403.641909 2469111 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819403.641911 2469111 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819403.641912 2469111 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 45] seed=95\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=95 ===\n",
- "z mean: 0.9887 (±0.0209), Var: 1.0963, Range: [-2.5972, 4.4324]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 45] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819424.601406 2469111 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774819426.156014 2469472 service.cc:152] XLA service 0x55d238fa26c0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774819426.156040 2469472 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819426.376375 2469472 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819428.052467 2469472 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa9d8501900> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa9d04bc3a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 45] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 45] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 45] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4591, sigma²=0.7991, nugget=0.2458\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4531, sigma²=0.7869, nugget=0.2461\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4533, sigma²=0.7855, nugget=0.2462\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4536, sigma²=0.7850, nugget=0.2463\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4539, sigma²=0.7848, nugget=0.2464\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4547, sigma²=0.7846, nugget=0.2463\n",
- "[repeat 45] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4531, sigma²=0.7869, nugget=0.2461\n",
- "[repeat 45] done → repeat_45_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.8518 | 0.9229 | 0.7232 | 0.2543 |\n",
- "| OLS_sphere | 200 | 0.4148 | 0.644 | 0.5039 | 0.6369 |\n",
- "| DeepKriging_wendland | -- | 0.766 | 0.8752 | 0.6902 | 0.3294 |\n",
- "| DeepKriging_mrts | 10 | 0.5296 | 0.7278 | 0.5727 | 0.5363 |\n",
- "| DeepKriging_sphere | 10 | 0.4433 | 0.6658 | 0.5153 | 0.6119 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4447 | 0.6669 | 0.5151 | 0.6107 |\n",
- "| UniversalKriging | 50 | 0.3858 | 0.6211 | 0.481 | 0.6622 |\n",
- "Repeat 46/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 47/50 seed=96\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:29:28.073510: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774819768.084071 2801764 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774819768.086811 2801764 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774819768.094141 2801764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819768.094166 2801764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819768.094168 2801764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774819768.094169 2801764 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 46] seed=96\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=96 ===\n",
- "z mean: 1.2558 (±0.0211), Var: 1.1170, Range: [-1.9130, 4.5834]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 46] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819789.005734 2801764 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774819790.553353 2802131 service.cc:152] XLA service 0x561fa1a1e3c0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774819790.553371 2802131 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819790.772402 2802131 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774819792.468078 2802131 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fabd0767760> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fabd0173e20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 46] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 46] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 46] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5045, sigma²=0.8836, nugget=0.2570\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5009, sigma²=0.8732, nugget=0.2574\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5012, sigma²=0.8721, nugget=0.2575\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5017, sigma²=0.8719, nugget=0.2577\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5022, sigma²=0.8719, nugget=0.2577\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5033, sigma²=0.8718, nugget=0.2577\n",
- "[repeat 46] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5045, sigma²=0.8836, nugget=0.2570\n",
- "[repeat 46] done → repeat_46_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.9832 | 0.9915 | 0.771 | 0.1392 |\n",
- "| OLS_sphere | 200 | 0.4639 | 0.6811 | 0.5477 | 0.5938 |\n",
- "| DeepKriging_wendland | -- | 0.8143 | 0.9024 | 0.7185 | 0.2871 |\n",
- "| DeepKriging_mrts | 10 | 0.4807 | 0.6934 | 0.5506 | 0.5791 |\n",
- "| DeepKriging_sphere | 150 | 0.6128 | 0.7828 | 0.6246 | 0.4634 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5352 | 0.7316 | 0.5799 | 0.5314 |\n",
- "| UniversalKriging | 10 | 0.4464 | 0.6681 | 0.5334 | 0.6092 |\n",
- "Repeat 47/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 48/50 seed=97\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:35:34.796768: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774820134.807123 3135784 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774820134.810112 3135784 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774820134.818145 3135784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820134.818176 3135784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820134.818178 3135784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820134.818179 3135784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 47] seed=97\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=97 ===\n",
- "z mean: 1.1233 (±0.0203), Var: 1.0323, Range: [-2.7769, 4.7923]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 47] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774820155.741186 3135784 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774820157.272330 3136149 service.cc:152] XLA service 0x7f188400a2e0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774820157.272353 3136149 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774820157.490392 3136149 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774820159.177459 3136149 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1aa06776d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1a9876f400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 47] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 47] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 47] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3615, sigma²=0.7099, nugget=0.2417\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3568, sigma²=0.7000, nugget=0.2418\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3568, sigma²=0.6987, nugget=0.2420\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3571, sigma²=0.6982, nugget=0.2421\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3573, sigma²=0.6979, nugget=0.2421\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3579, sigma²=0.6976, nugget=0.2421\n",
- "[repeat 47] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3579, sigma²=0.6976, nugget=0.2421\n",
- "[repeat 47] done → repeat_47_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|-----------|---------|--------|------------|\n",
- "| OLS_wendland | -- | 2125.79 | 46.1063 | 3.6956 | -1798.28 |\n",
- "| OLS_sphere | 200 | 0.4658 | 0.6825 | 0.5421 | 0.6058 |\n",
- "| DeepKriging_wendland | -- | 0.7805 | 0.8835 | 0.6979 | 0.3393 |\n",
- "| DeepKriging_mrts | 10 | 0.4598 | 0.6781 | 0.5382 | 0.6108 |\n",
- "| DeepKriging_sphere | 10 | 0.4716 | 0.6867 | 0.5451 | 0.6008 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4874 | 0.6982 | 0.5553 | 0.5874 |\n",
- "| UniversalKriging | 1000 | 0.4123 | 0.6421 | 0.5211 | 0.651 |\n",
- "Repeat 48/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 49/50 seed=98\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:42:52.964908: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774820572.975262 3481563 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774820572.978246 3481563 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774820572.985554 3481563 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820572.985583 3481563 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820572.985585 3481563 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820572.985586 3481563 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 48] seed=98\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=98 ===\n",
- "z mean: 1.5033 (±0.0201), Var: 1.0066, Range: [-1.7739, 5.2368]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 48] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774820594.361367 3481563 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774820595.896145 3481933 service.cc:152] XLA service 0x7f51c4006330 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774820595.896189 3481933 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774820596.121920 3481933 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774820597.846590 3481933 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f540031b400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f53f8403400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 48] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 48] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 48] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3847, sigma²=0.6962, nugget=0.2327\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3766, sigma²=0.6809, nugget=0.2329\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3767, sigma²=0.6794, nugget=0.2331\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3770, sigma²=0.6791, nugget=0.2331\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3772, sigma²=0.6789, nugget=0.2332\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3779, sigma²=0.6787, nugget=0.2332\n",
- "[repeat 48] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3779, sigma²=0.6787, nugget=0.2332\n",
- "[repeat 48] done → repeat_48_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 2.2938 | 1.5145 | 0.763 | -1.7781 |\n",
- "| OLS_sphere | 200 | 0.3506 | 0.5921 | 0.458 | 0.5753 |\n",
- "| DeepKriging_wendland | -- | 0.6009 | 0.7752 | 0.6081 | 0.2722 |\n",
- "| DeepKriging_mrts | 10 | 0.413 | 0.6427 | 0.5102 | 0.4997 |\n",
- "| DeepKriging_sphere | 50 | 0.3653 | 0.6044 | 0.4759 | 0.5576 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.3832 | 0.619 | 0.49 | 0.5359 |\n",
- "| UniversalKriging | 1000 | 0.3111 | 0.5578 | 0.441 | 0.6232 |\n",
- "Repeat 49/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 50/50 seed=99\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:49:52.062725: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774820992.077003 3764210 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774820992.080396 3764210 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774820992.088194 3764210 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820992.088235 3764210 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820992.088237 3764210 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774820992.088238 3764210 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 49] seed=99\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + N(0, 0.5^2) noise | seed=99 ===\n",
- "z mean: 0.8954 (±0.0200), Var: 0.9957, Range: [-2.2742, 4.2258]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 49] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821013.367756 3764210 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774821014.912992 3764577 service.cc:152] XLA service 0x7f1c70007d60 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774821014.913025 3764577 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821015.130527 3764577 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821016.834645 3764577 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1eac13ff40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1ea4237490> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 49] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 49] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 49] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5106, sigma²=0.7452, nugget=0.2594\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5070, sigma²=0.7372, nugget=0.2597\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5074, sigma²=0.7360, nugget=0.2599\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5078, sigma²=0.7358, nugget=0.2600\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5080, sigma²=0.7357, nugget=0.2600\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5090, sigma²=0.7357, nugget=0.2599\n",
- "[repeat 49] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5078, sigma²=0.7358, nugget=0.2600\n",
- "[repeat 49] done → repeat_49_GP_noise_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 13.5674 | 3.6834 | 1.0751 | -12.5876 |\n",
- "| OLS_sphere | 150 | 0.4475 | 0.6689 | 0.5475 | 0.5519 |\n",
- "| DeepKriging_wendland | -- | 0.7084 | 0.8417 | 0.6798 | 0.2905 |\n",
- "| DeepKriging_mrts | 50 | 0.4411 | 0.6642 | 0.537 | 0.5582 |\n",
- "| DeepKriging_sphere | 10 | 0.4371 | 0.6611 | 0.5337 | 0.5623 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4402 | 0.6635 | 0.5408 | 0.5591 |\n",
- "| UniversalKriging | 150 | 0.3883 | 0.6231 | 0.5036 | 0.6112 |\n",
- "Repeat 50/50 done — checkpoint saved.\n",
- "\n",
- "All done: 50/50 repeats completed.\n"
- ]
- }
- ],
- "source": [
- "import json, subprocess, sys\n",
- "\n",
- "CHECKPOINT_PATH = \"checkpoint_GP_noise.json\"\n",
- "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_GP_noise.py\")\n",
- "PYTHON_EXE = sys.executable\n",
- "\n",
- "if os.path.exists(CHECKPOINT_PATH):\n",
- " with open(CHECKPOINT_PATH) as f:\n",
- " ckpt = json.load(f)\n",
- " experiment_results = ckpt[\"experiment_results\"]\n",
- " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
- " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
- "else:\n",
- " experiment_results = {\n",
- " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
- " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
- " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
- " }\n",
- " completed_repeats = set()\n",
- " print(\"Starting fresh.\")\n",
- "\n",
- "for repeat in range(repeat_experiment):\n",
- "\n",
- " if repeat in completed_repeats:\n",
- " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
- " continue\n",
- "\n",
- " print(f\"\\n\" + \"=\"*70)\n",
- " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
- " print(\"=\"*70)\n",
- "\n",
- " out_json = f\"repeat_{repeat}_GP_noise_results.json\"\n",
- "\n",
- " try:\n",
- " result = subprocess.run(\n",
- " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
- " capture_output=False,\n",
- " check=True,\n",
- " timeout=7200,\n",
- " )\n",
- " except subprocess.CalledProcessError as e:\n",
- " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
- " continue\n",
- " except subprocess.TimeoutExpired:\n",
- " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
- " continue\n",
- " except Exception as e:\n",
- " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
- " continue\n",
- "\n",
- " if not os.path.exists(out_json):\n",
- " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
- " continue\n",
- "\n",
- " with open(out_json) as f:\n",
- " res = json.load(f)\n",
- " os.remove(out_json)\n",
- "\n",
- " best_orders = res[\"best_orders\"]\n",
- " metrics_map = res[\"metrics\"]\n",
- "\n",
- " table_rows = []\n",
- " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
- " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
- " met = metrics_map[m]\n",
- " table_rows.append({\n",
- " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
- " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
- " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
- " })\n",
- " import pandas as _pd\n",
- " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
- "\n",
- " for m in experiment_results:\n",
- " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
- " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
- " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
- " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
- "\n",
- " completed_repeats.add(repeat)\n",
- " with open(CHECKPOINT_PATH, \"w\") as f:\n",
- " json.dump({\"experiment_results\": experiment_results,\n",
- " \"completed_repeats\": list(completed_repeats)}, f)\n",
- "\n",
- " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
- "\n",
- "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "id": "summary_GP_noise",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:06.000295Z",
- "iopub.status.busy": "2026-03-29T21:57:05.999896Z",
- "iopub.status.idle": "2026-03-29T21:57:06.007417Z",
- "shell.execute_reply": "2026-03-29T21:57:06.006672Z"
- },
- "papermill": {
- "duration": 0.032606,
- "end_time": "2026-03-29T21:57:06.008295",
- "exception": false,
- "start_time": "2026-03-29T21:57:05.975689",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "================================================================================\n",
- "Summary — 50 Repeats\n",
- " Scenario: GP + N(0, 0.5^2) Gaussian Noise\n",
- "================================================================================\n",
- "\n",
- "| Model | N | MSPE (mean±std) | RMSE (mean±std) | MAE (mean±std) | R2 (mean±std) |\n",
- "|--------------------------|-----|-------------------|-------------------|-------------------|-------------------|\n",
- "| OLS_wendland | 50 | 118.27±446.14 | 4.79±9.76 | 1.08±0.67 | -101.575±378.402 |\n",
- "| OLS_sphere | 50 | 0.43±0.05 | 0.66±0.03 | 0.53±0.03 | 0.610±0.075 |\n",
- "| DeepKriging_wendland | 50 | 0.80±0.15 | 0.89±0.08 | 0.70±0.06 | 0.295±0.080 |\n",
- "| DeepKriging_mrts | 50 | 0.46±0.05 | 0.67±0.04 | 0.54±0.03 | 0.590±0.080 |\n",
- "| DeepKriging_sphere | 50 | 0.45±0.05 | 0.67±0.03 | 0.54±0.03 | 0.591±0.083 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.46±0.05 | 0.68±0.03 | 0.54±0.03 | 0.588±0.076 |\n",
- "| UniversalKriging | 50 | 0.39±0.04 | 0.63±0.03 | 0.50±0.03 | 0.646±0.069 |\n",
- "\n",
- "Best Model: UniversalKriging RMSE=0.63±0.03\n",
- "\n",
- "── Ranking by mean RMSE ──\n",
- " 1. UniversalKriging RMSE=0.63±0.03\n",
- " 2. OLS_sphere RMSE=0.66±0.03\n",
- " 3. DeepKriging_mrts RMSE=0.67±0.04\n",
- " 4. DeepKriging_sphere RMSE=0.67±0.03\n",
- " 5. DeepKriging_sphere_Huber RMSE=0.68±0.03\n",
- " 6. DeepKriging_wendland RMSE=0.89±0.08\n",
- " 7. OLS_wendland RMSE=4.79±9.76\n"
- ]
- }
- ],
- "source": [
- "import json, numpy as np, pandas as pd\n",
- "\n",
- "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
- " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
- "\n",
- "with open(\"checkpoint_GP_noise.json\") as f:\n",
- " ckpt = json.load(f)\n",
- "results = ckpt[\"experiment_results\"]\n",
- "n = len(next(iter(results.values()))[\"MSPE\"])\n",
- "\n",
- "print(\"\\n\" + \"=\"*80)\n",
- "print(f\"Summary — {n} Repeats\")\n",
- "print(\" Scenario: GP + N(0, 0.5^2) Gaussian Noise\")\n",
- "print(\"=\"*80)\n",
- "\n",
- "rows = []\n",
- "for m in MODELS:\n",
- " vals = results[m]\n",
- " rows.append({\n",
- " \"Model\": m,\n",
- " \"N\": len(vals[\"MSPE\"]),\n",
- " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
- " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
- " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
- " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
- " })\n",
- "\n",
- "df = pd.DataFrame(rows)\n",
- "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
- "\n",
- "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
- "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
- "\n",
- "print(\"\\n── Ranking by mean RMSE ──\")\n",
- "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
- " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "air-pollution",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.13"
- },
- "papermill": {
- "default_parameters": {},
- "duration": 21957.78137,
- "end_time": "2026-03-29T21:57:07.049745",
- "environment_variables": {},
- "exception": null,
- "input_path": "simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps.ipynb",
- "output_path": "simulation_spherical_nn_sim_RSHC_c15_GP_noise_50reps_out.ipynb",
- "parameters": {},
- "start_time": "2026-03-29T15:51:09.268375",
- "version": "2.6.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
\ No newline at end of file
diff --git a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb b/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb
deleted file mode 100644
index a347313..0000000
--- a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb
+++ /dev/null
@@ -1,6973 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "d1cde2eb",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:08.815357Z",
- "iopub.status.busy": "2026-03-29T21:57:08.815177Z",
- "iopub.status.idle": "2026-03-29T21:57:08.820306Z",
- "shell.execute_reply": "2026-03-29T21:57:08.819498Z"
- },
- "papermill": {
- "duration": 0.008303,
- "end_time": "2026-03-29T21:57:08.820786",
- "exception": false,
- "start_time": "2026-03-29T21:57:08.812483",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Project root added: /home/hhuscout/myproject/deepkriging-sphere\n"
- ]
- }
- ],
- "source": [
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "import sys\n",
- "import os\n",
- "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
- "if project_root not in sys.path:\n",
- " sys.path.append(project_root)\n",
- "print(f\"Project root added: {project_root}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "8890884f",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:08.824319Z",
- "iopub.status.busy": "2026-03-29T21:57:08.824182Z",
- "iopub.status.idle": "2026-03-29T21:57:10.887914Z",
- "shell.execute_reply": "2026-03-29T21:57:10.886632Z"
- },
- "papermill": {
- "duration": 2.066489,
- "end_time": "2026-03-29T21:57:10.888775",
- "exception": false,
- "start_time": "2026-03-29T21:57:08.822286",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:57:09.515458: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774821429.525923 4086020 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774821429.529087 4086020 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774821429.536730 4086020 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821429.536748 4086020 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821429.536749 4086020 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821429.536750 4086020 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- }
- ],
- "source": [
- "import multiprocessing as mp\n",
- "if mp.get_start_method(allow_none=True) is None:\n",
- " mp.set_start_method('spawn')\n",
- "\n",
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
- "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
- "\n",
- "import os, time, gc\n",
- "from types import SimpleNamespace\n",
- "\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "import time as time_module\n",
- "from scipy.stats import t\n",
- "from scipy.special import kv, gamma\n",
- "\n",
- "import jax, jax.numpy as jnp\n",
- "\n",
- "import tensorflow as tf\n",
- "from tensorflow.keras import mixed_precision\n",
- "from tensorflow.keras.optimizers import Adam\n",
- "from tensorflow.keras.losses import Huber\n",
- "from tensorflow.keras import backend as K\n",
- "\n",
- "from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
- "from sklearn.linear_model import LinearRegression, Ridge\n",
- "from sklearn.preprocessing import OneHotEncoder\n",
- "\n",
- "import optuna\n",
- "import plotly.io as pio\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "import matplotlib.colors as mcolors\n",
- "import cartopy.crs as ccrs\n",
- "import cartopy.feature as cfeature\n",
- "\n",
- "import random"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "46d6d1ba",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:10.894130Z",
- "iopub.status.busy": "2026-03-29T21:57:10.893829Z",
- "iopub.status.idle": "2026-03-29T21:57:11.802877Z",
- "shell.execute_reply": "2026-03-29T21:57:11.802068Z"
- },
- "papermill": {
- "duration": 0.913267,
- "end_time": "2026-03-29T21:57:11.803554",
- "exception": false,
- "start_time": "2026-03-29T21:57:10.890287",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "np_f32 = np.float32\n",
- "jnp_f32 = jnp.float32\n",
- "dtype_basis = np.float32\n",
- "\n",
- "jax.config.update(\"jax_enable_x64\", False)\n",
- "\n",
- "pio.renderers.default = \"notebook\"\n",
- "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
- "\n",
- "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
- "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
- "\n",
- "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
- "\n",
- "def init_hardware(dtype: str = \"float32\"):\n",
- " gpus = tf.config.list_physical_devices(\"GPU\")\n",
- " for g in gpus:\n",
- " tf.config.experimental.set_memory_growth(g, True)\n",
- " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
- " mixed_precision.set_global_policy(dtype)\n",
- " return strategy\n",
- "\n",
- "strategy = init_hardware(dtype=\"float32\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "8dd094a7",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:11.808165Z",
- "iopub.status.busy": "2026-03-29T21:57:11.807943Z",
- "iopub.status.idle": "2026-03-29T21:57:11.810809Z",
- "shell.execute_reply": "2026-03-29T21:57:11.810071Z"
- },
- "papermill": {
- "duration": 0.006257,
- "end_time": "2026-03-29T21:57:11.811336",
- "exception": false,
- "start_time": "2026-03-29T21:57:11.805079",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "from IPython.display import display, Javascript\n",
- "\n",
- "def save_notebook():\n",
- " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
- " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
- " print(f\"Notebook saved at {current_time}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "f0aafba7",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:11.814956Z",
- "iopub.status.busy": "2026-03-29T21:57:11.814826Z",
- "iopub.status.idle": "2026-03-29T21:57:25.009269Z",
- "shell.execute_reply": "2026-03-29T21:57:25.008441Z"
- },
- "papermill": {
- "duration": 13.197306,
- "end_time": "2026-03-29T21:57:25.009917",
- "exception": false,
- "start_time": "2026-03-29T21:57:11.812611",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
- "source": [
- "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
- "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
- "\n",
- "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
- "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
- "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
- "\n",
- "from rpy2.robjects.conversion import localconverter\n",
- "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "32986e25",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:25.014856Z",
- "iopub.status.busy": "2026-03-29T21:57:25.014559Z",
- "iopub.status.idle": "2026-03-29T21:57:25.020311Z",
- "shell.execute_reply": "2026-03-29T21:57:25.019643Z"
- },
- "papermill": {
- "duration": 0.009408,
- "end_time": "2026-03-29T21:57:25.020805",
- "exception": false,
- "start_time": "2026-03-29T21:57:25.011397",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import pandas as pd\n",
- "import gc\n",
- "\n",
- "def _gp_draw(rng, num_sample):\n",
- " \"\"\"Sample one GP draw on the sphere with stationary exp covariance (rho=0.5).\"\"\"\n",
- " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
- " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
- " lat_rad = np.pi/2 - theta\n",
- " lon_rad = phi - np.pi\n",
- "\n",
- " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
- " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
- "\n",
- " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
- " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
- " z_c = np.sin(lat_rad)\n",
- " coords = np.column_stack([x_c, y_c, z_c]).astype(np.float32)\n",
- "\n",
- " dist_matrix = np.sqrt(((coords[:, None, :] - coords[None, :, :]) ** 2).sum(axis=2))\n",
- " cov_matrix = np.exp(-dist_matrix / 0.5).astype(np.float32)\n",
- " cov_matrix += np.float32(1e-3) * np.eye(num_sample, dtype=np.float32)\n",
- "\n",
- " try:\n",
- " L = np.linalg.cholesky(cov_matrix)\n",
- " except np.linalg.LinAlgError:\n",
- " cov_matrix += np.float32(1e-2) * np.eye(num_sample, dtype=np.float32)\n",
- " try:\n",
- " L = np.linalg.cholesky(cov_matrix)\n",
- " except np.linalg.LinAlgError:\n",
- " ev, evec = np.linalg.eigh(cov_matrix)\n",
- " ev = np.maximum(ev, 1e-6)\n",
- " L = evec @ np.diag(np.sqrt(ev))\n",
- "\n",
- " y = (np.float32(1.0) + L @ rng.standard_normal(num_sample).astype(np.float32)).astype(np.float32)\n",
- "\n",
- " del dist_matrix, cov_matrix, L, x_c, y_c, z_c, coords\n",
- " gc.collect()\n",
- " return lat_deg, lon_deg, y\n",
- "\n",
- "OUTLIER_RATIO = 0.025\n",
- "OUTLIER_MULT = 5\n",
- "\n",
- "def simulate_data(num_sample, seed):\n",
- " \"\"\"Stationary GP + 2.5% outliers multiplied by 5.\"\"\"\n",
- " rng = np.random.default_rng(seed)\n",
- " lat_deg, lon_deg, y = _gp_draw(rng, num_sample)\n",
- " z = y.copy()\n",
- " n_out = int(num_sample * OUTLIER_RATIO)\n",
- " idx = rng.choice(num_sample, size=n_out, replace=False)\n",
- " z[idx] *= OUTLIER_MULT\n",
- " print(f\"\\n=== GP + outliers ({OUTLIER_RATIO*100:.1f}% x{OUTLIER_MULT}) | seed={seed} ===\")\n",
- " print(f\"z mean: {np.mean(z):.4f} (\\u00b1{np.std(z)/np.sqrt(num_sample):.4f}), \"\n",
- " f\"Var: {np.var(z, ddof=0):.4f}, Range: [{np.min(z):.4f}, {np.max(z):.4f}]\")\n",
- " gc.collect()\n",
- " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z})\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "e5c1e9f9",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:25.024318Z",
- "iopub.status.busy": "2026-03-29T21:57:25.024184Z",
- "iopub.status.idle": "2026-03-29T21:57:25.031120Z",
- "shell.execute_reply": "2026-03-29T21:57:25.030451Z"
- },
- "papermill": {
- "duration": 0.009291,
- "end_time": "2026-03-29T21:57:25.031572",
- "exception": false,
- "start_time": "2026-03-29T21:57:25.022281",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def data_preprocessing(data_frame):\n",
- " data = data_frame.copy()\n",
- " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
- " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
- " data.dropna(subset=numeric_cols, inplace=True)\n",
- " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
- " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
- " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
- " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
- " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
- " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
- " categorical_data = None\n",
- " return location_data, location_data_norm, categorical_data, y_combined\n",
- "\n",
- "\n",
- "def precompute_wendland(location, num_basis):\n",
- " parts = []\n",
- " for nb in num_basis:\n",
- " grid = np.column_stack(np.meshgrid(\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " )).reshape(-1, 2).astype(np_f32)\n",
- " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
- " parts.append(wendland(location, grid, theta=theta, k=2))\n",
- " del grid\n",
- " gc.collect()\n",
- " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
- "\n",
- "\n",
- "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
- " if knot is None:\n",
- " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
- " knot = location_data[idx_knot].astype(np_f32)\n",
- " else:\n",
- " idx_knot = None\n",
- "\n",
- " if distance_type == \"sphere\":\n",
- " with localconverter(numpy2ri_converter):\n",
- " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
- " res_dict = dict(zip(res_r.names(), res_r))\n",
- " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
- " else:\n",
- " phi = np.asarray(\n",
- " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
- " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
- " )\n",
- " return phi, idx_knot, knot\n",
- "\n",
- "\n",
- "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
- " idx_all = np.arange(basis.shape[0])\n",
- " train_ratio, val_ratio, test_ratio = split_ratio\n",
- " train_val_x1, test_x1 = train_test_split(\n",
- " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
- " train_x1, val_x1 = train_test_split(\n",
- " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
- " X_train_cont = basis[train_x1]\n",
- " X_val_cont = basis[val_x1]\n",
- " X_test_cont = basis[test_x1]\n",
- " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
- " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
- " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
- " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
- " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
- " if categorical_data is None:\n",
- " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
- " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
- " else:\n",
- " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
- " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
- " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
- " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
- " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
- " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
- " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
- " return (X_train_flat, X_train_cat, y_train_flat,\n",
- " X_val_flat, X_val_cat, y_val_flat,\n",
- " X_test_flat, X_test_cat, y_test_flat)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "6728b7b3",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:25.034921Z",
- "iopub.status.busy": "2026-03-29T21:57:25.034792Z",
- "iopub.status.idle": "2026-03-29T21:57:25.042422Z",
- "shell.execute_reply": "2026-03-29T21:57:25.041715Z"
- },
- "papermill": {
- "duration": 0.010019,
- "end_time": "2026-03-29T21:57:25.042958",
- "exception": false,
- "start_time": "2026-03-29T21:57:25.032939",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def cleanup_tf_session():\n",
- " K.clear_session()\n",
- " gc.collect()\n",
- " try:\n",
- " tf.keras.backend.clear_session()\n",
- " except:\n",
- " pass\n",
- "\n",
- "\n",
- "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
- " X_train, X_train_cat, y_train,\n",
- " X_val, X_val_cat, y_val,\n",
- " X_test, X_test_cat, y_test):\n",
- "\n",
- " os.environ['PYTHONHASHSEED'] = str(seed)\n",
- " random.seed(seed)\n",
- " np.random.seed(seed)\n",
- " tf.random.set_seed(seed)\n",
- "\n",
- " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
- " t0 = time.time()\n",
- " model = LinearRegression().fit(X_train, y_train)\n",
- " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
- " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
- " training_time = time.time() - t0\n",
- " metrics = {\n",
- " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- " return metrics, model\n",
- "\n",
- " elif name_model == \"DeepKriging_wendland\":\n",
- " config = DeepKrigingDefaultConfig(\n",
- " input_dim=X_train.shape[1], output_type='continuous',\n",
- " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
- " epochs=epochs, batch_size=batch_size, verbose=0\n",
- " )\n",
- "\n",
- " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
- " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
- " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
- " config = DeepKrigingModelConfig(\n",
- " input_dim=X_train.shape[1], output_type='continuous',\n",
- " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
- " dropout_rate=dropout_rate, optimizer=_opt,\n",
- " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
- " patience=40, verbose=0\n",
- " )\n",
- "\n",
- " t0 = time.time()\n",
- " with strategy.scope():\n",
- " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
- " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
- "\n",
- " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
- " if name_model == \"DeepKriging_wendland\":\n",
- " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0)]\n",
- " else:\n",
- " callbacks = [\n",
- " tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0),\n",
- " tf.keras.callbacks.EarlyStopping(\n",
- " monitor='val_loss', patience=config.patience,\n",
- " restore_best_weights=True, verbose=0),\n",
- " tf.keras.callbacks.ReduceLROnPlateau(\n",
- " monitor='val_loss', factor=0.5,\n",
- " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
- " ]\n",
- "\n",
- " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
- " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
- " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- "\n",
- " history = model.model.fit(\n",
- " train_dataset, validation_data=val_dataset,\n",
- " epochs=epochs, callbacks=callbacks, verbose=0)\n",
- "\n",
- " if os.path.exists(checkpoint_path):\n",
- " model.model.load_weights(checkpoint_path)\n",
- " os.remove(checkpoint_path)\n",
- "\n",
- " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
- " training_time = time.time() - t0\n",
- "\n",
- " metrics = {\n",
- " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- " del train_dataset, val_dataset\n",
- " gc.collect()\n",
- " return metrics, model"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "ce398870",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:25.046293Z",
- "iopub.status.busy": "2026-03-29T21:57:25.046162Z",
- "iopub.status.idle": "2026-03-29T21:57:25.054489Z",
- "shell.execute_reply": "2026-03-29T21:57:25.053810Z"
- },
- "papermill": {
- "duration": 0.010673,
- "end_time": "2026-03-29T21:57:25.054924",
- "exception": false,
- "start_time": "2026-03-29T21:57:25.044251",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " sc = ax.scatter(longitude, latitude, c=value,\n",
- " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
- " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(title, fontsize=10, pad=3)\n",
- " return sc\n",
- "\n",
- "\n",
- "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
- " plot_type='prediction', cbar_label=None):\n",
- " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
- " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
- " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
- " if plot_type == 'residual' else\n",
- " mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
- " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(title, fontsize=10, pad=3)\n",
- " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
- " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
- " cbar.ax.tick_params(labelsize=7)\n",
- " return ax, sc\n",
- "\n",
- "\n",
- "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
- " model_list=None, experiment_info=None):\n",
- " if model_list is None:\n",
- " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
- " idx_all = np.arange(len(y_combined))\n",
- " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
- " y_test = y_combined[test_idx].reshape(-1)\n",
- " test_locations = dataframe.iloc[test_idx]\n",
- "\n",
- " predictions = {}\n",
- " for model_name in model_list:\n",
- " if model_name not in models_dict or models_dict[model_name] is None:\n",
- " continue\n",
- " model = models_dict[model_name]\n",
- " X_test = basis_dict[model_name][test_idx]\n",
- " if \"DeepKriging\" in model_name:\n",
- " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
- " elif model_name == \"UniversalKriging\":\n",
- " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
- " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
- " else:\n",
- " y_pred = model.predict(X_test).reshape(-1)\n",
- " mse = mean_squared_error(y_test, y_pred)\n",
- " rmse = np.sqrt(mse)\n",
- " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
- " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
- "\n",
- " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
- " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
- "\n",
- " fig1 = plt.figure(figsize=(16, 14))\n",
- " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
- " f'Real Data (n={len(dataframe)})')\n",
- " for i, mn in enumerate(model_list):\n",
- " if mn in predictions:\n",
- " p = predictions[mn]\n",
- " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
- " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
- " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
- " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
- " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
- " plt.show(); plt.close(fig1)\n",
- "\n",
- " fig2 = plt.figure(figsize=(18, 6))\n",
- " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
- " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
- " for i, mn in enumerate(model_list):\n",
- " if mn in predictions:\n",
- " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
- " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
- " -vmax_abs, vmax_abs,\n",
- " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
- " plot_type='residual')\n",
- " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
- " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
- " plt.show(); plt.close(fig2)\n",
- " return predictions, test_idx"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "7d38eb7c",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:25.058292Z",
- "iopub.status.busy": "2026-03-29T21:57:25.058166Z",
- "iopub.status.idle": "2026-03-29T21:57:25.061103Z",
- "shell.execute_reply": "2026-03-29T21:57:25.060458Z"
- },
- "papermill": {
- "duration": 0.005336,
- "end_time": "2026-03-29T21:57:25.061554",
- "exception": false,
- "start_time": "2026-03-29T21:57:25.056218",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\n",
- "dk_sphere candidates : [10, 50, 100, 150, 200, 1000] (restored to original)\n",
- "repeats : 50\n"
- ]
- }
- ],
- "source": [
- "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
- "seed = 50\n",
- "epochs = 500\n",
- "batch_size = 256\n",
- "num_sample = 2500\n",
- "huber_delta = 1.345\n",
- "\n",
- "num_basis = [10**2, 19**2, 37**2]\n",
- "knot_num = 1400\n",
- "order_max = 1400\n",
- "\n",
- "# All models (including dk_sphere) use the same original candidates\n",
- "base_orders = [10, 50, 100, 150, 200, 1000]\n",
- "\n",
- "repeat_experiment = 50\n",
- "\n",
- "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
- "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
- "print(f\"repeats : {repeat_experiment}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "main_loop_GP_outliers",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T21:57:25.065069Z",
- "iopub.status.busy": "2026-03-29T21:57:25.064933Z"
- },
- "papermill": {
- "duration": null,
- "end_time": null,
- "exception": false,
- "start_time": "2026-03-29T21:57:25.062921",
- "status": "running"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Starting fresh.\n",
- "\n",
- "======================================================================\n",
- "Repeat 1/50 seed=50\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 05:57:25.666747: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774821445.676755 4086252 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774821445.679630 4086252 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774821445.687154 4086252 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821445.687200 4086252 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821445.687203 4086252 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821445.687203 4086252 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] seed=50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=50 ===\n",
- "z mean: 1.3540 (±0.0265), Var: 1.7544, Range: [-4.4778, 17.2052]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] OLS_sphere best order: 100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821466.738358 4086252 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774821468.281173 4086617 service.cc:152] XLA service 0x7f40e8006750 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774821468.281205 4086617 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821468.496678 4086617 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821470.179068 4086617 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f43144a7f40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f430c25c310> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3351, sigma²=0.9844, nugget=0.8591\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3339, sigma²=0.9778, nugget=0.8597\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3341, sigma²=0.9769, nugget=0.8600\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3343, sigma²=0.9765, nugget=0.8601\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3344, sigma²=0.9762, nugget=0.8602\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3349, sigma²=0.9756, nugget=0.8601\n",
- "[repeat 0] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3349, sigma²=0.9756, nugget=0.8601\n",
- "[repeat 0] done → repeat_0_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 11.4978 | 3.3908 | 0.8651 | -12.7332 |\n",
- "| OLS_sphere | 100 | 0.2652 | 0.515 | 0.403 | 0.6832 |\n",
- "| DeepKriging_wendland | -- | 0.5743 | 0.7578 | 0.5877 | 0.3141 |\n",
- "| DeepKriging_mrts | 10 | 0.2491 | 0.4991 | 0.4073 | 0.7025 |\n",
- "| DeepKriging_sphere | 10 | 0.2991 | 0.5469 | 0.3559 | 0.6427 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1488 | 0.3858 | 0.3011 | 0.8222 |\n",
- "| UniversalKriging | 1000 | 0.2101 | 0.4584 | 0.341 | 0.749 |\n",
- "Repeat 1/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 2/50 seed=51\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:04:37.189215: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774821877.199281 215859 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774821877.201884 215859 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774821877.209377 215859 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821877.209406 215859 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821877.209408 215859 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774821877.209409 215859 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] seed=51\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=51 ===\n",
- "z mean: 1.3505 (±0.0310), Var: 2.4073, Range: [-4.7926, 17.3902]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821897.987060 215859 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774821899.529885 216225 service.cc:152] XLA service 0x7f2908017820 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774821899.529909 216225 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821899.749425 216225 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774821901.434249 216225 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2b501d1870> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2b482c76d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6300, sigma²=1.9818, nugget=1.1540\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6277, sigma²=1.9690, nugget=1.1546\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6290, sigma²=1.9698, nugget=1.1549\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6304, sigma²=1.9714, nugget=1.1551\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6315, sigma²=1.9728, nugget=1.1552\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6329, sigma²=1.9744, nugget=1.1549\n",
- "[repeat 1] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6300, sigma²=1.9818, nugget=1.1540\n",
- "[repeat 1] done → repeat_1_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 41.6442 | 6.4532 | 1.3396 | -18.1294 |\n",
- "| OLS_sphere | 200 | 1.4473 | 1.203 | 0.5829 | 0.3352 |\n",
- "| DeepKriging_wendland | -- | 1.9451 | 1.3947 | 0.7463 | 0.1065 |\n",
- "| DeepKriging_mrts | 10 | 1.5189 | 1.2325 | 0.6094 | 0.3023 |\n",
- "| DeepKriging_sphere | 50 | 2.2078 | 1.4859 | 0.7888 | -0.0142 |\n",
- "| DeepKriging_sphere_Huber | 10 | 1.3919 | 1.1798 | 0.4931 | 0.3606 |\n",
- "| UniversalKriging | 10 | 1.3601 | 1.1662 | 0.5352 | 0.3752 |\n",
- "Repeat 2/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 3/50 seed=52\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:11:35.778455: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774822295.789018 503826 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774822295.791742 503826 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774822295.798918 503826 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774822295.798946 503826 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774822295.798948 503826 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774822295.798949 503826 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] seed=52\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=52 ===\n",
- "z mean: 0.9273 (±0.0261), Var: 1.6970, Range: [-8.1030, 14.9840]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774822316.570603 503826 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774822318.109821 504191 service.cc:152] XLA service 0x55b205d1e720 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774822318.109844 504191 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774822318.328229 504191 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774822319.986803 504191 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff7884c3910> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff780597010> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5557, sigma²=1.0835, nugget=0.6718\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5566, sigma²=1.0830, nugget=0.6718\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5584, sigma²=1.0849, nugget=0.6719\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5601, sigma²=1.0868, nugget=0.6720\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5609, sigma²=1.0875, nugget=0.6720\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5612, sigma²=1.0860, nugget=0.6720\n",
- "[repeat 2] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5601, sigma²=1.0868, nugget=0.6720\n",
- "[repeat 2] done → repeat_2_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.4343 | 1.1976 | 0.7433 | 0.0555 |\n",
- "| OLS_sphere | 150 | 0.7379 | 0.859 | 0.4293 | 0.5141 |\n",
- "| DeepKriging_wendland | -- | 1.1134 | 1.0552 | 0.6272 | 0.2669 |\n",
- "| DeepKriging_mrts | 10 | 0.7648 | 0.8745 | 0.4594 | 0.4964 |\n",
- "| DeepKriging_sphere | 50 | 0.7888 | 0.8882 | 0.4281 | 0.4806 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.6615 | 0.8133 | 0.3717 | 0.5644 |\n",
- "| UniversalKriging | 150 | 0.6969 | 0.8348 | 0.389 | 0.5411 |\n",
- "Repeat 3/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 4/50 seed=53\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:18:38.567295: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774822718.576795 804672 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774822718.580697 804672 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774822718.597954 804672 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774822718.597999 804672 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774822718.598001 804672 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774822718.598002 804672 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] seed=53\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=53 ===\n",
- "z mean: 1.3762 (±0.0320), Var: 2.5578, Range: [-8.7527, 18.4755]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774822739.443175 804672 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774822740.985037 805035 service.cc:152] XLA service 0x55b662766180 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774822740.985062 805035 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774822741.199451 805035 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774822742.875452 805035 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff87878b0a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff87815b400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5607, sigma²=1.0512, nugget=1.0878\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5601, sigma²=1.0482, nugget=1.0880\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5605, sigma²=1.0477, nugget=1.0881\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5608, sigma²=1.0473, nugget=1.0881\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5609, sigma²=1.0472, nugget=1.0881\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5615, sigma²=1.0471, nugget=1.0878\n",
- "[repeat 3] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5601, sigma²=1.0482, nugget=1.0880\n",
- "[repeat 3] done → repeat_3_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 2.4389 | 1.5617 | 0.9565 | -0.6731 |\n",
- "| OLS_sphere | 150 | 0.4552 | 0.6747 | 0.439 | 0.6877 |\n",
- "| DeepKriging_wendland | -- | 1.005 | 1.0025 | 0.6943 | 0.3105 |\n",
- "| DeepKriging_mrts | 50 | 0.5145 | 0.7173 | 0.5077 | 0.6471 |\n",
- "| DeepKriging_sphere | 50 | 0.5632 | 0.7504 | 0.4581 | 0.6137 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.3806 | 0.6169 | 0.3609 | 0.7389 |\n",
- "| UniversalKriging | 50 | 0.3788 | 0.6155 | 0.3865 | 0.7401 |\n",
- "Repeat 4/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 5/50 seed=54\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:25:35.721128: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774823135.730898 1092325 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774823135.733641 1092325 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774823135.740879 1092325 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823135.740913 1092325 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823135.740915 1092325 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823135.740916 1092325 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] seed=54\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=54 ===\n",
- "z mean: 1.6072 (±0.0266), Var: 1.7648, Range: [-1.2840, 14.7033]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823156.463984 1092325 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774823157.980061 1092686 service.cc:152] XLA service 0x7f3404007600 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774823157.980112 1092686 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823158.202124 1092686 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823159.875274 1092686 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f36500fedd0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f36407f4820> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3485, sigma²=0.6241, nugget=1.2542\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3478, sigma²=0.6215, nugget=1.2545\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3479, sigma²=0.6210, nugget=1.2545\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3480, sigma²=0.6208, nugget=1.2546\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3481, sigma²=0.6207, nugget=1.2546\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3484, sigma²=0.6206, nugget=1.2542\n",
- "[repeat 4] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3481, sigma²=0.6207, nugget=1.2546\n",
- "[repeat 4] done → repeat_4_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.7033 | 1.3051 | 0.6417 | -0.9558 |\n",
- "| OLS_sphere | 200 | 0.5992 | 0.7741 | 0.4331 | 0.312 |\n",
- "| DeepKriging_wendland | -- | 0.7568 | 0.87 | 0.5473 | 0.1309 |\n",
- "| DeepKriging_mrts | 50 | 0.6708 | 0.819 | 0.4911 | 0.2297 |\n",
- "| DeepKriging_sphere | 50 | 0.5619 | 0.7496 | 0.3856 | 0.3547 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4789 | 0.6921 | 0.3352 | 0.45 |\n",
- "| UniversalKriging | 200 | 0.5045 | 0.7103 | 0.3806 | 0.4207 |\n",
- "Repeat 5/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 6/50 seed=55\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:32:33.430151: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774823553.439981 1385633 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774823553.442666 1385633 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774823553.449886 1385633 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823553.449914 1385633 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823553.449916 1385633 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823553.449917 1385633 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] seed=55\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=55 ===\n",
- "z mean: 0.3004 (±0.0269), Var: 1.8147, Range: [-9.0754, 17.3043]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823574.247700 1385633 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774823575.753115 1385999 service.cc:152] XLA service 0x7f5d84007ee0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774823575.753144 1385999 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823575.966974 1385999 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823577.662665 1385999 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f5fb8782a70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f5fb816feb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4272, sigma²=1.3625, nugget=0.3110\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4189, sigma²=1.3330, nugget=0.3114\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4193, sigma²=1.3312, nugget=0.3118\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4197, sigma²=1.3303, nugget=0.3120\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4200, sigma²=1.3300, nugget=0.3121\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4211, sigma²=1.3291, nugget=0.3122\n",
- "[repeat 5] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4211, sigma²=1.3291, nugget=0.3122\n",
- "[repeat 5] done → repeat_5_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 7.4085 | 2.7219 | 0.9256 | -2.3657 |\n",
- "| OLS_sphere | 200 | 0.8368 | 0.9148 | 0.4499 | 0.6198 |\n",
- "| DeepKriging_wendland | -- | 1.4474 | 1.2031 | 0.7261 | 0.3424 |\n",
- "| DeepKriging_mrts | 10 | 0.8527 | 0.9234 | 0.4391 | 0.6126 |\n",
- "| DeepKriging_sphere | 100 | 1.0448 | 1.0222 | 0.4807 | 0.5253 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.7589 | 0.8711 | 0.4064 | 0.6552 |\n",
- "| UniversalKriging | 1000 | 0.8269 | 0.9093 | 0.408 | 0.6243 |\n",
- "Repeat 6/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 7/50 seed=56\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:39:22.159222: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774823962.169065 1674132 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774823962.173814 1674132 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774823962.189561 1674132 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823962.189607 1674132 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823962.189609 1674132 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774823962.189610 1674132 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] seed=56\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=56 ===\n",
- "z mean: 1.4239 (±0.0292), Var: 2.1302, Range: [-4.9238, 20.7401]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823982.982969 1674132 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774823984.498945 1674491 service.cc:152] XLA service 0x7f8fe0009730 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774823984.498981 1674491 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823984.720214 1674491 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774823986.384603 1674491 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f91f440e950> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f91ec53f5b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7830, sigma²=1.4228, nugget=1.2034\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7828, sigma²=1.4129, nugget=1.2044\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7844, sigma²=1.4131, nugget=1.2046\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7854, sigma²=1.4136, nugget=1.2047\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7860, sigma²=1.4138, nugget=1.2047\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7870, sigma²=1.4142, nugget=1.2042\n",
- "[repeat 6] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.7830, sigma²=1.4228, nugget=1.2034\n",
- "[repeat 6] done → repeat_6_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 3.436 | 1.8536 | 0.9174 | -1.5953 |\n",
- "| OLS_sphere | 200 | 0.6544 | 0.8089 | 0.4644 | 0.5057 |\n",
- "| DeepKriging_wendland | -- | 1.1268 | 1.0615 | 0.6861 | 0.1489 |\n",
- "| DeepKriging_mrts | 50 | 0.7227 | 0.8501 | 0.5157 | 0.4541 |\n",
- "| DeepKriging_sphere | 50 | 1.0722 | 1.0355 | 0.4598 | 0.1901 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.5789 | 0.7609 | 0.4077 | 0.5627 |\n",
- "| UniversalKriging | 10 | 0.5892 | 0.7676 | 0.4221 | 0.555 |\n",
- "Repeat 7/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 8/50 seed=57\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:47:11.263122: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774824431.272176 2053518 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774824431.275155 2053518 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774824431.282759 2053518 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774824431.282787 2053518 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774824431.282789 2053518 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774824431.282790 2053518 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] seed=57\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=57 ===\n",
- "z mean: 0.7131 (±0.0208), Var: 1.0823, Range: [-3.8183, 10.1589]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774824452.056391 2053518 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774824453.582976 2053871 service.cc:152] XLA service 0x7f29f4006510 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774824453.582998 2053871 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774824453.805046 2053871 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774824455.512651 2053871 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2c10191fc0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2c0063ec20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3844, sigma²=0.8841, nugget=0.3862\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3813, sigma²=0.8750, nugget=0.3865\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3813, sigma²=0.8734, nugget=0.3867\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3816, sigma²=0.8730, nugget=0.3869\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3818, sigma²=0.8729, nugget=0.3869\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3826, sigma²=0.8728, nugget=0.3869\n",
- "[repeat 7] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3826, sigma²=0.8728, nugget=0.3869\n",
- "[repeat 7] done → repeat_7_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 3.4426 | 1.8554 | 0.759 | -3.0469 |\n",
- "| OLS_sphere | 200 | 0.2928 | 0.5411 | 0.3954 | 0.6559 |\n",
- "| DeepKriging_wendland | -- | 0.6047 | 0.7776 | 0.5865 | 0.2892 |\n",
- "| DeepKriging_mrts | 10 | 0.3416 | 0.5845 | 0.4178 | 0.5985 |\n",
- "| DeepKriging_sphere | 50 | 0.3588 | 0.599 | 0.3742 | 0.5782 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.2658 | 0.5156 | 0.3684 | 0.6875 |\n",
- "| UniversalKriging | 1000 | 0.2745 | 0.5239 | 0.3622 | 0.6773 |\n",
- "Repeat 8/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 9/50 seed=58\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 06:54:22.107342: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774824862.116791 2357997 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774824862.119767 2357997 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774824862.136844 2357997 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774824862.136894 2357997 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774824862.136896 2357997 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774824862.136898 2357997 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] seed=58\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=58 ===\n",
- "z mean: 0.6553 (±0.0230), Var: 1.3169, Range: [-7.7903, 12.2911]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774824882.994441 2357997 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774824884.524931 2358350 service.cc:152] XLA service 0x55c92790b100 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774824884.524966 2358350 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774824884.738625 2358350 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774824886.399877 2358350 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fcb94163370> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fcb84636b90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4008, sigma²=0.8406, nugget=0.4012\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3955, sigma²=0.8277, nugget=0.4014\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3957, sigma²=0.8266, nugget=0.4016\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3960, sigma²=0.8263, nugget=0.4017\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3961, sigma²=0.8262, nugget=0.4017\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3967, sigma²=0.8260, nugget=0.4016\n",
- "[repeat 8] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3967, sigma²=0.8260, nugget=0.4016\n",
- "[repeat 8] done → repeat_8_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.3238 | 1.1506 | 0.723 | -0.2035 |\n",
- "| OLS_sphere | 200 | 0.5139 | 0.7169 | 0.4399 | 0.5328 |\n",
- "| DeepKriging_wendland | -- | 0.768 | 0.8764 | 0.5969 | 0.3018 |\n",
- "| DeepKriging_mrts | 10 | 0.4978 | 0.7056 | 0.4221 | 0.5474 |\n",
- "| DeepKriging_sphere | 10 | 0.461 | 0.679 | 0.3849 | 0.5809 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.449 | 0.6701 | 0.3715 | 0.5918 |\n",
- "| UniversalKriging | 1000 | 0.4601 | 0.6783 | 0.3827 | 0.5817 |\n",
- "Repeat 9/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 10/50 seed=59\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:02:06.612086: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774825326.621724 2751085 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774825326.624907 2751085 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774825326.631859 2751085 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774825326.631892 2751085 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774825326.631895 2751085 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774825326.631895 2751085 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] seed=59\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=59 ===\n",
- "z mean: 1.1312 (±0.0273), Var: 1.8632, Range: [-4.7447, 17.7587]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774825347.356958 2751085 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774825348.865942 2751452 service.cc:152] XLA service 0x7fe090019aa0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774825348.865977 2751452 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774825349.090648 2751452 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774825350.773405 2751452 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe2d429ae60> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe2cc38fe20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3774, sigma²=1.0332, nugget=0.5743\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3750, sigma²=1.0239, nugget=0.5748\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3753, sigma²=1.0228, nugget=0.5751\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3755, sigma²=1.0225, nugget=0.5752\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3758, sigma²=1.0223, nugget=0.5753\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3767, sigma²=1.0218, nugget=0.5753\n",
- "[repeat 9] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3755, sigma²=1.0225, nugget=0.5752\n",
- "[repeat 9] done → repeat_9_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|-----------|---------|--------|------------|\n",
- "| OLS_wendland | -- | 2595.08 | 50.942 | 4.0647 | -1062.45 |\n",
- "| OLS_sphere | 150 | 1.395 | 1.1811 | 0.5278 | 0.4283 |\n",
- "| DeepKriging_wendland | -- | 1.8461 | 1.3587 | 0.7452 | 0.2435 |\n",
- "| DeepKriging_mrts | 50 | 1.48 | 1.2165 | 0.6566 | 0.3935 |\n",
- "| DeepKriging_sphere | 50 | 1.4778 | 1.2157 | 0.5052 | 0.3944 |\n",
- "| DeepKriging_sphere_Huber | 10 | 1.3838 | 1.1763 | 0.4697 | 0.4329 |\n",
- "| UniversalKriging | 150 | 1.3403 | 1.1577 | 0.4763 | 0.4508 |\n",
- "Repeat 10/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 11/50 seed=60\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:08:45.190132: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774825725.199163 3014241 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774825725.202665 3014241 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774825725.209752 3014241 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774825725.209784 3014241 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774825725.209786 3014241 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774825725.209787 3014241 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] seed=60\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=60 ===\n",
- "z mean: 0.8306 (±0.0266), Var: 1.7711, Range: [-5.8380, 14.6948]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774825746.190942 3014241 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774825747.710654 3014612 service.cc:152] XLA service 0x7f2b980066c0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774825747.710681 3014612 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774825747.927947 3014612 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774825749.592702 3014612 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2dc45b2710> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2dbc68fbe0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6303, sigma²=1.0633, nugget=0.6226\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6265, sigma²=1.0518, nugget=0.6230\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6296, sigma²=1.0559, nugget=0.6230\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6306, sigma²=1.0573, nugget=0.6229\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6317, sigma²=1.0588, nugget=0.6229\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6342, sigma²=1.0619, nugget=0.6226\n",
- "[repeat 10] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6342, sigma²=1.0619, nugget=0.6226\n",
- "[repeat 10] done → repeat_10_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.6071 | 1.2677 | 0.8458 | 0.1639 |\n",
- "| OLS_sphere | 200 | 0.8356 | 0.9141 | 0.5146 | 0.5653 |\n",
- "| DeepKriging_wendland | -- | 1.3209 | 1.1493 | 0.717 | 0.3128 |\n",
- "| DeepKriging_mrts | 10 | 0.9061 | 0.9519 | 0.5268 | 0.5286 |\n",
- "| DeepKriging_sphere | 50 | 0.8199 | 0.9055 | 0.4597 | 0.5735 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.7791 | 0.8827 | 0.4395 | 0.5947 |\n",
- "| UniversalKriging | 1000 | 0.815 | 0.9028 | 0.4557 | 0.576 |\n",
- "Repeat 11/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 12/50 seed=61\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:15:58.003765: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774826158.013421 3316202 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774826158.016118 3316202 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774826158.023138 3316202 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826158.023163 3316202 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826158.023165 3316202 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826158.023166 3316202 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] seed=61\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=61 ===\n",
- "z mean: 1.5312 (±0.0257), Var: 1.6527, Range: [-4.0713, 22.8895]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] OLS_sphere best order: 50\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826178.904169 3316202 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774826180.429041 3316560 service.cc:152] XLA service 0x7fd578006fb0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774826180.429075 3316560 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826180.647626 3316560 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826182.339499 3316560 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd7a85ae8c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd7a0677c70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4119, sigma²=0.8452, nugget=0.9024\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4094, sigma²=0.8376, nugget=0.9028\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4095, sigma²=0.8371, nugget=0.9029\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4097, sigma²=0.8368, nugget=0.9030\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4099, sigma²=0.8367, nugget=0.9030\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4104, sigma²=0.8365, nugget=0.9027\n",
- "[repeat 11] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4104, sigma²=0.8365, nugget=0.9027\n",
- "[repeat 11] done → repeat_11_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.9502 | 0.9748 | 0.6978 | 0.0715 |\n",
- "| OLS_sphere | 50 | 0.5401 | 0.7349 | 0.499 | 0.4722 |\n",
- "| DeepKriging_wendland | -- | 0.7773 | 0.8817 | 0.6298 | 0.2404 |\n",
- "| DeepKriging_mrts | 50 | 0.5566 | 0.7461 | 0.4971 | 0.4561 |\n",
- "| DeepKriging_sphere | 10 | 0.6106 | 0.7814 | 0.4895 | 0.4034 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4587 | 0.6773 | 0.3949 | 0.5518 |\n",
- "| UniversalKriging | 1000 | 0.5225 | 0.7228 | 0.4459 | 0.4895 |\n",
- "Repeat 12/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 13/50 seed=62\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:22:25.160475: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774826545.171241 3560741 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774826545.173967 3560741 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774826545.181031 3560741 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826545.181056 3560741 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826545.181058 3560741 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826545.181059 3560741 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] seed=62\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=62 ===\n",
- "z mean: 0.5878 (±0.0210), Var: 1.0990, Range: [-4.6781, 12.6467]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826565.988476 3560741 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774826567.505920 3561108 service.cc:152] XLA service 0x7fa20401a270 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774826567.505953 3561108 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826567.717189 3561108 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826569.385703 3561108 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa42869fa30> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa42076fe20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4839, sigma²=0.7429, nugget=0.4008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4799, sigma²=0.7349, nugget=0.4011\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4802, sigma²=0.7340, nugget=0.4012\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4805, sigma²=0.7338, nugget=0.4013\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4808, sigma²=0.7337, nugget=0.4013\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4814, sigma²=0.7337, nugget=0.4012\n",
- "[repeat 12] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4839, sigma²=0.7429, nugget=0.4008\n",
- "[repeat 12] done → repeat_12_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 11.9232 | 3.453 | 0.8603 | -11.9533 |\n",
- "| OLS_sphere | 200 | 0.4304 | 0.656 | 0.3839 | 0.5325 |\n",
- "| DeepKriging_wendland | -- | 0.7267 | 0.8525 | 0.5577 | 0.2105 |\n",
- "| DeepKriging_mrts | 1000 | 1.1236 | 1.06 | 0.5618 | -0.2206 |\n",
- "| DeepKriging_sphere | 150 | 0.6017 | 0.7757 | 0.4192 | 0.3463 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.5474 | 0.7398 | 0.3992 | 0.4053 |\n",
- "| UniversalKriging | 10 | 0.4059 | 0.6371 | 0.3597 | 0.5591 |\n",
- "Repeat 13/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 14/50 seed=63\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:29:12.000896: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774826952.010700 3834551 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774826952.013789 3834551 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774826952.022064 3834551 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826952.022101 3834551 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826952.022103 3834551 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774826952.022104 3834551 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] seed=63\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=63 ===\n",
- "z mean: 1.1311 (±0.0277), Var: 1.9115, Range: [-5.7834, 14.9951]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826973.003309 3834551 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774826974.509751 3834919 service.cc:152] XLA service 0x7f28ac008750 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774826974.509778 3834919 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826974.729012 3834919 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774826976.386659 3834919 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2ad02d5b40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2ac075cee0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4039, sigma²=1.3953, nugget=0.4788\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3969, sigma²=1.3672, nugget=0.4795\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3971, sigma²=1.3650, nugget=0.4799\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3975, sigma²=1.3646, nugget=0.4801\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3979, sigma²=1.3643, nugget=0.4803\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3991, sigma²=1.3641, nugget=0.4804\n",
- "[repeat 13] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3991, sigma²=1.3641, nugget=0.4804\n",
- "[repeat 13] done → repeat_13_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 3.0944 | 1.7591 | 0.9141 | -0.129 |\n",
- "| OLS_sphere | 150 | 1.583 | 1.2582 | 0.5432 | 0.4225 |\n",
- "| DeepKriging_wendland | -- | 2.3771 | 1.5418 | 0.7861 | 0.1327 |\n",
- "| DeepKriging_mrts | 1000 | 2.6526 | 1.6287 | 0.6983 | 0.0322 |\n",
- "| DeepKriging_sphere | 150 | 1.893 | 1.3759 | 0.5173 | 0.3094 |\n",
- "| DeepKriging_sphere_Huber | 10 | 1.6226 | 1.2738 | 0.4624 | 0.408 |\n",
- "| UniversalKriging | 1000 | 1.6444 | 1.2823 | 0.4882 | 0.4001 |\n",
- "Repeat 14/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 15/50 seed=64\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:36:16.152147: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774827376.161757 4122649 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774827376.164709 4122649 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774827376.175302 4122649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774827376.175362 4122649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774827376.175364 4122649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774827376.175365 4122649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] seed=64\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=64 ===\n",
- "z mean: 1.1154 (±0.0278), Var: 1.9321, Range: [-4.4635, 14.7213]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774827397.143708 4122649 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774827398.703094 4123010 service.cc:152] XLA service 0x56133504c620 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774827398.703120 4123010 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774827398.922577 4123010 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774827400.603052 4123010 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f621c50e710> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f62144b2a70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4641, sigma²=1.0000, nugget=0.7670\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4635, sigma²=0.9955, nugget=0.7674\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4645, sigma²=0.9954, nugget=0.7677\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4650, sigma²=0.9955, nugget=0.7678\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4653, sigma²=0.9956, nugget=0.7678\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4662, sigma²=0.9959, nugget=0.7676\n",
- "[repeat 14] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4641, sigma²=1.0000, nugget=0.7670\n",
- "[repeat 14] done → repeat_14_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.6839 | 1.2977 | 0.7617 | 0.1363 |\n",
- "| OLS_sphere | 200 | 1.1487 | 1.0718 | 0.5141 | 0.4108 |\n",
- "| DeepKriging_wendland | -- | 1.6321 | 1.2775 | 0.7034 | 0.1629 |\n",
- "| DeepKriging_mrts | 50 | 1.2074 | 1.0988 | 0.533 | 0.3807 |\n",
- "| DeepKriging_sphere | 10 | 1.2036 | 1.0971 | 0.5029 | 0.3827 |\n",
- "| DeepKriging_sphere_Huber | 150 | 1.2912 | 1.1363 | 0.4784 | 0.3377 |\n",
- "| UniversalKriging | 10 | 1.0877 | 1.0429 | 0.4703 | 0.4421 |\n",
- "Repeat 15/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 16/50 seed=65\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:43:53.655895: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774827833.666195 279889 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774827833.669667 279889 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774827833.677442 279889 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774827833.677473 279889 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774827833.677475 279889 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774827833.677476 279889 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] seed=65\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=65 ===\n",
- "z mean: 0.9107 (±0.0313), Var: 2.4512, Range: [-8.3508, 17.7763]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] OLS_sphere best order: 100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774827854.565124 279889 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774827856.097394 280249 service.cc:152] XLA service 0x7f4918006710 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774827856.097431 280249 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774827856.319939 280249 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774827858.011588 280249 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f4b306d27a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f4b28484310> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4838, sigma²=1.2169, nugget=0.9047\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4836, sigma²=1.2123, nugget=0.9053\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4845, sigma²=1.2121, nugget=0.9056\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4849, sigma²=1.2120, nugget=0.9058\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4853, sigma²=1.2121, nugget=0.9058\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4862, sigma²=1.2121, nugget=0.9056\n",
- "[repeat 15] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4838, sigma²=1.2169, nugget=0.9047\n",
- "[repeat 15] done → repeat_15_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 7.2222 | 2.6874 | 1.0053 | -1.7307 |\n",
- "| OLS_sphere | 100 | 1.4804 | 1.2167 | 0.5972 | 0.4402 |\n",
- "| DeepKriging_wendland | -- | 2.0626 | 1.4362 | 0.7801 | 0.2201 |\n",
- "| DeepKriging_mrts | 50 | 1.7158 | 1.3099 | 0.6619 | 0.3512 |\n",
- "| DeepKriging_sphere | 10 | 1.6758 | 1.2945 | 0.6552 | 0.3664 |\n",
- "| DeepKriging_sphere_Huber | 10 | 1.414 | 1.1891 | 0.4869 | 0.4654 |\n",
- "| UniversalKriging | 10 | 1.366 | 1.1687 | 0.5227 | 0.4835 |\n",
- "Repeat 16/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 17/50 seed=66\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:50:40.865059: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774828240.875050 551163 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774828240.877916 551163 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774828240.886389 551163 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774828240.886414 551163 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774828240.886416 551163 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774828240.886417 551163 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] seed=66\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=66 ===\n",
- "z mean: 1.3377 (±0.0248), Var: 1.5326, Range: [-2.3149, 15.1935]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774828261.655679 551163 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774828263.205608 551524 service.cc:152] XLA service 0x7f7c64006f50 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774828263.205647 551524 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774828263.428545 551524 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774828265.118845 551524 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7e90325630> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7e8842f6d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3003, sigma²=0.7069, nugget=0.8572\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3007, sigma²=0.7062, nugget=0.8573\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3007, sigma²=0.7054, nugget=0.8574\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3009, sigma²=0.7052, nugget=0.8575\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3011, sigma²=0.7050, nugget=0.8576\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3016, sigma²=0.7049, nugget=0.8574\n",
- "[repeat 16] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3009, sigma²=0.7052, nugget=0.8575\n",
- "[repeat 16] done → repeat_16_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.4195 | 1.1914 | 0.7217 | -0.0449 |\n",
- "| OLS_sphere | 150 | 0.9884 | 0.9942 | 0.5026 | 0.2725 |\n",
- "| DeepKriging_wendland | -- | 1.2974 | 1.139 | 0.6903 | 0.0451 |\n",
- "| DeepKriging_mrts | 10 | 1.0831 | 1.0407 | 0.561 | 0.2028 |\n",
- "| DeepKriging_sphere | 10 | 0.9836 | 0.9917 | 0.4703 | 0.276 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.9216 | 0.96 | 0.4461 | 0.3216 |\n",
- "| UniversalKriging | 150 | 0.9447 | 0.9719 | 0.4705 | 0.3047 |\n",
- "Repeat 17/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 18/50 seed=67\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 07:58:05.583208: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774828685.593812 889579 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774828685.596652 889579 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774828685.603540 889579 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774828685.603566 889579 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774828685.603568 889579 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774828685.603569 889579 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] seed=67\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=67 ===\n",
- "z mean: 1.3927 (±0.0263), Var: 1.7228, Range: [-3.6179, 18.0653]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] OLS_sphere best order: 100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774828706.458233 889579 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774828707.997512 889938 service.cc:152] XLA service 0x55dd83554760 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774828707.997539 889938 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774828708.214537 889938 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774828709.901033 889938 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd5d45c97e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd5cc6c3640> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4728, sigma²=0.7911, nugget=1.0361\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4720, sigma²=0.7875, nugget=1.0364\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4725, sigma²=0.7871, nugget=1.0366\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4728, sigma²=0.7869, nugget=1.0366\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4730, sigma²=0.7868, nugget=1.0367\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4734, sigma²=0.7867, nugget=1.0363\n",
- "[repeat 17] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4734, sigma²=0.7867, nugget=1.0363\n",
- "[repeat 17] done → repeat_17_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.907 | 1.3809 | 0.8004 | -0.2438 |\n",
- "| OLS_sphere | 100 | 0.9504 | 0.9749 | 0.5397 | 0.3801 |\n",
- "| DeepKriging_wendland | -- | 1.2524 | 1.1191 | 0.6748 | 0.1831 |\n",
- "| DeepKriging_mrts | 10 | 1.0354 | 1.0176 | 0.5508 | 0.3247 |\n",
- "| DeepKriging_sphere | 10 | 0.9953 | 0.9977 | 0.4754 | 0.3508 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.8745 | 0.9351 | 0.4516 | 0.4296 |\n",
- "| UniversalKriging | 1000 | 0.8821 | 0.9392 | 0.4802 | 0.4247 |\n",
- "Repeat 18/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 19/50 seed=68\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:05:09.892009: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774829109.902795 1194528 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774829109.905924 1194528 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774829109.913550 1194528 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774829109.913588 1194528 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774829109.913591 1194528 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774829109.913591 1194528 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] seed=68\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=68 ===\n",
- "z mean: 1.7234 (±0.0337), Var: 2.8417, Range: [-3.2569, 19.0880]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774829130.723696 1194528 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774829132.254966 1194892 service.cc:152] XLA service 0x7f746800a150 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774829132.254992 1194892 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774829132.472697 1194892 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774829134.145724 1194892 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f76847f5870> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f767c5991b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_mrts best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6852, sigma²=1.4169, nugget=1.2374\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6824, sigma²=1.4046, nugget=1.2380\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6830, sigma²=1.4040, nugget=1.2382\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6833, sigma²=1.4038, nugget=1.2382\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6836, sigma²=1.4037, nugget=1.2382\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6842, sigma²=1.4037, nugget=1.2377\n",
- "[repeat 18] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6842, sigma²=1.4037, nugget=1.2377\n",
- "[repeat 18] done → repeat_18_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 10.481 | 3.2374 | 1.1773 | -3.0341 |\n",
- "| OLS_sphere | 200 | 1.2915 | 1.1364 | 0.6045 | 0.5029 |\n",
- "| DeepKriging_wendland | -- | 1.8705 | 1.3677 | 0.9134 | 0.28 |\n",
- "| DeepKriging_mrts | 150 | 1.504 | 1.2264 | 0.6185 | 0.4211 |\n",
- "| DeepKriging_sphere | 10 | 1.4884 | 1.22 | 0.5766 | 0.4271 |\n",
- "| DeepKriging_sphere_Huber | 50 | 1.6955 | 1.3021 | 0.5505 | 0.3474 |\n",
- "| UniversalKriging | 1000 | 1.209 | 1.0996 | 0.523 | 0.5347 |\n",
- "Repeat 19/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 20/50 seed=69\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:12:37.348826: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774829557.359097 1542846 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774829557.361876 1542846 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774829557.368866 1542846 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774829557.368896 1542846 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774829557.368898 1542846 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774829557.368899 1542846 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] seed=69\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=69 ===\n",
- "z mean: 1.0595 (±0.0274), Var: 1.8718, Range: [-5.3685, 16.4418]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774829578.209384 1542846 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774829579.742887 1543210 service.cc:152] XLA service 0x7fd7bc006150 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774829579.742912 1543210 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774829579.963643 1543210 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774829581.633646 1543210 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd9f01dd870> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd9e06b5bd0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6485, sigma²=1.1546, nugget=0.6748\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6414, sigma²=1.1353, nugget=0.6755\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6419, sigma²=1.1347, nugget=0.6756\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6423, sigma²=1.1346, nugget=0.6757\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6427, sigma²=1.1345, nugget=0.6757\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6436, sigma²=1.1347, nugget=0.6755\n",
- "[repeat 19] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6436, sigma²=1.1347, nugget=0.6755\n",
- "[repeat 19] done → repeat_19_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 2.0378 | 1.4275 | 0.8397 | 0.1708 |\n",
- "| OLS_sphere | 200 | 1.4901 | 1.2207 | 0.5591 | 0.3937 |\n",
- "| DeepKriging_wendland | -- | 1.8813 | 1.3716 | 0.7743 | 0.2345 |\n",
- "| DeepKriging_mrts | 50 | 1.5864 | 1.2595 | 0.5558 | 0.3545 |\n",
- "| DeepKriging_sphere | 50 | 1.4784 | 1.2159 | 0.4898 | 0.3984 |\n",
- "| DeepKriging_sphere_Huber | 10 | 1.4244 | 1.1935 | 0.4751 | 0.4204 |\n",
- "| UniversalKriging | 1000 | 1.4387 | 1.1994 | 0.5053 | 0.4146 |\n",
- "Repeat 20/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 21/50 seed=70\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:20:08.808905: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774830008.819373 1875484 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774830008.822312 1875484 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774830008.829716 1875484 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830008.829744 1875484 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830008.829746 1875484 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830008.829747 1875484 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] seed=70\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=70 ===\n",
- "z mean: 1.3323 (±0.0293), Var: 2.1525, Range: [-2.6143, 18.4918]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] OLS_sphere best order: 100\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830029.611750 1875484 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774830031.142073 1875842 service.cc:152] XLA service 0x7f5280009550 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774830031.142096 1875842 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830031.362986 1875842 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830033.021302 1875842 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f54a470ab00> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f54a42f6b90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6790, sigma²=1.1993, nugget=1.2490\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6780, sigma²=1.1944, nugget=1.2494\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6788, sigma²=1.1936, nugget=1.2495\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6792, sigma²=1.1937, nugget=1.2496\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6796, sigma²=1.1937, nugget=1.2496\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6805, sigma²=1.1939, nugget=1.2491\n",
- "[repeat 20] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6780, sigma²=1.1944, nugget=1.2494\n",
- "[repeat 20] done → repeat_20_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.2244 | 1.1065 | 0.7444 | -0.3494 |\n",
- "| OLS_sphere | 100 | 0.3213 | 0.5668 | 0.4398 | 0.6459 |\n",
- "| DeepKriging_wendland | -- | 0.635 | 0.7969 | 0.6171 | 0.3002 |\n",
- "| DeepKriging_mrts | 10 | 0.5872 | 0.7663 | 0.4507 | 0.3528 |\n",
- "| DeepKriging_sphere | 10 | 0.4587 | 0.6773 | 0.4477 | 0.4945 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.2015 | 0.4488 | 0.3378 | 0.778 |\n",
- "| UniversalKriging | 50 | 0.2547 | 0.5047 | 0.3858 | 0.7193 |\n",
- "Repeat 21/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 22/50 seed=71\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:27:33.098657: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774830453.108997 2224823 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774830453.112491 2224823 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774830453.120082 2224823 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830453.120116 2224823 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830453.120118 2224823 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830453.120119 2224823 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] seed=71\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=71 ===\n",
- "z mean: 1.2822 (±0.0251), Var: 1.5750, Range: [-1.4941, 13.5336]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830473.925729 2224823 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774830475.489942 2225189 service.cc:152] XLA service 0x56312a83b1b0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774830475.489978 2225189 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830475.714257 2225189 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830477.408542 2225189 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9c407e6d40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9c401de950> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3386, sigma²=0.7883, nugget=0.6911\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3367, sigma²=0.7836, nugget=0.6913\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3369, sigma²=0.7825, nugget=0.6915\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3371, sigma²=0.7822, nugget=0.6916\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3373, sigma²=0.7820, nugget=0.6917\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3377, sigma²=0.7817, nugget=0.6914\n",
- "[repeat 21] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3377, sigma²=0.7817, nugget=0.6914\n",
- "[repeat 21] done → repeat_21_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 3.6637 | 1.9141 | 0.766 | -3.0764 |\n",
- "| OLS_sphere | 200 | 0.4792 | 0.6923 | 0.4454 | 0.4668 |\n",
- "| DeepKriging_wendland | -- | 0.7218 | 0.8496 | 0.5659 | 0.1969 |\n",
- "| DeepKriging_mrts | 50 | 0.476 | 0.69 | 0.4723 | 0.4703 |\n",
- "| DeepKriging_sphere | 50 | 0.6117 | 0.7821 | 0.4791 | 0.3194 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.4126 | 0.6423 | 0.3575 | 0.541 |\n",
- "| UniversalKriging | 1000 | 0.3864 | 0.6216 | 0.3932 | 0.5701 |\n",
- "Repeat 22/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 23/50 seed=72\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:34:30.110569: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774830870.120699 2521856 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774830870.123427 2521856 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774830870.130373 2521856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830870.130402 2521856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830870.130404 2521856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774830870.130405 2521856 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] seed=72\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=72 ===\n",
- "z mean: 1.0442 (±0.0260), Var: 1.6888, Range: [-3.1045, 15.2349]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830890.859808 2521856 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774830892.399475 2522223 service.cc:152] XLA service 0x5560bc3ba800 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774830892.399502 2522223 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830892.626308 2522223 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774830894.288295 2522223 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f718071a170> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f71486dbeb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5188, sigma²=1.0824, nugget=0.6898\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5173, sigma²=1.0760, nugget=0.6901\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5176, sigma²=1.0753, nugget=0.6903\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5180, sigma²=1.0752, nugget=0.6903\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5183, sigma²=1.0751, nugget=0.6904\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5191, sigma²=1.0750, nugget=0.6902\n",
- "[repeat 22] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5183, sigma²=1.0751, nugget=0.6904\n",
- "[repeat 22] done → repeat_22_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|-----------|\n",
- "| OLS_wendland | -- | 229.026 | 15.1336 | 2.0445 | -164.14 |\n",
- "| OLS_sphere | 200 | 0.7855 | 0.8863 | 0.5153 | 0.4336 |\n",
- "| DeepKriging_wendland | -- | 1.1287 | 1.0624 | 0.6831 | 0.1862 |\n",
- "| DeepKriging_mrts | 200 | 0.8718 | 0.9337 | 0.5544 | 0.3714 |\n",
- "| DeepKriging_sphere | 10 | 0.913 | 0.9555 | 0.4724 | 0.3417 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.6827 | 0.8262 | 0.4355 | 0.5078 |\n",
- "| UniversalKriging | 200 | 0.6777 | 0.8232 | 0.4388 | 0.5113 |\n",
- "Repeat 23/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 24/50 seed=73\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:41:33.092406: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774831293.102003 2823306 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774831293.105141 2823306 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774831293.112062 2823306 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774831293.112094 2823306 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774831293.112096 2823306 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774831293.112097 2823306 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] seed=73\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=73 ===\n",
- "z mean: 1.4257 (±0.0303), Var: 2.2941, Range: [-4.6441, 21.4465]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774831314.107037 2823306 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774831315.662044 2823671 service.cc:152] XLA service 0x7ef820005f20 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774831315.662071 2823671 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774831315.879048 2823671 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774831317.560523 2823671 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efa48626170> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efa405c6b90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9995, sigma²=1.8693, nugget=1.1073\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9952, sigma²=1.8535, nugget=1.1079\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9979, sigma²=1.8554, nugget=1.1080\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9989, sigma²=1.8553, nugget=1.1081\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9993, sigma²=1.8555, nugget=1.1081\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=1.0007, sigma²=1.8564, nugget=1.1077\n",
- "[repeat 23] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.9995, sigma²=1.8693, nugget=1.1073\n",
- "[repeat 23] done → repeat_23_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 2.6676 | 1.6333 | 0.8979 | 0.0888 |\n",
- "| OLS_sphere | 150 | 1.7717 | 1.3311 | 0.5906 | 0.3948 |\n",
- "| DeepKriging_wendland | -- | 2.5599 | 1.6 | 0.8427 | 0.1256 |\n",
- "| DeepKriging_mrts | 10 | 1.9854 | 1.409 | 0.6208 | 0.3218 |\n",
- "| DeepKriging_sphere | 10 | 1.7585 | 1.3261 | 0.502 | 0.3994 |\n",
- "| DeepKriging_sphere_Huber | 100 | 1.8602 | 1.3639 | 0.4931 | 0.3646 |\n",
- "| UniversalKriging | 10 | 1.7601 | 1.3267 | 0.5463 | 0.3988 |\n",
- "Repeat 24/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 25/50 seed=74\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:48:47.042821: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774831727.053330 3152639 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774831727.056210 3152639 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774831727.064056 3152639 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774831727.064087 3152639 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774831727.064089 3152639 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774831727.064090 3152639 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] seed=74\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=74 ===\n",
- "z mean: 1.2394 (±0.0324), Var: 2.6258, Range: [-6.7841, 17.8660]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774831748.499638 3152639 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774831750.073373 3153007 service.cc:152] XLA service 0x7efdc0018430 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774831750.073399 3153007 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774831750.294200 3153007 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774831752.001459 3153007 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efff462e4d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7effec717ac0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8681, sigma²=1.3992, nugget=0.9990\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8692, sigma²=1.3956, nugget=0.9994\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8700, sigma²=1.3949, nugget=0.9995\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8704, sigma²=1.3947, nugget=0.9995\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8708, sigma²=1.3946, nugget=0.9995\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8714, sigma²=1.3946, nugget=0.9992\n",
- "[repeat 24] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.8714, sigma²=1.3946, nugget=0.9992\n",
- "[repeat 24] done → repeat_24_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|----------|\n",
- "| OLS_wendland | -- | 172.195 | 13.1223 | 1.8249 | -45.4064 |\n",
- "| OLS_sphere | 150 | 2.1023 | 1.4499 | 0.6127 | 0.4334 |\n",
- "| DeepKriging_wendland | -- | 3.104 | 1.7618 | 0.8561 | 0.1635 |\n",
- "| DeepKriging_mrts | 10 | 2.2341 | 1.4947 | 0.5849 | 0.3979 |\n",
- "| DeepKriging_sphere | 10 | 2.2317 | 1.4939 | 0.5784 | 0.3986 |\n",
- "| DeepKriging_sphere_Huber | 10 | 2.221 | 1.4903 | 0.533 | 0.4014 |\n",
- "| UniversalKriging | 1000 | 2.1426 | 1.4637 | 0.573 | 0.4226 |\n",
- "Repeat 25/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 26/50 seed=75\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 08:55:53.355769: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774832153.365987 3469690 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774832153.369494 3469690 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774832153.377335 3469690 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774832153.377367 3469690 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774832153.377369 3469690 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774832153.377370 3469690 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] seed=75\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=75 ===\n",
- "z mean: 1.2844 (±0.0278), Var: 1.9269, Range: [-5.5064, 20.7738]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774832174.596492 3469690 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774832176.129690 3470056 service.cc:152] XLA service 0x7f746c017c40 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774832176.129715 3470056 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774832176.352188 3470056 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774832178.033711 3470056 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7698615900> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f7690712ef0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3319, sigma²=1.1902, nugget=0.7979\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3299, sigma²=1.1821, nugget=0.7981\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3301, sigma²=1.1804, nugget=0.7985\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3304, sigma²=1.1797, nugget=0.7988\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3305, sigma²=1.1795, nugget=0.7989\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3310, sigma²=1.1789, nugget=0.7988\n",
- "[repeat 25] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3299, sigma²=1.1821, nugget=0.7981\n",
- "[repeat 25] done → repeat_25_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.8665 | 0.9309 | 0.6735 | 0.0326 |\n",
- "| OLS_sphere | 150 | 0.3214 | 0.5669 | 0.4009 | 0.6412 |\n",
- "| DeepKriging_wendland | -- | 0.5417 | 0.736 | 0.5408 | 0.3952 |\n",
- "| DeepKriging_mrts | 200 | 0.4197 | 0.6478 | 0.4579 | 0.5314 |\n",
- "| DeepKriging_sphere | 10 | 0.4006 | 0.6329 | 0.4085 | 0.5527 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.2706 | 0.5202 | 0.3394 | 0.6979 |\n",
- "| UniversalKriging | 50 | 0.2705 | 0.5201 | 0.3568 | 0.698 |\n",
- "Repeat 26/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 27/50 seed=76\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 09:03:05.565819: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774832585.575527 3810279 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774832585.579422 3810279 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774832585.586780 3810279 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774832585.586805 3810279 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774832585.586807 3810279 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774832585.586808 3810279 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] seed=76\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=76 ===\n",
- "z mean: 1.0260 (±0.0250), Var: 1.5635, Range: [-5.0842, 16.1110]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774832606.708349 3810279 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774832608.245958 3810647 service.cc:152] XLA service 0x55b58c148080 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774832608.245993 3810647 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774832608.462334 3810647 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774832610.153676 3810647 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe2ac2ddab0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe29c785ea0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4249, sigma²=0.8532, nugget=0.6023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4225, sigma²=0.8453, nugget=0.6027\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4228, sigma²=0.8444, nugget=0.6029\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4231, sigma²=0.8441, nugget=0.6030\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4232, sigma²=0.8440, nugget=0.6031\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4237, sigma²=0.8437, nugget=0.6028\n",
- "[repeat 26] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4225, sigma²=0.8453, nugget=0.6027\n",
- "[repeat 26] done → repeat_26_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.4237 | 1.1932 | 0.8089 | 0.0672 |\n",
- "| OLS_sphere | 150 | 0.8917 | 0.9443 | 0.519 | 0.4158 |\n",
- "| DeepKriging_wendland | -- | 1.2213 | 1.1051 | 0.6778 | 0.1998 |\n",
- "| DeepKriging_mrts | 10 | 0.9783 | 0.9891 | 0.5438 | 0.359 |\n",
- "| DeepKriging_sphere | 10 | 0.9625 | 0.981 | 0.4609 | 0.3694 |\n",
- "| DeepKriging_sphere_Huber | 50 | 1.1052 | 1.0513 | 0.5046 | 0.2759 |\n",
- "| UniversalKriging | 50 | 0.8934 | 0.9452 | 0.4645 | 0.4147 |\n",
- "Repeat 27/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 28/50 seed=77\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 09:10:11.164811: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774833011.177416 4112512 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774833011.180536 4112512 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774833011.188666 4112512 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833011.188708 4112512 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833011.188710 4112512 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833011.188711 4112512 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] seed=77\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=77 ===\n",
- "z mean: 0.8856 (±0.0303), Var: 2.2902, Range: [-10.3937, 15.0364]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833032.208062 4112512 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774833033.728216 4112877 service.cc:152] XLA service 0x7f14ac00a980 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774833033.728274 4112877 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833033.950705 4112877 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833035.612371 4112877 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f16c41768c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1694621870> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4831, sigma²=1.5411, nugget=0.7270\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4819, sigma²=1.5322, nugget=0.7277\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4827, sigma²=1.5309, nugget=0.7281\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4833, sigma²=1.5305, nugget=0.7284\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4836, sigma²=1.5304, nugget=0.7285\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4843, sigma²=1.5299, nugget=0.7283\n",
- "[repeat 27] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4843, sigma²=1.5299, nugget=0.7283\n",
- "[repeat 27] done → repeat_27_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 4.7376 | 2.1766 | 0.9186 | -1.6432 |\n",
- "| OLS_sphere | 150 | 0.8121 | 0.9012 | 0.4417 | 0.5469 |\n",
- "| DeepKriging_wendland | -- | 1.1573 | 1.0758 | 0.6693 | 0.3543 |\n",
- "| DeepKriging_mrts | 50 | 0.9091 | 0.9535 | 0.4678 | 0.4928 |\n",
- "| DeepKriging_sphere | 10 | 0.8288 | 0.9104 | 0.4306 | 0.5376 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.67 | 0.8186 | 0.3417 | 0.6262 |\n",
- "| UniversalKriging | 1000 | 0.7567 | 0.8699 | 0.3724 | 0.5778 |\n",
- "Repeat 28/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 29/50 seed=78\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 09:17:35.673379: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774833455.683254 259979 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774833455.685956 259979 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774833455.693230 259979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833455.693265 259979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833455.693267 259979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833455.693268 259979 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] seed=78\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=78 ===\n",
- "z mean: 1.4263 (±0.0282), Var: 1.9913, Range: [-3.2676, 17.7398]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833477.192163 259979 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774833478.719688 260341 service.cc:152] XLA service 0x5557d9221c50 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774833478.719722 260341 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833478.934752 260341 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833480.619407 260341 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f988474acb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9884166cb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6619, sigma²=1.6723, nugget=0.8906\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6626, sigma²=1.6633, nugget=0.8918\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6642, sigma²=1.6643, nugget=0.8921\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6659, sigma²=1.6657, nugget=0.8923\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6665, sigma²=1.6662, nugget=0.8924\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6628, sigma²=1.6587, nugget=0.8916\n",
- "[repeat 28] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6665, sigma²=1.6662, nugget=0.8924\n",
- "[repeat 28] done → repeat_28_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.8495 | 1.36 | 0.8699 | -0.0271 |\n",
- "| OLS_sphere | 150 | 0.999 | 0.9995 | 0.4922 | 0.4452 |\n",
- "| DeepKriging_wendland | -- | 1.6302 | 1.2768 | 0.8215 | 0.0947 |\n",
- "| DeepKriging_mrts | 10 | 1.0384 | 1.019 | 0.5024 | 0.4233 |\n",
- "| DeepKriging_sphere | 10 | 0.9317 | 0.9652 | 0.4381 | 0.4826 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.9616 | 0.9806 | 0.4231 | 0.466 |\n",
- "| UniversalKriging | 200 | 0.9491 | 0.9742 | 0.4528 | 0.4729 |\n",
- "Repeat 29/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 30/50 seed=79\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 09:24:53.929495: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774833893.939152 583212 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774833893.942182 583212 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774833893.949434 583212 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833893.949459 583212 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833893.949462 583212 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774833893.949462 583212 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] seed=79\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=79 ===\n",
- "z mean: 1.1534 (±0.0258), Var: 1.6607, Range: [-3.9375, 16.8152]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833914.831305 583212 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774833916.368840 583571 service.cc:152] XLA service 0x7fc1340066a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774833916.368866 583571 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833916.581908 583571 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774833918.253843 583571 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc36073a200> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc360133910> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5505, sigma²=1.1395, nugget=0.8190\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5441, sigma²=1.1206, nugget=0.8200\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5345, sigma²=1.1080, nugget=0.8190\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5342, sigma²=1.1068, nugget=0.8191\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5342, sigma²=1.1064, nugget=0.8191\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5367, sigma²=1.1091, nugget=0.8190\n",
- "[repeat 29] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5367, sigma²=1.1091, nugget=0.8190\n",
- "[repeat 29] done → repeat_29_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|----------|---------|--------|----------|\n",
- "| OLS_wendland | -- | 102.971 | 10.1474 | 1.9487 | -62.743 |\n",
- "| OLS_sphere | 150 | 0.8446 | 0.919 | 0.5464 | 0.4772 |\n",
- "| DeepKriging_wendland | -- | 1.3581 | 1.1654 | 0.7388 | 0.1593 |\n",
- "| DeepKriging_mrts | 10 | 0.8882 | 0.9424 | 0.5146 | 0.4502 |\n",
- "| DeepKriging_sphere | 10 | 0.7932 | 0.8906 | 0.4681 | 0.509 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.7254 | 0.8517 | 0.427 | 0.551 |\n",
- "| UniversalKriging | 1000 | 0.7942 | 0.8912 | 0.4814 | 0.5084 |\n",
- "Repeat 30/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 31/50 seed=80\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 09:32:01.947822: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774834321.958491 903784 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774834321.961271 903784 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774834321.968789 903784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774834321.968825 903784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774834321.968827 903784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774834321.968828 903784 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] seed=80\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=80 ===\n",
- "z mean: 0.7231 (±0.0249), Var: 1.5505, Range: [-7.4918, 18.1497]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774834342.815247 903784 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774834344.373637 904144 service.cc:152] XLA service 0x7fb1d0006a50 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774834344.373663 904144 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774834344.589801 904144 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774834346.250796 904144 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fb3fc55a830> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fb3f433a710> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_mrts best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4823, sigma²=1.0164, nugget=0.5557\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4791, sigma²=1.0062, nugget=0.5561\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4793, sigma²=1.0051, nugget=0.5562\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4795, sigma²=1.0048, nugget=0.5563\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4797, sigma²=1.0047, nugget=0.5563\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4803, sigma²=1.0046, nugget=0.5562\n",
- "[repeat 30] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4797, sigma²=1.0047, nugget=0.5563\n",
- "[repeat 30] done → repeat_30_GP_outliers_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 2.4898 | 1.5779 | 0.7738 | -1.6832 |\n",
- "| OLS_sphere | 150 | 0.3985 | 0.6313 | 0.4322 | 0.5705 |\n",
- "| DeepKriging_wendland | -- | 0.6053 | 0.778 | 0.5674 | 0.3477 |\n",
- "| DeepKriging_mrts | 100 | 0.4687 | 0.6846 | 0.4846 | 0.4949 |\n",
- "| DeepKriging_sphere | 100 | 0.6894 | 0.8303 | 0.5455 | 0.257 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.4057 | 0.6369 | 0.3777 | 0.5628 |\n",
- "| UniversalKriging | 200 | 0.3364 | 0.58 | 0.3685 | 0.6375 |\n",
- "Repeat 31/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 32/50 seed=81\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-30 09:38:55.453038: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774834735.463625 1200394 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774834735.466405 1200394 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774834735.473970 1200394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774834735.474008 1200394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774834735.474010 1200394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774834735.474011 1200394 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] seed=81\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP + outliers (2.5% x5) | seed=81 ===\n",
- "z mean: 0.9632 (±0.0265), Var: 1.7504, Range: [-4.2780, 14.4876]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774834756.386023 1200394 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774834757.907275 1200760 service.cc:152] XLA service 0x7f5920009070 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774834757.907302 1200760 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774834758.122515 1200760 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774834759.797221 1200760 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f5b58611fc0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f5b50717c70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_mrts best order: 10\n"
- ]
- }
- ],
- "source": [
- "import json, subprocess, sys\n",
- "\n",
- "CHECKPOINT_PATH = \"checkpoint_GP_outliers.json\"\n",
- "SCRIPT_PATH = os.path.join(os.getcwd(), \"run_single_repeat_GP_outliers.py\")\n",
- "PYTHON_EXE = sys.executable\n",
- "\n",
- "if os.path.exists(CHECKPOINT_PATH):\n",
- " with open(CHECKPOINT_PATH) as f:\n",
- " ckpt = json.load(f)\n",
- " experiment_results = ckpt[\"experiment_results\"]\n",
- " completed_repeats = set(ckpt[\"completed_repeats\"])\n",
- " print(f\"Resuming: {len(completed_repeats)}/{repeat_experiment} repeats already done.\")\n",
- "else:\n",
- " experiment_results = {\n",
- " m: {\"MSPE\": [], \"RMSE\": [], \"MAE\": [], \"R2\": []}\n",
- " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
- " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
- " }\n",
- " completed_repeats = set()\n",
- " print(\"Starting fresh.\")\n",
- "\n",
- "for repeat in range(repeat_experiment):\n",
- "\n",
- " if repeat in completed_repeats:\n",
- " print(f\"Skip repeat {repeat+1}/{repeat_experiment} (checkpoint)\")\n",
- " continue\n",
- "\n",
- " print(f\"\\n\" + \"=\"*70)\n",
- " print(f\"Repeat {repeat+1}/{repeat_experiment} seed={seed+repeat}\")\n",
- " print(\"=\"*70)\n",
- "\n",
- " out_json = f\"repeat_{repeat}_GP_outliers_results.json\"\n",
- "\n",
- " try:\n",
- " result = subprocess.run(\n",
- " [PYTHON_EXE, SCRIPT_PATH, str(repeat), str(seed), out_json],\n",
- " capture_output=False,\n",
- " check=True,\n",
- " timeout=7200,\n",
- " )\n",
- " except subprocess.CalledProcessError as e:\n",
- " print(f\"Repeat {repeat+1} subprocess exited with code {e.returncode}. Skipping.\")\n",
- " continue\n",
- " except subprocess.TimeoutExpired:\n",
- " print(f\"Repeat {repeat+1} timed out. Skipping.\")\n",
- " continue\n",
- " except Exception as e:\n",
- " print(f\"Repeat {repeat+1} failed: {e}. Skipping.\")\n",
- " continue\n",
- "\n",
- " if not os.path.exists(out_json):\n",
- " print(f\"No output JSON for repeat {repeat+1}. Skipping.\")\n",
- " continue\n",
- "\n",
- " with open(out_json) as f:\n",
- " res = json.load(f)\n",
- " os.remove(out_json)\n",
- "\n",
- " best_orders = res[\"best_orders\"]\n",
- " metrics_map = res[\"metrics\"]\n",
- "\n",
- " table_rows = []\n",
- " for m in [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
- " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]:\n",
- " met = metrics_map[m]\n",
- " table_rows.append({\n",
- " \"Model\": m, \"Param\": best_orders.get(m, \"--\"),\n",
- " \"MSPE\": f\"{met['MSPE']:.4f}\", \"RMSE\": f\"{met['RMSE']:.4f}\",\n",
- " \"MAE\": f\"{met['MAE']:.4f}\", \"R2\": f\"{met['R2']:.4f}\",\n",
- " })\n",
- " import pandas as _pd\n",
- " print(\"\\n\", _pd.DataFrame(table_rows).to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
- "\n",
- " for m in experiment_results:\n",
- " experiment_results[m][\"MSPE\"].append(metrics_map[m][\"MSPE\"])\n",
- " experiment_results[m][\"RMSE\"].append(metrics_map[m][\"RMSE\"])\n",
- " experiment_results[m][\"MAE\"].append(metrics_map[m][\"MAE\"])\n",
- " experiment_results[m][\"R2\"].append(metrics_map[m][\"R2\"])\n",
- "\n",
- " completed_repeats.add(repeat)\n",
- " with open(CHECKPOINT_PATH, \"w\") as f:\n",
- " json.dump({\"experiment_results\": experiment_results,\n",
- " \"completed_repeats\": list(completed_repeats)}, f)\n",
- "\n",
- " print(f\"Repeat {repeat+1}/{repeat_experiment} done — checkpoint saved.\")\n",
- "\n",
- "print(f\"\\nAll done: {len(completed_repeats)}/{repeat_experiment} repeats completed.\")\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "summary_GP_outliers",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-26T08:31:31.812514Z",
- "iopub.status.busy": "2026-03-26T08:31:31.812293Z",
- "iopub.status.idle": "2026-03-26T08:31:31.817266Z",
- "shell.execute_reply": "2026-03-26T08:31:31.816839Z"
- },
- "papermill": {
- "duration": null,
- "end_time": null,
- "exception": null,
- "start_time": null,
- "status": "pending"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "import json, numpy as np, pandas as pd\n",
- "\n",
- "MODELS = [\"OLS_wendland\", \"OLS_sphere\", \"DeepKriging_wendland\", \"DeepKriging_mrts\",\n",
- " \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\", \"UniversalKriging\"]\n",
- "\n",
- "with open(\"checkpoint_GP_outliers.json\") as f:\n",
- " ckpt = json.load(f)\n",
- "results = ckpt[\"experiment_results\"]\n",
- "n = len(next(iter(results.values()))[\"MSPE\"])\n",
- "\n",
- "print(\"\\n\" + \"=\"*80)\n",
- "print(f\"Summary — {n} Repeats\")\n",
- "print(\" Scenario: GP + Outliers (2.5% x5)\")\n",
- "print(\"=\"*80)\n",
- "\n",
- "rows = []\n",
- "for m in MODELS:\n",
- " vals = results[m]\n",
- " rows.append({\n",
- " \"Model\": m,\n",
- " \"N\": len(vals[\"MSPE\"]),\n",
- " \"MSPE (mean±std)\": f\"{np.mean(vals['MSPE']):.2f}±{np.std(vals['MSPE']):.2f}\",\n",
- " \"RMSE (mean±std)\": f\"{np.mean(vals['RMSE']):.2f}±{np.std(vals['RMSE']):.2f}\",\n",
- " \"MAE (mean±std)\": f\"{np.mean(vals['MAE']):.2f}±{np.std(vals['MAE']):.2f}\",\n",
- " \"R2 (mean±std)\": f\"{np.mean(vals['R2']):.3f}±{np.std(vals['R2']):.3f}\",\n",
- " })\n",
- "\n",
- "df = pd.DataFrame(rows)\n",
- "print(\"\\n\", df.to_markdown(index=False, tablefmt=\"github\"), sep=\"\")\n",
- "\n",
- "best = min(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0]))\n",
- "print(f\"\\nBest Model: {best['Model']} RMSE={best['RMSE (mean±std)']}\")\n",
- "\n",
- "print(\"\\n── Ranking by mean RMSE ──\")\n",
- "for i, r in enumerate(sorted(rows, key=lambda r: float(r[\"RMSE (mean±std)\"].split(\"±\")[0])), 1):\n",
- " print(f\" {i}. {r['Model']:<35} RMSE={r['RMSE (mean±std)']}\")\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "air-pollution",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.13"
- },
- "papermill": {
- "default_parameters": {},
- "duration": null,
- "end_time": null,
- "environment_variables": {},
- "exception": null,
- "input_path": "simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps.ipynb",
- "output_path": "simulation_spherical_nn_sim_RSHC_c15_GP_outliers_50reps_out.ipynb",
- "parameters": {},
- "start_time": "2026-03-29T21:57:08.179540",
- "version": "2.6.0"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
\ No newline at end of file
diff --git a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb b/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb
deleted file mode 100644
index 033bc4b..0000000
--- a/notebook/simulation/Rerun/simulation_spherical_nn_sim_RSHC_c15_GP_pure_50reps_out.ipynb
+++ /dev/null
@@ -1,10521 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "d1cde2eb",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:04.614551Z",
- "iopub.status.busy": "2026-03-29T08:46:04.614266Z",
- "iopub.status.idle": "2026-03-29T08:46:04.621475Z",
- "shell.execute_reply": "2026-03-29T08:46:04.619925Z"
- },
- "papermill": {
- "duration": 0.01126,
- "end_time": "2026-03-29T08:46:04.622226",
- "exception": false,
- "start_time": "2026-03-29T08:46:04.610966",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Project root added: /home/hhuscout/myproject/deepkriging-sphere\n"
- ]
- }
- ],
- "source": [
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "import sys\n",
- "import os\n",
- "project_root = os.path.abspath(os.path.join(os.getcwd(), \"../../..\"))\n",
- "if project_root not in sys.path:\n",
- " sys.path.append(project_root)\n",
- "print(f\"Project root added: {project_root}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "8890884f",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:04.627193Z",
- "iopub.status.busy": "2026-03-29T08:46:04.626976Z",
- "iopub.status.idle": "2026-03-29T08:46:06.991082Z",
- "shell.execute_reply": "2026-03-29T08:46:06.990032Z"
- },
- "papermill": {
- "duration": 2.367708,
- "end_time": "2026-03-29T08:46:06.991680",
- "exception": false,
- "start_time": "2026-03-29T08:46:04.623972",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 16:46:05.453896: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774773965.467374 661919 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774773965.470433 661919 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774773965.478614 661919 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774773965.478635 661919 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774773965.478636 661919 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774773965.478637 661919 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- }
- ],
- "source": [
- "import multiprocessing as mp\n",
- "if mp.get_start_method(allow_none=True) is None:\n",
- " mp.set_start_method('spawn')\n",
- "\n",
- "import warnings\n",
- "warnings.filterwarnings('ignore', category=UserWarning)\n",
- "warnings.filterwarnings('ignore', message='.*input_shape.*')\n",
- "warnings.filterwarnings('ignore', message='.*structure of.*inputs.*')\n",
- "\n",
- "import os, time, gc\n",
- "from types import SimpleNamespace\n",
- "\n",
- "import numpy as np\n",
- "import pandas as pd\n",
- "import time as time_module\n",
- "from scipy.stats import t\n",
- "from scipy.special import kv, gamma\n",
- "\n",
- "import jax, jax.numpy as jnp\n",
- "\n",
- "import tensorflow as tf\n",
- "from tensorflow.keras import mixed_precision\n",
- "from tensorflow.keras.optimizers import Adam\n",
- "from tensorflow.keras.losses import Huber\n",
- "from tensorflow.keras import backend as K\n",
- "\n",
- "from sklearn.model_selection import train_test_split\n",
- "from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\n",
- "from sklearn.linear_model import LinearRegression, Ridge\n",
- "from sklearn.preprocessing import OneHotEncoder\n",
- "\n",
- "import optuna\n",
- "import plotly.io as pio\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "import matplotlib.colors as mcolors\n",
- "import cartopy.crs as ccrs\n",
- "import cartopy.feature as cfeature\n",
- "\n",
- "import random"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "46d6d1ba",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:06.997506Z",
- "iopub.status.busy": "2026-03-29T08:46:06.997123Z",
- "iopub.status.idle": "2026-03-29T08:46:08.180611Z",
- "shell.execute_reply": "2026-03-29T08:46:08.179450Z"
- },
- "papermill": {
- "duration": 1.188221,
- "end_time": "2026-03-29T08:46:08.181390",
- "exception": false,
- "start_time": "2026-03-29T08:46:06.993169",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "np_f32 = np.float32\n",
- "jnp_f32 = jnp.float32\n",
- "dtype_basis = np.float32\n",
- "\n",
- "jax.config.update(\"jax_enable_x64\", False)\n",
- "\n",
- "pio.renderers.default = \"notebook\"\n",
- "warnings.filterwarnings(\"ignore\", category=UserWarning)\n",
- "\n",
- "os.environ.update({\"TF_CPP_MIN_LOG_LEVEL\": \"2\"})\n",
- "optuna.logging.set_verbosity(optuna.logging.WARNING)\n",
- "\n",
- "os.environ.setdefault(\"OMP_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"MKL_NUM_THREADS\", \"12\")\n",
- "os.environ.setdefault(\"OPENBLAS_NUM_THREADS\", \"12\")\n",
- "\n",
- "def init_hardware(dtype: str = \"float32\"):\n",
- " gpus = tf.config.list_physical_devices(\"GPU\")\n",
- " for g in gpus:\n",
- " tf.config.experimental.set_memory_growth(g, True)\n",
- " strategy = (tf.distribute.MirroredStrategy() if len(gpus) > 1 else tf.distribute.get_strategy())\n",
- " mixed_precision.set_global_policy(dtype)\n",
- " return strategy\n",
- "\n",
- "strategy = init_hardware(dtype=\"float32\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "8dd094a7",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:08.190034Z",
- "iopub.status.busy": "2026-03-29T08:46:08.189238Z",
- "iopub.status.idle": "2026-03-29T08:46:08.194114Z",
- "shell.execute_reply": "2026-03-29T08:46:08.192960Z"
- },
- "papermill": {
- "duration": 0.011992,
- "end_time": "2026-03-29T08:46:08.194962",
- "exception": false,
- "start_time": "2026-03-29T08:46:08.182970",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "from IPython.display import display, Javascript\n",
- "\n",
- "def save_notebook():\n",
- " display(Javascript('IPython.notebook.save_checkpoint()'))\n",
- " current_time = time.strftime(\"%Y-%m-%d %H:%M:%S\", time.localtime())\n",
- " print(f\"Notebook saved at {current_time}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "f0aafba7",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:08.199095Z",
- "iopub.status.busy": "2026-03-29T08:46:08.198877Z",
- "iopub.status.idle": "2026-03-29T08:46:22.428931Z",
- "shell.execute_reply": "2026-03-29T08:46:22.427976Z"
- },
- "papermill": {
- "duration": 14.233113,
- "end_time": "2026-03-29T08:46:22.429651",
- "exception": false,
- "start_time": "2026-03-29T08:46:08.196538",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- }
- ],
- "source": [
- "from spherical_deepkriging.basis_functions.wendland.wenland import wendland\n",
- "from spherical_deepkriging.basis_functions.mrts.mrts import mrts0\n",
- "\n",
- "from spherical_deepkriging.models.deep_kriging import DeepKrigingTrainer, DeepKrigingDefaultTrainer\n",
- "from spherical_deepkriging.configs import DeepKrigingModelConfig, DeepKrigingDefaultConfig\n",
- "from spherical_deepkriging.models.universal_kriging import UniversalKriging\n",
- "\n",
- "from rpy2.robjects.conversion import localconverter\n",
- "from spherical_deepkriging.basis_functions.mrts_sphere.sphere import mrts_sphere, numpy2ri_converter"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "32986e25",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:22.434807Z",
- "iopub.status.busy": "2026-03-29T08:46:22.434510Z",
- "iopub.status.idle": "2026-03-29T08:46:22.440245Z",
- "shell.execute_reply": "2026-03-29T08:46:22.439557Z"
- },
- "papermill": {
- "duration": 0.009793,
- "end_time": "2026-03-29T08:46:22.440947",
- "exception": false,
- "start_time": "2026-03-29T08:46:22.431154",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import pandas as pd\n",
- "import gc\n",
- "\n",
- "def _gp_draw(rng, num_sample):\n",
- " \"\"\"Sample one GP draw on the sphere with stationary exp covariance (rho=0.5).\"\"\"\n",
- " phi = rng.uniform(0, 2 * np.pi, num_sample)\n",
- " theta = np.arccos(rng.uniform(-1, 1, num_sample))\n",
- " lat_rad = np.pi/2 - theta\n",
- " lon_rad = phi - np.pi\n",
- "\n",
- " lat_deg = np.rad2deg(lat_rad).astype(np.float32)\n",
- " lon_deg = np.rad2deg(lon_rad).astype(np.float32)\n",
- "\n",
- " x_c = np.cos(lat_rad) * np.cos(lon_rad)\n",
- " y_c = np.cos(lat_rad) * np.sin(lon_rad)\n",
- " z_c = np.sin(lat_rad)\n",
- " coords = np.column_stack([x_c, y_c, z_c]).astype(np.float32)\n",
- "\n",
- " dist_matrix = np.sqrt(((coords[:, None, :] - coords[None, :, :]) ** 2).sum(axis=2))\n",
- " cov_matrix = np.exp(-dist_matrix / 0.5).astype(np.float32)\n",
- " cov_matrix += np.float32(1e-3) * np.eye(num_sample, dtype=np.float32)\n",
- "\n",
- " try:\n",
- " L = np.linalg.cholesky(cov_matrix)\n",
- " except np.linalg.LinAlgError:\n",
- " cov_matrix += np.float32(1e-2) * np.eye(num_sample, dtype=np.float32)\n",
- " try:\n",
- " L = np.linalg.cholesky(cov_matrix)\n",
- " except np.linalg.LinAlgError:\n",
- " ev, evec = np.linalg.eigh(cov_matrix)\n",
- " ev = np.maximum(ev, 1e-6)\n",
- " L = evec @ np.diag(np.sqrt(ev))\n",
- "\n",
- " y = (np.float32(1.0) + L @ rng.standard_normal(num_sample).astype(np.float32)).astype(np.float32)\n",
- "\n",
- " del dist_matrix, cov_matrix, L, x_c, y_c, z_c, coords\n",
- " gc.collect()\n",
- " return lat_deg, lon_deg, y\n",
- "\n",
- "def simulate_data(num_sample, seed):\n",
- " \"\"\"Stationary GP only — no added noise.\"\"\"\n",
- " rng = np.random.default_rng(seed)\n",
- " lat_deg, lon_deg, y = _gp_draw(rng, num_sample)\n",
- " z = y.copy()\n",
- " print(f\"\\n=== GP Pure (no noise) | seed={seed} ===\")\n",
- " print(f\"z mean: {np.mean(z):.4f} (\\u00b1{np.std(z)/np.sqrt(num_sample):.4f}), \"\n",
- " f\"Var: {np.var(z, ddof=0):.4f}, Range: [{np.min(z):.4f}, {np.max(z):.4f}]\")\n",
- " gc.collect()\n",
- " return pd.DataFrame({\"longitude\": lon_deg, \"latitude\": lat_deg, \"z\": z})\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "e5c1e9f9",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:22.444443Z",
- "iopub.status.busy": "2026-03-29T08:46:22.444309Z",
- "iopub.status.idle": "2026-03-29T08:46:22.451331Z",
- "shell.execute_reply": "2026-03-29T08:46:22.450644Z"
- },
- "papermill": {
- "duration": 0.009421,
- "end_time": "2026-03-29T08:46:22.451769",
- "exception": false,
- "start_time": "2026-03-29T08:46:22.442348",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def data_preprocessing(data_frame):\n",
- " data = data_frame.copy()\n",
- " numeric_cols = [\"longitude\", \"latitude\", \"z\"]\n",
- " data[numeric_cols] = data[numeric_cols].apply(pd.to_numeric, errors=\"coerce\")\n",
- " data.dropna(subset=numeric_cols, inplace=True)\n",
- " lon, lat = data[\"longitude\"].to_numpy(), data[\"latitude\"].to_numpy()\n",
- " norm_lon = (lon - lon.min()) / (lon.max() - lon.min())\n",
- " norm_lat = (lat - lat.min()) / (lat.max() - lat.min())\n",
- " location_data = np.column_stack([lat, lon]).astype(\"float32\")\n",
- " location_data_norm = np.column_stack([norm_lon, norm_lat]).astype(\"float32\")\n",
- " y_combined = data['z'].to_numpy().astype(\"float32\")[:, None]\n",
- " categorical_data = None\n",
- " return location_data, location_data_norm, categorical_data, y_combined\n",
- "\n",
- "\n",
- "def precompute_wendland(location, num_basis):\n",
- " parts = []\n",
- " for nb in num_basis:\n",
- " grid = np.column_stack(np.meshgrid(\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " np.linspace(0, 1, int(np.sqrt(nb)), dtype=np_f32),\n",
- " )).reshape(-1, 2).astype(np_f32)\n",
- " theta = np_f32(2.5)/np_f32(np.sqrt(nb))\n",
- " parts.append(wendland(location, grid, theta=theta, k=2))\n",
- " del grid\n",
- " gc.collect()\n",
- " return np.hstack(parts).astype(dtype_basis, copy=False)\n",
- "\n",
- "\n",
- "def precompute_max_mrts(distance_type, location_data, knot_num, order_max, knot=None):\n",
- " if knot is None:\n",
- " idx_knot = np.random.choice(location_data.shape[0], knot_num, replace=False)\n",
- " knot = location_data[idx_knot].astype(np_f32)\n",
- " else:\n",
- " idx_knot = None\n",
- "\n",
- " if distance_type == \"sphere\":\n",
- " with localconverter(numpy2ri_converter):\n",
- " res_r = mrts_sphere(knot, order_max, location_data.astype(np_f32))\n",
- " res_dict = dict(zip(res_r.names(), res_r))\n",
- " phi = np.asarray(res_dict[\"mrts\"], dtype=dtype_basis)\n",
- " else:\n",
- " phi = np.asarray(\n",
- " mrts0(jnp.asarray(knot, dtype=jnp_f32), k=order_max,\n",
- " x=jnp.asarray(location_data, dtype=jnp_f32)), dtype=dtype_basis\n",
- " )\n",
- " return phi, idx_knot, knot\n",
- "\n",
- "\n",
- "def prepare_data(categorical_data, basis, y_combined, seed, split_ratio=(0.8, 0.1, 0.1)):\n",
- " idx_all = np.arange(basis.shape[0])\n",
- " train_ratio, val_ratio, test_ratio = split_ratio\n",
- " train_val_x1, test_x1 = train_test_split(\n",
- " idx_all, train_size=train_ratio+val_ratio, random_state=seed)\n",
- " train_x1, val_x1 = train_test_split(\n",
- " train_val_x1, train_size=train_ratio/(train_ratio+val_ratio), random_state=seed)\n",
- " X_train_cont = basis[train_x1]\n",
- " X_val_cont = basis[val_x1]\n",
- " X_test_cont = basis[test_x1]\n",
- " y_train, y_val, y_test = y_combined[train_x1], y_combined[val_x1], y_combined[test_x1]\n",
- " flatten_y = lambda t: t.reshape(-1).astype(np_f32, copy=False)\n",
- " y_train_flat, y_val_flat, y_test_flat = map(flatten_y, [y_train, y_val, y_test])\n",
- " flatten_x = lambda c: c.reshape(-1, basis.shape[1]).astype(np_f32)\n",
- " X_train_flat, X_val_flat, X_test_flat = map(flatten_x, [X_train_cont, X_val_cont, X_test_cont])\n",
- " if categorical_data is None:\n",
- " zv = lambda n: np.zeros((n, 0), dtype=np_f32)\n",
- " X_train_cat, X_val_cat, X_test_cat = map(zv, [len(X_train_flat), len(X_val_flat), len(X_test_flat)])\n",
- " else:\n",
- " cat_train = categorical_data.reshape(-1, 1)[train_x1]\n",
- " cat_val = categorical_data.reshape(-1, 1)[val_x1]\n",
- " cat_test = categorical_data.reshape(-1, 1)[test_x1]\n",
- " OHE = OneHotEncoder(sparse_output=False, dtype=np_f32)\n",
- " X_train_cat = OHE.fit_transform(cat_train).astype(np_f32)\n",
- " X_val_cat = OHE.transform(cat_val).astype(np_f32)\n",
- " X_test_cat = OHE.transform(cat_test).astype(np_f32)\n",
- " return (X_train_flat, X_train_cat, y_train_flat,\n",
- " X_val_flat, X_val_cat, y_val_flat,\n",
- " X_test_flat, X_test_cat, y_test_flat)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "id": "6728b7b3",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:22.455268Z",
- "iopub.status.busy": "2026-03-29T08:46:22.455137Z",
- "iopub.status.idle": "2026-03-29T08:46:22.462594Z",
- "shell.execute_reply": "2026-03-29T08:46:22.461960Z"
- },
- "papermill": {
- "duration": 0.009844,
- "end_time": "2026-03-29T08:46:22.463071",
- "exception": false,
- "start_time": "2026-03-29T08:46:22.453227",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def cleanup_tf_session():\n",
- " K.clear_session()\n",
- " gc.collect()\n",
- " try:\n",
- " tf.keras.backend.clear_session()\n",
- " except:\n",
- " pass\n",
- "\n",
- "\n",
- "def train_eval(name_model, epochs, batch_size, loss, dropout_rate,\n",
- " X_train, X_train_cat, y_train,\n",
- " X_val, X_val_cat, y_val,\n",
- " X_test, X_test_cat, y_test):\n",
- "\n",
- " os.environ['PYTHONHASHSEED'] = str(seed)\n",
- " random.seed(seed)\n",
- " np.random.seed(seed)\n",
- " tf.random.set_seed(seed)\n",
- "\n",
- " if name_model in [\"OLS_wendland\", \"OLS_sphere\"]:\n",
- " t0 = time.time()\n",
- " model = LinearRegression().fit(X_train, y_train)\n",
- " val_loss = float(mean_squared_error(y_val, model.predict(X_val)))\n",
- " y_pred = model.predict(X_test).astype(np_f32).reshape(-1)\n",
- " training_time = time.time() - t0\n",
- " metrics = {\n",
- " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- " return metrics, model\n",
- "\n",
- " elif name_model == \"DeepKriging_wendland\":\n",
- " config = DeepKrigingDefaultConfig(\n",
- " input_dim=X_train.shape[1], output_type='continuous',\n",
- " optimizer=Adam(learning_rate=1e-3), loss=loss,\n",
- " epochs=epochs, batch_size=batch_size, verbose=0\n",
- " )\n",
- "\n",
- " elif name_model in [\"DeepKriging_mrts\", \"DeepKriging_sphere\", \"DeepKriging_sphere_Huber\"]:\n",
- " # clipnorm=1.0 prevents gradient explosion from heavy-tailed sphere basis columns\n",
- " _opt = Adam(learning_rate=5e-3, clipnorm=1.0) if \"sphere\" in name_model else Adam(learning_rate=5e-3)\n",
- " config = DeepKrigingModelConfig(\n",
- " input_dim=X_train.shape[1], output_type='continuous',\n",
- " hidden_layers=[1024, 512, 256, 128, 64], activation='relu',\n",
- " dropout_rate=dropout_rate, optimizer=_opt,\n",
- " loss=loss, metrics=['mae'], epochs=epochs, batch_size=batch_size,\n",
- " patience=40, verbose=0\n",
- " )\n",
- "\n",
- " t0 = time.time()\n",
- " with strategy.scope():\n",
- " model = DeepKrigingDefaultTrainer(config) if name_model == \"DeepKriging_wendland\" else DeepKrigingTrainer(config)\n",
- " model.model.compile(optimizer=config.optimizer, loss=config.loss, metrics=config.metrics)\n",
- "\n",
- " checkpoint_path = f\"best_{name_model}_{time.time_ns()}.weights.h5\"\n",
- " if name_model == \"DeepKriging_wendland\":\n",
- " callbacks = [tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0)]\n",
- " else:\n",
- " callbacks = [\n",
- " tf.keras.callbacks.ModelCheckpoint(\n",
- " filepath=checkpoint_path, monitor=\"val_loss\", mode=\"min\",\n",
- " save_best_only=True, save_weights_only=True, verbose=0),\n",
- " tf.keras.callbacks.EarlyStopping(\n",
- " monitor='val_loss', patience=config.patience,\n",
- " restore_best_weights=True, verbose=0),\n",
- " tf.keras.callbacks.ReduceLROnPlateau(\n",
- " monitor='val_loss', factor=0.5,\n",
- " patience=max(5, config.patience // 2), min_lr=1e-6, verbose=0)\n",
- " ]\n",
- "\n",
- " train_dataset = tf.data.Dataset.from_tensor_slices(\n",
- " ((X_train, X_train_cat), y_train)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- " val_dataset = tf.data.Dataset.from_tensor_slices(\n",
- " ((X_val, X_val_cat), y_val)).batch(config.batch_size).prefetch(tf.data.AUTOTUNE)\n",
- "\n",
- " history = model.model.fit(\n",
- " train_dataset, validation_data=val_dataset,\n",
- " epochs=epochs, callbacks=callbacks, verbose=0)\n",
- "\n",
- " if os.path.exists(checkpoint_path):\n",
- " model.model.load_weights(checkpoint_path)\n",
- " os.remove(checkpoint_path)\n",
- "\n",
- " val_loss = float(np.min(history.history[\"val_loss\"]))\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1).astype(np_f32)\n",
- " training_time = time.time() - t0\n",
- "\n",
- " metrics = {\n",
- " \"Model\": name_model, \"Val_loss\": float(val_loss),\n",
- " \"MSPE\": float(mean_squared_error(y_test, y_pred)),\n",
- " \"RMSE\": float(np.sqrt(float(mean_squared_error(y_test, y_pred)))),\n",
- " \"MAE\": float(mean_absolute_error(y_test, y_pred)),\n",
- " \"R2\": float(r2_score(y_test, y_pred)),\n",
- " \"Time\": float(training_time),\n",
- " }\n",
- " del train_dataset, val_dataset\n",
- " gc.collect()\n",
- " return metrics, model"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "ce398870",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:22.466449Z",
- "iopub.status.busy": "2026-03-29T08:46:22.466319Z",
- "iopub.status.idle": "2026-03-29T08:46:22.475274Z",
- "shell.execute_reply": "2026-03-29T08:46:22.474592Z"
- },
- "papermill": {
- "duration": 0.011671,
- "end_time": "2026-03-29T08:46:22.476037",
- "exception": false,
- "start_time": "2026-03-29T08:46:22.464366",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [],
- "source": [
- "def plot_robinson(ax, longitude, latitude, value, vmin, vmax, title):\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " sc = ax.scatter(longitude, latitude, c=value,\n",
- " cmap=mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256),\n",
- " s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(title, fontsize=10, pad=3)\n",
- " return sc\n",
- "\n",
- "\n",
- "def create_subplot_robinson(fig, position, locations, values, vmin, vmax, title,\n",
- " plot_type='prediction', cbar_label=None):\n",
- " ax = fig.add_subplot(*position, projection=ccrs.Robinson())\n",
- " cmap = (mcolors.LinearSegmentedColormap.from_list(\n",
- " \"blue-white-red\", [\"#2166AC\", \"#F7F7F7\", \"#B2182B\"], N=256)\n",
- " if plot_type == 'residual' else\n",
- " mcolors.LinearSegmentedColormap.from_list(\n",
- " \"teal-yellow-red\", [\"#00AAAA\", \"#FFFFBB\", \"#FF3333\"], N=256))\n",
- " ax.set_global()\n",
- " ax.add_feature(cfeature.LAND, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.OCEAN, facecolor=\"white\", alpha=0.3)\n",
- " ax.add_feature(cfeature.COASTLINE, linewidth=0.3, alpha=0.5)\n",
- " ax.add_feature(cfeature.BORDERS, linewidth=0.2, alpha=0.5)\n",
- " sc = ax.scatter(locations['longitude'], locations['latitude'], c=values,\n",
- " cmap=cmap, s=10, transform=ccrs.PlateCarree(), vmin=vmin, vmax=vmax)\n",
- " ax.set_title(title, fontsize=10, pad=3)\n",
- " cbar = plt.colorbar(sc, ax=ax, orientation='horizontal', fraction=0.046, pad=0.04, shrink=0.8)\n",
- " cbar.set_label(cbar_label or (\"Residual\" if plot_type == 'residual' else \"Prediction Value\"), fontsize=10)\n",
- " cbar.ax.tick_params(labelsize=7)\n",
- " return ax, sc\n",
- "\n",
- "\n",
- "def visualize_comparison(dataframe, models_dict, basis_dict, y_combined, seed,\n",
- " model_list=None, experiment_info=None):\n",
- " if model_list is None:\n",
- " model_list = ['DeepKriging_sphere', 'DeepKriging_sphere_Huber', 'UniversalKriging']\n",
- " idx_all = np.arange(len(y_combined))\n",
- " _, test_idx = train_test_split(idx_all, train_size=0.9, random_state=seed)\n",
- " y_test = y_combined[test_idx].reshape(-1)\n",
- " test_locations = dataframe.iloc[test_idx]\n",
- "\n",
- " predictions = {}\n",
- " for model_name in model_list:\n",
- " if model_name not in models_dict or models_dict[model_name] is None:\n",
- " continue\n",
- " model = models_dict[model_name]\n",
- " X_test = basis_dict[model_name][test_idx]\n",
- " if \"DeepKriging\" in model_name:\n",
- " X_test_cat = np.zeros((len(X_test), 0), dtype=np.float32)\n",
- " y_pred = model.model.predict([X_test, X_test_cat], verbose=0).reshape(-1)\n",
- " elif model_name == \"UniversalKriging\":\n",
- " coords_test = dataframe[['longitude', 'latitude']].iloc[test_idx].values.astype(np.float32)\n",
- " y_pred = model.predict(coords_test, X_test, return_centered=False)\n",
- " else:\n",
- " y_pred = model.predict(X_test).reshape(-1)\n",
- " mse = mean_squared_error(y_test, y_pred)\n",
- " rmse = np.sqrt(mse)\n",
- " order = models_dict.get(f\"{model_name}_order\", \"\")\n",
- " predictions[model_name] = {'values': y_pred, 'rmse': rmse, 'order': order}\n",
- "\n",
- " all_vals = np.concatenate([dataframe['z'].values] + [p['values'] for p in predictions.values()])\n",
- " vmin, vmax = np.percentile(all_vals, 2), np.percentile(all_vals, 98)\n",
- "\n",
- " fig1 = plt.figure(figsize=(16, 14))\n",
- " create_subplot_robinson(fig1, (2, 2, 1), dataframe, dataframe['z'], vmin, vmax,\n",
- " f'Real Data (n={len(dataframe)})')\n",
- " for i, mn in enumerate(model_list):\n",
- " if mn in predictions:\n",
- " p = predictions[mn]\n",
- " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
- " create_subplot_robinson(fig1, (2, 2, i+2), test_locations, p['values'], vmin, vmax,\n",
- " f\"{dn} (order={p['order']}) | RMSE={p['rmse']:.4f}\")\n",
- " plt.suptitle(\"Prediction Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
- " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
- " plt.show(); plt.close(fig1)\n",
- "\n",
- " fig2 = plt.figure(figsize=(18, 6))\n",
- " residuals_map = {k: (y_test - predictions[k]['values']) for k in model_list if k in predictions}\n",
- " vmax_abs = max(np.max(np.abs(r)) for r in residuals_map.values())\n",
- " for i, mn in enumerate(model_list):\n",
- " if mn in predictions:\n",
- " dn = mn.replace('DeepKriging_sphere','DK_S').replace('_Huber','_H').replace('UniversalKriging','UK')\n",
- " create_subplot_robinson(fig2, (1, 3, i+1), test_locations, residuals_map[mn],\n",
- " -vmax_abs, vmax_abs,\n",
- " f\"{dn} Residuals (order={predictions[mn]['order']})\",\n",
- " plot_type='residual')\n",
- " plt.suptitle(\"Residuals Comparison — Sphere ColNorm Fix\", fontsize=16, fontweight='bold', y=0.84)\n",
- " plt.tight_layout(rect=[0, 0.02, 1, 0.94])\n",
- " plt.show(); plt.close(fig2)\n",
- " return predictions, test_idx"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "7d38eb7c",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:22.479647Z",
- "iopub.status.busy": "2026-03-29T08:46:22.479504Z",
- "iopub.status.idle": "2026-03-29T08:46:22.482691Z",
- "shell.execute_reply": "2026-03-29T08:46:22.481969Z"
- },
- "papermill": {
- "duration": 0.005727,
- "end_time": "2026-03-29T08:46:22.483205",
- "exception": false,
- "start_time": "2026-03-29T08:46:22.477478",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\n",
- "dk_sphere candidates : [10, 50, 100, 150, 200, 1000] (restored to original)\n",
- "repeats : 50\n"
- ]
- }
- ],
- "source": [
- "# ── Experiment parameters ─────────────────────────────────────────────────────\n",
- "seed = 50\n",
- "epochs = 500\n",
- "batch_size = 256\n",
- "num_sample = 2500\n",
- "huber_delta = 1.345\n",
- "\n",
- "num_basis = [10**2, 19**2, 37**2]\n",
- "knot_num = 1400\n",
- "order_max = 1400\n",
- "\n",
- "# All models (including dk_sphere) use the same original candidates\n",
- "base_orders = [10, 50, 100, 150, 200, 1000]\n",
- "\n",
- "repeat_experiment = 50\n",
- "\n",
- "print(f\"FIX: max_Phi_sphere will be column-normalized to unit L2 norm after precompute\")\n",
- "print(f\"dk_sphere candidates : {base_orders} (restored to original)\")\n",
- "print(f\"repeats : {repeat_experiment}\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "id": "main_loop_GP_pure",
- "metadata": {
- "execution": {
- "iopub.execute_input": "2026-03-29T08:46:22.486586Z",
- "iopub.status.busy": "2026-03-29T08:46:22.486461Z",
- "iopub.status.idle": "2026-03-29T15:51:06.928030Z",
- "shell.execute_reply": "2026-03-29T15:51:06.927063Z"
- },
- "papermill": {
- "duration": 25484.444209,
- "end_time": "2026-03-29T15:51:06.928740",
- "exception": false,
- "start_time": "2026-03-29T08:46:22.484531",
- "status": "completed"
- },
- "tags": []
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Starting fresh.\n",
- "\n",
- "======================================================================\n",
- "Repeat 1/50 seed=50\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 16:46:23.195171: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774773983.204751 662188 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774773983.207539 662188 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774773983.215310 662188 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774773983.215365 662188 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774773983.215368 662188 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774773983.215369 662188 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] seed=50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=50 ===\n",
- "z mean: 1.2497 (±0.0184), Var: 0.8423, Range: [-1.1476, 3.7825]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774004.569106 662188 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774774006.161603 662555 service.cc:152] XLA service 0x7fe480007ad0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774774006.161628 662555 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774006.393939 662555 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774008.090474 662555 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe6b07b5c60> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe6b02ebd00> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 0] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2547, sigma²=0.4639, nugget=0.0052\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1776, sigma²=0.3381, nugget=0.0022\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1182, sigma²=0.2413, nugget=0.0009\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1573, sigma²=0.2936, nugget=0.0015\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1581, sigma²=0.2929, nugget=0.0014\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1538, sigma²=0.2840, nugget=0.0026\n",
- "[repeat 0] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1538, sigma²=0.2840, nugget=0.0026\n",
- "[repeat 0] done → repeat_0_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 20.2068 | 4.4952 | 0.915 | -23.128 |\n",
- "| OLS_sphere | 200 | 0.1209 | 0.3476 | 0.2809 | 0.8557 |\n",
- "| DeepKriging_wendland | -- | 0.4813 | 0.6937 | 0.5327 | 0.4253 |\n",
- "| DeepKriging_mrts | 10 | 0.1871 | 0.4326 | 0.35 | 0.7766 |\n",
- "| DeepKriging_sphere | 100 | 0.1078 | 0.3283 | 0.2557 | 0.8713 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.0975 | 0.3123 | 0.2464 | 0.8836 |\n",
- "| UniversalKriging | 1000 | 0.088 | 0.2966 | 0.238 | 0.8949 |\n",
- "Repeat 1/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 2/50 seed=51\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 16:54:02.406584: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774774442.416339 1010673 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774774442.419272 1010673 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774774442.427699 1010673 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774774442.427731 1010673 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774774442.427733 1010673 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774774442.427734 1010673 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] seed=51\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=51 ===\n",
- "z mean: 1.2151 (±0.0197), Var: 0.9714, Range: [-1.4772, 3.8871]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774463.596613 1010673 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774774465.169068 1011042 service.cc:152] XLA service 0x55833eb6e710 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774774465.169094 1011042 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774465.384598 1011042 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774467.060009 1011042 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f543427b250> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f542c4c6c20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 1] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4672, sigma²=0.7511, nugget=0.0120\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3373, sigma²=0.5701, nugget=0.0073\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2658, sigma²=0.4653, nugget=0.0048\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1688, sigma²=0.3159, nugget=0.0017\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0766, sigma²=0.1663, nugget=0.0003\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1114, sigma²=0.2072, nugget=0.0010\n",
- "[repeat 1] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3373, sigma²=0.5701, nugget=0.0073\n",
- "[repeat 1] done → repeat_1_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 48.9509 | 6.9965 | 1.1294 | -56.857 |\n",
- "| OLS_sphere | 200 | 0.1404 | 0.3747 | 0.2872 | 0.834 |\n",
- "| DeepKriging_wendland | -- | 0.4729 | 0.6877 | 0.5277 | 0.4411 |\n",
- "| DeepKriging_mrts | 10 | 0.1358 | 0.3685 | 0.2827 | 0.8395 |\n",
- "| DeepKriging_sphere | 100 | 0.092 | 0.3034 | 0.2434 | 0.8912 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.0924 | 0.304 | 0.2422 | 0.8907 |\n",
- "| UniversalKriging | 50 | 0.0833 | 0.2886 | 0.2284 | 0.9015 |\n",
- "Repeat 2/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 3/50 seed=52\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:02:19.916668: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774774939.926205 1418552 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774774939.928944 1418552 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774774939.936168 1418552 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774774939.936195 1418552 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774774939.936197 1418552 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774774939.936198 1418552 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] seed=52\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=52 ===\n",
- "z mean: 0.8541 (±0.0189), Var: 0.8885, Range: [-1.9188, 3.4146]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774961.006642 1418552 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774774962.566692 1418910 service.cc:152] XLA service 0x7f9284006d00 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774774962.566720 1418910 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774962.785016 1418910 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774774964.461172 1418910 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f949c28a8c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f948c4b6cb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_mrts best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 2] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3188, sigma²=0.5665, nugget=0.0075\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1444, sigma²=0.2991, nugget=0.0015\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2065, sigma²=0.3907, nugget=0.0025\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1324, sigma²=0.2653, nugget=0.0010\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1222, sigma²=0.2432, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1907, sigma²=0.3373, nugget=0.0020\n",
- "[repeat 2] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1907, sigma²=0.3373, nugget=0.0020\n",
- "[repeat 2] done → repeat_2_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7587 | 0.871 | 0.6497 | 0.1035 |\n",
- "| OLS_sphere | 200 | 0.1655 | 0.4068 | 0.3113 | 0.8044 |\n",
- "| DeepKriging_wendland | -- | 0.4842 | 0.6959 | 0.5465 | 0.4278 |\n",
- "| DeepKriging_mrts | 150 | 0.1059 | 0.3254 | 0.2572 | 0.8749 |\n",
- "| DeepKriging_sphere | 10 | 0.1013 | 0.3183 | 0.2522 | 0.8803 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.095 | 0.3083 | 0.2473 | 0.8877 |\n",
- "| UniversalKriging | 1000 | 0.0942 | 0.307 | 0.2382 | 0.8886 |\n",
- "Repeat 3/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 4/50 seed=53\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:11:24.193903: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774775484.203488 1872366 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774775484.206429 1872366 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774775484.213877 1872366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774775484.213917 1872366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774775484.213920 1872366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774775484.213921 1872366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] seed=53\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=53 ===\n",
- "z mean: 1.2692 (±0.0220), Var: 1.2065, Range: [-2.1653, 5.0074]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774775505.074801 1872366 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774775506.626347 1872709 service.cc:152] XLA service 0x7f0264008280 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774775506.626380 1872709 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774775506.844712 1872709 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774775508.548291 1872709 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f048867ed40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f04881cb010> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 3] DeepKriging_sphere_Huber best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2875, sigma²=0.4924, nugget=0.0075\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2220, sigma²=0.3993, nugget=0.0042\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1315, sigma²=0.2631, nugget=0.0015\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1197, sigma²=0.2404, nugget=0.0012\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1023, sigma²=0.2113, nugget=0.0009\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1932, sigma²=0.3376, nugget=0.0024\n",
- "[repeat 3] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1023, sigma²=0.2113, nugget=0.0009\n",
- "[repeat 3] done → repeat_3_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 2.944 | 1.7158 | 0.9175 | -1.4976 |\n",
- "| OLS_sphere | 200 | 0.1553 | 0.3941 | 0.3169 | 0.8682 |\n",
- "| DeepKriging_wendland | -- | 0.7059 | 0.8402 | 0.6386 | 0.4011 |\n",
- "| DeepKriging_mrts | 10 | 0.2184 | 0.4673 | 0.3857 | 0.8147 |\n",
- "| DeepKriging_sphere | 150 | 0.0934 | 0.3056 | 0.2393 | 0.9207 |\n",
- "| DeepKriging_sphere_Huber | 200 | 0.0918 | 0.303 | 0.235 | 0.9221 |\n",
- "| UniversalKriging | 200 | 0.0888 | 0.2981 | 0.2333 | 0.9246 |\n",
- "Repeat 4/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 5/50 seed=54\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:19:39.233574: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774775979.243698 2245251 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774775979.246962 2245251 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774775979.254556 2245251 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774775979.254586 2245251 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774775979.254588 2245251 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774775979.254589 2245251 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] seed=54\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=54 ===\n",
- "z mean: 1.4581 (±0.0154), Var: 0.5938, Range: [-1.2840, 3.8786]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776000.313773 2245251 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774776001.862547 2245597 service.cc:152] XLA service 0x7fc5d8006770 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774776001.862581 2245597 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776002.079234 2245597 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776003.747767 2245597 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc80c6f2710> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc80474aef0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 4] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2891, sigma²=0.5346, nugget=0.0037\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1473, sigma²=0.2978, nugget=0.0013\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0901, sigma²=0.2029, nugget=0.0005\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0607, sigma²=0.1539, nugget=0.0003\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0658, sigma²=0.1565, nugget=0.0003\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0419, sigma²=0.0723, nugget=0.0001\n",
- "[repeat 4] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2891, sigma²=0.5346, nugget=0.0037\n",
- "[repeat 4] done → repeat_4_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 0.7685 | 0.8767 | 0.5109 | -0.5114 |\n",
- "| OLS_sphere | 200 | 0.144 | 0.3794 | 0.3121 | 0.7169 |\n",
- "| DeepKriging_wendland | -- | 0.3808 | 0.6171 | 0.4422 | 0.2512 |\n",
- "| DeepKriging_mrts | 10 | 0.1318 | 0.363 | 0.2945 | 0.7408 |\n",
- "| DeepKriging_sphere | 100 | 0.0906 | 0.3011 | 0.2404 | 0.8217 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.0948 | 0.3079 | 0.2394 | 0.8136 |\n",
- "| UniversalKriging | 10 | 0.0802 | 0.2832 | 0.2244 | 0.8423 |\n",
- "Repeat 5/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 6/50 seed=55\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:28:13.909563: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774776493.919538 2631961 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774776493.922719 2631961 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774776493.929786 2631961 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774776493.929818 2631961 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774776493.929820 2631961 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774776493.929821 2631961 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] seed=55\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=55 ===\n",
- "z mean: 0.2781 (±0.0220), Var: 1.2151, Range: [-2.8579, 4.3154]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776514.666130 2631961 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774776516.217758 2632306 service.cc:152] XLA service 0x5591bdb14210 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774776516.217785 2632306 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776516.436036 2632306 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776518.105786 2632306 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fb334756ef0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fb33429b010> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 5] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5004, sigma²=0.9465, nugget=0.0075\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5016, sigma²=0.8940, nugget=0.0082\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5018, sigma²=0.8843, nugget=0.0082\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5021, sigma²=0.8775, nugget=0.0083\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5024, sigma²=0.8727, nugget=0.0083\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5030, sigma²=0.8619, nugget=0.0083\n",
- "[repeat 5] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5030, sigma²=0.8619, nugget=0.0083\n",
- "[repeat 5] done → repeat_5_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 5.915 | 2.4321 | 0.7927 | -3.4374 |\n",
- "| OLS_sphere | 200 | 0.1459 | 0.382 | 0.3027 | 0.8906 |\n",
- "| DeepKriging_wendland | -- | 0.5701 | 0.7551 | 0.5898 | 0.5723 |\n",
- "| DeepKriging_mrts | 10 | 0.1585 | 0.3981 | 0.3222 | 0.8811 |\n",
- "| DeepKriging_sphere | 100 | 0.1107 | 0.3327 | 0.2627 | 0.917 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.1192 | 0.3453 | 0.268 | 0.9106 |\n",
- "| UniversalKriging | 1000 | 0.0975 | 0.3123 | 0.2524 | 0.9268 |\n",
- "Repeat 6/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 7/50 seed=56\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:35:55.487288: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774776955.497655 2949649 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774776955.500378 2949649 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774776955.507519 2949649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774776955.507547 2949649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774776955.507549 2949649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774776955.507550 2949649 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] seed=56\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=56 ===\n",
- "z mean: 1.2930 (±0.0190), Var: 0.9043, Range: [-1.9922, 4.7984]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776976.288121 2949649 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774776977.844031 2949993 service.cc:152] XLA service 0x7f6cdc0065c0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774776977.844057 2949993 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776978.059772 2949993 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774776979.721051 2949993 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6f102ef520> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6f007be560> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 6] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6046, sigma²=0.8482, nugget=0.0162\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1691, sigma²=0.3070, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1042, sigma²=0.2089, nugget=0.0007\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1023, sigma²=0.2024, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0601, sigma²=0.1381, nugget=0.0002\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1246, sigma²=0.2292, nugget=0.0015\n",
- "[repeat 6] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0601, sigma²=0.1381, nugget=0.0002\n",
- "[repeat 6] done → repeat_6_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 0.9812 | 0.9905 | 0.6718 | -0.0489 |\n",
- "| OLS_sphere | 200 | 0.1427 | 0.3778 | 0.3052 | 0.8474 |\n",
- "| DeepKriging_wendland | -- | 0.6495 | 0.8059 | 0.5922 | 0.3057 |\n",
- "| DeepKriging_mrts | 50 | 0.1422 | 0.3771 | 0.294 | 0.848 |\n",
- "| DeepKriging_sphere | 10 | 0.1023 | 0.3198 | 0.2568 | 0.8907 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1048 | 0.3237 | 0.2581 | 0.888 |\n",
- "| UniversalKriging | 200 | 0.0935 | 0.3058 | 0.232 | 0.9 |\n",
- "Repeat 7/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 8/50 seed=57\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:44:09.987688: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774777449.997987 3339031 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774777450.000866 3339031 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774777450.007784 3339031 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774777450.007809 3339031 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774777450.007811 3339031 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774777450.007812 3339031 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] seed=57\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=57 ===\n",
- "z mean: 0.6534 (±0.0161), Var: 0.6466, Range: [-1.7622, 3.5206]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774777470.606261 3339031 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774777472.114508 3339369 service.cc:152] XLA service 0x55a88c522aa0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774777472.114540 3339369 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774777472.331817 3339369 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774777473.990333 3339369 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2d607a6200> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2d585b00d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 7] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4241, sigma²=0.7395, nugget=0.0078\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2930, sigma²=0.5374, nugget=0.0039\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1125, sigma²=0.2385, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1893, sigma²=0.3556, nugget=0.0037\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1019, sigma²=0.2149, nugget=0.0005\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1208, sigma²=0.2306, nugget=0.0012\n",
- "[repeat 7] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1208, sigma²=0.2306, nugget=0.0012\n",
- "[repeat 7] done → repeat_7_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.6293 | 1.2765 | 0.6579 | -1.1385 |\n",
- "| OLS_sphere | 200 | 0.162 | 0.4025 | 0.3173 | 0.7874 |\n",
- "| DeepKriging_wendland | -- | 0.4829 | 0.6949 | 0.5323 | 0.3662 |\n",
- "| DeepKriging_mrts | 1000 | 0.1433 | 0.3786 | 0.2981 | 0.8119 |\n",
- "| DeepKriging_sphere | 100 | 0.104 | 0.3225 | 0.2591 | 0.8635 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.1054 | 0.3247 | 0.2675 | 0.8616 |\n",
- "| UniversalKriging | 1000 | 0.0937 | 0.3061 | 0.247 | 0.877 |\n",
- "Repeat 8/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 9/50 seed=58\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 17:52:50.419214: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774777970.429225 3761383 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774777970.431864 3761383 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774777970.439488 3761383 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774777970.439517 3761383 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774777970.439519 3761383 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774777970.439520 3761383 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] seed=58\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=58 ===\n",
- "z mean: 0.6080 (±0.0178), Var: 0.7900, Range: [-2.3633, 3.2792]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774777990.989738 3761383 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774777992.484998 3761729 service.cc:152] XLA service 0x559830f26460 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774777992.485021 3761729 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774777992.699171 3761729 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774777994.356044 3761729 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fb3b83ef520> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fb3a874e3b0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 8] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3884, sigma²=0.6131, nugget=0.0075\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1873, sigma²=0.3305, nugget=0.0023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1275, sigma²=0.2378, nugget=0.0009\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1043, sigma²=0.2050, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1806, sigma²=0.3066, nugget=0.0015\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1773, sigma²=0.2833, nugget=0.0013\n",
- "[repeat 8] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1773, sigma²=0.2833, nugget=0.0013\n",
- "[repeat 8] done → repeat_8_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.1928 | 1.0922 | 0.643 | -0.6136 |\n",
- "| OLS_sphere | 200 | 0.1739 | 0.417 | 0.3353 | 0.7648 |\n",
- "| DeepKriging_wendland | -- | 0.3899 | 0.6244 | 0.4843 | 0.4726 |\n",
- "| DeepKriging_mrts | 200 | 0.1464 | 0.3826 | 0.3053 | 0.802 |\n",
- "| DeepKriging_sphere | 100 | 0.1035 | 0.3217 | 0.2502 | 0.86 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.109 | 0.3301 | 0.2604 | 0.8526 |\n",
- "| UniversalKriging | 1000 | 0.1058 | 0.3253 | 0.2563 | 0.8568 |\n",
- "Repeat 9/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 10/50 seed=59\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:02:15.807100: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774778535.817160 75896 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774778535.819925 75896 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774778535.827684 75896 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774778535.827727 75896 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774778535.827729 75896 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774778535.827730 75896 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] seed=59\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=59 ===\n",
- "z mean: 1.0332 (±0.0193), Var: 0.9271, Range: [-2.0571, 3.6304]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774778556.366429 75896 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774778557.870862 76242 service.cc:152] XLA service 0x55913a58e4f0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774778557.870884 76242 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774778558.088574 76242 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774778559.698826 76242 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2c5c1024d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2c4c7d5c60> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 9] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2738, sigma²=0.4903, nugget=0.0061\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2068, sigma²=0.3850, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1986, sigma²=0.3651, nugget=0.0023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1925, sigma²=0.3534, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0907, sigma²=0.1914, nugget=0.0004\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1755, sigma²=0.3068, nugget=0.0013\n",
- "[repeat 9] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2068, sigma²=0.3850, nugget=0.0026\n",
- "[repeat 9] done → repeat_9_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|-----------|---------|--------|------------|\n",
- "| OLS_wendland | -- | 1357.38 | 36.8426 | 3.0805 | -1394.98 |\n",
- "| OLS_sphere | 200 | 0.1909 | 0.4369 | 0.3358 | 0.8037 |\n",
- "| DeepKriging_wendland | -- | 0.5146 | 0.7174 | 0.5546 | 0.4707 |\n",
- "| DeepKriging_mrts | 50 | 0.1511 | 0.3887 | 0.3008 | 0.8446 |\n",
- "| DeepKriging_sphere | 50 | 0.1208 | 0.3476 | 0.2629 | 0.8758 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.1214 | 0.3484 | 0.2654 | 0.8752 |\n",
- "| UniversalKriging | 50 | 0.1016 | 0.3187 | 0.2433 | 0.8955 |\n",
- "Repeat 10/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 11/50 seed=60\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:11:12.887599: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774779072.897317 557689 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774779072.900234 557689 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774779072.907901 557689 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774779072.907935 557689 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774779072.907938 557689 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774779072.907938 557689 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] seed=60\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=60 ===\n",
- "z mean: 0.7615 (±0.0201), Var: 1.0084, Range: [-2.3271, 3.5369]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774779093.388960 557689 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774779094.906166 558033 service.cc:152] XLA service 0x56207e310310 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774779094.906190 558033 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774779095.113497 558033 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774779096.752031 558033 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f19cc557b50> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f19c4348940> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 10] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3297, sigma²=0.5183, nugget=0.0102\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1358, sigma²=0.2632, nugget=0.0016\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0974, sigma²=0.1990, nugget=0.0007\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1395, sigma²=0.2608, nugget=0.0021\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1527, sigma²=0.2767, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1779, sigma²=0.3034, nugget=0.0037\n",
- "[repeat 10] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1395, sigma²=0.2608, nugget=0.0021\n",
- "[repeat 10] done → repeat_10_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7693 | 0.8771 | 0.6995 | 0.2306 |\n",
- "| OLS_sphere | 200 | 0.1721 | 0.4148 | 0.3267 | 0.8279 |\n",
- "| DeepKriging_wendland | -- | 0.5607 | 0.7488 | 0.5827 | 0.4391 |\n",
- "| DeepKriging_mrts | 200 | 0.144 | 0.3795 | 0.2941 | 0.856 |\n",
- "| DeepKriging_sphere | 150 | 0.1088 | 0.3298 | 0.2523 | 0.8912 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1189 | 0.3447 | 0.2739 | 0.8811 |\n",
- "| UniversalKriging | 150 | 0.0986 | 0.3139 | 0.2388 | 0.9014 |\n",
- "Repeat 11/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 12/50 seed=61\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:19:43.323205: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774779583.332990 977017 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774779583.335844 977017 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774779583.343175 977017 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774779583.343209 977017 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774779583.343212 977017 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774779583.343213 977017 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] seed=61\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=61 ===\n",
- "z mean: 1.4179 (±0.0178), Var: 0.7902, Range: [-0.9411, 4.5815]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774779603.933997 977017 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774779605.444823 977361 service.cc:152] XLA service 0x7fa79c006300 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774779605.444849 977361 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774779605.661731 977361 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774779607.284834 977361 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa9cc6ba0e0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa9cc1f2c20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 11] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4175, sigma²=0.6530, nugget=0.0092\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1575, sigma²=0.2896, nugget=0.0015\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1376, sigma²=0.2547, nugget=0.0014\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1377, sigma²=0.2530, nugget=0.0016\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0957, sigma²=0.1868, nugget=0.0006\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0219, sigma²=0.0490, nugget=0.0000\n",
- "[repeat 11] UniversalKriging best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1575, sigma²=0.2896, nugget=0.0015\n",
- "[repeat 11] done → repeat_11_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.5872 | 0.7663 | 0.6056 | 0.2385 |\n",
- "| OLS_sphere | 200 | 0.1348 | 0.3672 | 0.2909 | 0.8252 |\n",
- "| DeepKriging_wendland | -- | 0.4312 | 0.6567 | 0.5115 | 0.4408 |\n",
- "| DeepKriging_mrts | 50 | 0.1367 | 0.3697 | 0.2931 | 0.8227 |\n",
- "| DeepKriging_sphere | 100 | 0.1138 | 0.3374 | 0.273 | 0.8524 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.1128 | 0.3359 | 0.2659 | 0.8537 |\n",
- "| UniversalKriging | 50 | 0.1014 | 0.3185 | 0.2507 | 0.8685 |\n",
- "Repeat 12/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 13/50 seed=62\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:28:25.034550: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774780105.045081 1404089 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774780105.047801 1404089 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774780105.055149 1404089 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774780105.055187 1404089 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774780105.055189 1404089 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774780105.055190 1404089 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] seed=62\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=62 ===\n",
- "z mean: 0.5214 (±0.0154), Var: 0.5933, Range: [-1.9458, 3.1458]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774780125.636493 1404089 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774780127.152723 1404432 service.cc:152] XLA service 0x7fb9380067d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774780127.152756 1404432 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774780127.370650 1404432 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774780129.001492 1404432 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fbb5c16a7a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fbb4c61cdc0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 12] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2748, sigma²=0.4809, nugget=0.0053\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1897, sigma²=0.3509, nugget=0.0023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1503, sigma²=0.2884, nugget=0.0024\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0791, sigma²=0.1752, nugget=0.0003\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1586, sigma²=0.2972, nugget=0.0033\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0813, sigma²=0.1359, nugget=0.0002\n",
- "[repeat 12] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0791, sigma²=0.1752, nugget=0.0003\n",
- "[repeat 12] done → repeat_12_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 10.4514 | 3.2329 | 0.7405 | -17.0617 |\n",
- "| OLS_sphere | 200 | 0.144 | 0.3795 | 0.2943 | 0.7511 |\n",
- "| DeepKriging_wendland | -- | 0.3588 | 0.599 | 0.4609 | 0.38 |\n",
- "| DeepKriging_mrts | 10 | 0.15 | 0.3873 | 0.3025 | 0.7408 |\n",
- "| DeepKriging_sphere | 50 | 0.1008 | 0.3174 | 0.2474 | 0.8259 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.1137 | 0.3372 | 0.2703 | 0.8035 |\n",
- "| UniversalKriging | 150 | 0.0879 | 0.2966 | 0.2298 | 0.848 |\n",
- "Repeat 13/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 14/50 seed=63\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:36:19.259825: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774780579.269497 1734662 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774780579.272142 1734662 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774780579.279456 1734662 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774780579.279481 1734662 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774780579.279483 1734662 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774780579.279484 1734662 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] seed=63\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=63 ===\n",
- "z mean: 1.0337 (±0.0207), Var: 1.0758, Range: [-2.4550, 4.0720]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774780599.921276 1734662 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774780601.443719 1735006 service.cc:152] XLA service 0x7f696c006940 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774780601.443744 1735006 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774780601.660843 1735006 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774780603.335890 1735006 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6b9873bac0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f6b906e03a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 13] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4214, sigma²=0.7089, nugget=0.0094\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2490, sigma²=0.4498, nugget=0.0034\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1794, sigma²=0.3327, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1817, sigma²=0.3339, nugget=0.0027\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1869, sigma²=0.3392, nugget=0.0029\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2061, sigma²=0.3518, nugget=0.0019\n",
- "[repeat 13] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4214, sigma²=0.7089, nugget=0.0094\n",
- "[repeat 13] done → repeat_13_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7771 | 0.8815 | 0.7027 | 0.1928 |\n",
- "| OLS_sphere | 200 | 0.1534 | 0.3916 | 0.3089 | 0.8407 |\n",
- "| DeepKriging_wendland | -- | 0.5956 | 0.7717 | 0.5878 | 0.3813 |\n",
- "| DeepKriging_mrts | 1000 | 0.157 | 0.3962 | 0.308 | 0.8369 |\n",
- "| DeepKriging_sphere | 100 | 0.0819 | 0.2861 | 0.2261 | 0.915 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.0787 | 0.2806 | 0.2207 | 0.9182 |\n",
- "| UniversalKriging | 10 | 0.074 | 0.272 | 0.2129 | 0.9232 |\n",
- "Repeat 14/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 15/50 seed=64\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:44:46.687428: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774781086.697216 2153407 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774781086.700084 2153407 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774781086.707295 2153407 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774781086.707328 2153407 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774781086.707330 2153407 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774781086.707331 2153407 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] seed=64\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=64 ===\n",
- "z mean: 1.0068 (±0.0197), Var: 0.9687, Range: [-1.7924, 4.0109]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774781107.377080 2153407 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774781108.855183 2153750 service.cc:152] XLA service 0x7f455000a1a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774781108.855206 2153750 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774781109.073434 2153750 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774781110.700563 2153750 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f47846eeb00> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f477c4c3f40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 14] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4181, sigma²=0.7170, nugget=0.0077\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2725, sigma²=0.4927, nugget=0.0040\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1169, sigma²=0.2407, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0623, sigma²=0.1578, nugget=0.0003\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0691, sigma²=0.1562, nugget=0.0003\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0888, sigma²=0.1603, nugget=0.0005\n",
- "[repeat 14] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0888, sigma²=0.1603, nugget=0.0005\n",
- "[repeat 14] done → repeat_14_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.6115 | 0.782 | 0.5951 | 0.2802 |\n",
- "| OLS_sphere | 200 | 0.1322 | 0.3636 | 0.2882 | 0.8443 |\n",
- "| DeepKriging_wendland | -- | 0.4658 | 0.6825 | 0.5044 | 0.4517 |\n",
- "| DeepKriging_mrts | 50 | 0.1323 | 0.3637 | 0.2936 | 0.8443 |\n",
- "| DeepKriging_sphere | 100 | 0.1102 | 0.332 | 0.2631 | 0.8703 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1046 | 0.3234 | 0.2575 | 0.8769 |\n",
- "| UniversalKriging | 1000 | 0.0955 | 0.309 | 0.246 | 0.8876 |\n",
- "Repeat 15/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 16/50 seed=65\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 18:53:46.940949: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774781626.951335 2622641 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774781626.954406 2622641 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774781626.961715 2622641 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774781626.961743 2622641 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774781626.961745 2622641 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774781626.961745 2622641 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] seed=65\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=65 ===\n",
- "z mean: 0.8020 (±0.0215), Var: 1.1523, Range: [-2.2063, 4.7261]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774781647.567611 2622641 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774781649.091908 2622985 service.cc:152] XLA service 0x7f21dc008a30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774781649.091934 2622985 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774781649.313869 2622985 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774781650.962822 2622985 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f240c2a7490> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f240430fb50> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 15] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4275, sigma²=0.6521, nugget=0.0120\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1918, sigma²=0.3483, nugget=0.0032\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1319, sigma²=0.2578, nugget=0.0012\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0782, sigma²=0.1748, nugget=0.0004\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0933, sigma²=0.1879, nugget=0.0006\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1586, sigma²=0.2820, nugget=0.0027\n",
- "[repeat 15] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0933, sigma²=0.1879, nugget=0.0006\n",
- "[repeat 15] done → repeat_15_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7957 | 0.892 | 0.6885 | 0.3185 |\n",
- "| OLS_sphere | 200 | 0.1838 | 0.4288 | 0.336 | 0.8425 |\n",
- "| DeepKriging_wendland | -- | 0.5244 | 0.7242 | 0.561 | 0.5508 |\n",
- "| DeepKriging_mrts | 10 | 0.1823 | 0.4269 | 0.3449 | 0.8439 |\n",
- "| DeepKriging_sphere | 10 | 0.1247 | 0.3532 | 0.2815 | 0.8932 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1314 | 0.3624 | 0.2877 | 0.8875 |\n",
- "| UniversalKriging | 200 | 0.1026 | 0.3203 | 0.2576 | 0.9121 |\n",
- "Repeat 16/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 17/50 seed=66\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:01:36.358593: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774782096.368395 3028041 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774782096.371241 3028041 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774782096.378616 3028041 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774782096.378649 3028041 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774782096.378652 3028041 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774782096.378653 3028041 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] seed=66\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=66 ===\n",
- "z mean: 1.2233 (±0.0154), Var: 0.5897, Range: [-1.2321, 3.3525]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774782117.558996 3028041 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774782119.093795 3028402 service.cc:152] XLA service 0x55b9994ae660 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774782119.093819 3028402 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774782119.326721 3028402 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774782121.043091 3028402 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f68fc1cea70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f68f423ec20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 16] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3110, sigma²=0.5398, nugget=0.0047\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1900, sigma²=0.3521, nugget=0.0021\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1486, sigma²=0.2821, nugget=0.0018\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1439, sigma²=0.2719, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1620, sigma²=0.2957, nugget=0.0025\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1953, sigma²=0.3372, nugget=0.0045\n",
- "[repeat 16] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1953, sigma²=0.3372, nugget=0.0045\n",
- "[repeat 16] done → repeat_16_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 0.9659 | 0.9828 | 0.606 | -0.5527 |\n",
- "| OLS_sphere | 200 | 0.1762 | 0.4197 | 0.3327 | 0.7168 |\n",
- "| DeepKriging_wendland | -- | 0.4438 | 0.6662 | 0.5197 | 0.2866 |\n",
- "| DeepKriging_mrts | 10 | 0.1846 | 0.4297 | 0.3519 | 0.7032 |\n",
- "| DeepKriging_sphere | 100 | 0.1098 | 0.3313 | 0.2616 | 0.8235 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1123 | 0.3351 | 0.2688 | 0.8195 |\n",
- "| UniversalKriging | 1000 | 0.1139 | 0.3375 | 0.2624 | 0.8169 |\n",
- "Repeat 17/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 18/50 seed=67\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:10:15.243277: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774782615.253050 3477744 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774782615.256062 3477744 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774782615.263446 3477744 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774782615.263475 3477744 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774782615.263477 3477744 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774782615.263478 3477744 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] seed=67\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=67 ===\n",
- "z mean: 1.2711 (±0.0163), Var: 0.6659, Range: [-1.2990, 3.6131]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774782636.363233 3477744 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774782637.919191 3478102 service.cc:152] XLA service 0x7f9e04009b10 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774782637.919217 3478102 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774782638.134970 3478102 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774782639.830728 3478102 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa03c6e7250> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa034737880> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 17] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2665, sigma²=0.4285, nugget=0.0059\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1286, sigma²=0.2441, nugget=0.0011\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1137, sigma²=0.2174, nugget=0.0010\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0838, sigma²=0.1694, nugget=0.0004\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1025, sigma²=0.1894, nugget=0.0007\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1753, sigma²=0.2791, nugget=0.0015\n",
- "[repeat 17] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1753, sigma²=0.2791, nugget=0.0015\n",
- "[repeat 17] done → repeat_17_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.3184 | 1.1482 | 0.6501 | -0.7536 |\n",
- "| OLS_sphere | 200 | 0.141 | 0.3755 | 0.3005 | 0.8125 |\n",
- "| DeepKriging_wendland | -- | 0.4355 | 0.66 | 0.4926 | 0.4207 |\n",
- "| DeepKriging_mrts | 50 | 0.1282 | 0.3581 | 0.2832 | 0.8294 |\n",
- "| DeepKriging_sphere | 50 | 0.1039 | 0.3224 | 0.2531 | 0.8618 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.1144 | 0.3383 | 0.2634 | 0.8478 |\n",
- "| UniversalKriging | 1000 | 0.0911 | 0.3019 | 0.2375 | 0.8788 |\n",
- "Repeat 18/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 19/50 seed=68\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:19:14.390130: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774783154.399732 3934224 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774783154.402532 3934224 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774783154.410097 3934224 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774783154.410137 3934224 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774783154.410139 3934224 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774783154.410140 3934224 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] seed=68\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=68 ===\n",
- "z mean: 1.5699 (±0.0238), Var: 1.4216, Range: [-1.6250, 4.6231]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774783175.470998 3934224 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774783177.047347 3934588 service.cc:152] XLA service 0x7fc694005d30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774783177.047372 3934588 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774783177.268924 3934588 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774783178.964854 3934588 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc8a8431630> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc8a055f010> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_mrts best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 18] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6297, sigma²=0.9733, nugget=0.0111\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5856, sigma²=0.8617, nugget=0.0118\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5808, sigma²=0.8454, nugget=0.0119\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5799, sigma²=0.8407, nugget=0.0120\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5794, sigma²=0.8372, nugget=0.0120\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5805, sigma²=0.8311, nugget=0.0120\n",
- "[repeat 18] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.6297, sigma²=0.9733, nugget=0.0111\n",
- "[repeat 18] done → repeat_18_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.1849 | 1.0885 | 0.8337 | 0.2177 |\n",
- "| OLS_sphere | 200 | 0.1615 | 0.4018 | 0.3178 | 0.8934 |\n",
- "| DeepKriging_wendland | -- | 0.7461 | 0.8638 | 0.6513 | 0.5074 |\n",
- "| DeepKriging_mrts | 100 | 0.1317 | 0.3629 | 0.291 | 0.9131 |\n",
- "| DeepKriging_sphere | 50 | 0.1021 | 0.3195 | 0.2528 | 0.9326 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.1002 | 0.3166 | 0.2494 | 0.9338 |\n",
- "| UniversalKriging | 10 | 0.0916 | 0.3027 | 0.2349 | 0.9395 |\n",
- "Repeat 19/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 20/50 seed=69\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:28:20.777672: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774783700.788132 220547 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774783700.790975 220547 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774783700.798743 220547 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774783700.798772 220547 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774783700.798774 220547 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774783700.798775 220547 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] seed=69\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=69 ===\n",
- "z mean: 0.9635 (±0.0200), Var: 0.9965, Range: [-2.2501, 4.3209]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774783721.552261 220547 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774783723.073770 220907 service.cc:152] XLA service 0x55beb8f646a0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774783723.073795 220907 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774783723.292845 220907 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774783724.956838 220907 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f2234412200> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f21bc65bb50> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 19] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3327, sigma²=0.6014, nugget=0.0080\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1899, sigma²=0.3708, nugget=0.0025\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2063, sigma²=0.3910, nugget=0.0028\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2070, sigma²=0.3919, nugget=0.0025\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2088, sigma²=0.3899, nugget=0.0027\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1625, sigma²=0.2943, nugget=0.0015\n",
- "[repeat 19] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1625, sigma²=0.2943, nugget=0.0015\n",
- "[repeat 19] done → repeat_19_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7057 | 0.8401 | 0.6412 | 0.2177 |\n",
- "| OLS_sphere | 200 | 0.1583 | 0.3979 | 0.3168 | 0.8245 |\n",
- "| DeepKriging_wendland | -- | 0.4946 | 0.7033 | 0.53 | 0.4517 |\n",
- "| DeepKriging_mrts | 50 | 0.1305 | 0.3612 | 0.2964 | 0.8554 |\n",
- "| DeepKriging_sphere | 150 | 0.0885 | 0.2975 | 0.236 | 0.9019 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.0929 | 0.3048 | 0.2463 | 0.897 |\n",
- "| UniversalKriging | 1000 | 0.0836 | 0.2892 | 0.2306 | 0.9073 |\n",
- "Repeat 20/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 21/50 seed=70\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:37:05.825643: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774784225.837283 646245 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774784225.840163 646245 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774784225.848160 646245 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774784225.848221 646245 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774784225.848223 646245 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774784225.848224 646245 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] seed=70\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=70 ===\n",
- "z mean: 1.2045 (±0.0188), Var: 0.8818, Range: [-1.3242, 3.9479]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774784246.590727 646245 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774784248.127816 646601 service.cc:152] XLA service 0x55bbc10d1fc0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774784248.127839 646601 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774784248.345800 646601 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774784250.006824 646601 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f69fc197eb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f69f43ef250> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 20] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2931, sigma²=0.5132, nugget=0.0068\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2287, sigma²=0.4173, nugget=0.0039\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2058, sigma²=0.3777, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2318, sigma²=0.4215, nugget=0.0028\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2304, sigma²=0.4135, nugget=0.0029\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2018, sigma²=0.3534, nugget=0.0021\n",
- "[repeat 20] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2018, sigma²=0.3534, nugget=0.0021\n",
- "[repeat 20] done → repeat_20_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 2.2549 | 1.5016 | 0.7477 | -1.5297 |\n",
- "| OLS_sphere | 200 | 0.1781 | 0.4221 | 0.3369 | 0.8002 |\n",
- "| DeepKriging_wendland | -- | 0.5748 | 0.7582 | 0.5771 | 0.3551 |\n",
- "| DeepKriging_mrts | 50 | 0.1513 | 0.389 | 0.313 | 0.8302 |\n",
- "| DeepKriging_sphere | 100 | 0.1115 | 0.3339 | 0.2544 | 0.8749 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.097 | 0.3114 | 0.246 | 0.8912 |\n",
- "| UniversalKriging | 1000 | 0.0866 | 0.2943 | 0.2308 | 0.9028 |\n",
- "Repeat 21/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 22/50 seed=71\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:46:10.721528: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774784770.734220 1138757 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774784770.737443 1138757 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774784770.744778 1138757 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774784770.744805 1138757 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774784770.744807 1138757 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774784770.744808 1138757 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] seed=71\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=71 ===\n",
- "z mean: 1.1674 (±0.0169), Var: 0.7108, Range: [-1.0895, 4.0544]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] OLS_sphere best order: 150\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774784791.397788 1138757 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774784792.934255 1139122 service.cc:152] XLA service 0x5603aa845150 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774784792.934292 1139122 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774784793.145763 1139122 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774784794.802784 1139122 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa44015f640> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fa4383af6d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 21] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2638, sigma²=0.4748, nugget=0.0056\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1623, sigma²=0.3205, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1911, sigma²=0.3570, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1084, sigma²=0.2220, nugget=0.0006\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0910, sigma²=0.1905, nugget=0.0004\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1540, sigma²=0.2914, nugget=0.0034\n",
- "[repeat 21] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1540, sigma²=0.2914, nugget=0.0034\n",
- "[repeat 21] done → repeat_21_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.1976 | 1.0944 | 0.6115 | -0.8042 |\n",
- "| OLS_sphere | 150 | 0.1609 | 0.4011 | 0.3215 | 0.7576 |\n",
- "| DeepKriging_wendland | -- | 0.3875 | 0.6225 | 0.4679 | 0.4162 |\n",
- "| DeepKriging_mrts | 200 | 0.1167 | 0.3416 | 0.2704 | 0.8242 |\n",
- "| DeepKriging_sphere | 100 | 0.0939 | 0.3064 | 0.236 | 0.8586 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1063 | 0.326 | 0.2582 | 0.8399 |\n",
- "| UniversalKriging | 1000 | 0.086 | 0.2932 | 0.2254 | 0.8705 |\n",
- "Repeat 22/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 23/50 seed=72\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 19:54:35.871131: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774785275.880888 1545366 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774785275.883645 1545366 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774785275.891788 1545366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774785275.891816 1545366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774785275.891817 1545366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774785275.891818 1545366 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] seed=72\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=72 ===\n",
- "z mean: 0.9454 (±0.0183), Var: 0.8348, Range: [-2.2639, 3.6301]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774785296.799984 1545366 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774785298.301310 1545723 service.cc:152] XLA service 0x560634321940 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774785298.301335 1545723 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774785298.520615 1545723 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774785300.167222 1545723 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f13d85a5630> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f13d060acb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_sphere best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 22] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3429, sigma²=0.5896, nugget=0.0077\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2093, sigma²=0.3906, nugget=0.0032\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1779, sigma²=0.3396, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1433, sigma²=0.2788, nugget=0.0013\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1401, sigma²=0.2700, nugget=0.0010\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0670, sigma²=0.1224, nugget=0.0002\n",
- "[repeat 22] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0670, sigma²=0.1224, nugget=0.0002\n",
- "[repeat 22] done → repeat_22_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 50.6503 | 7.1169 | 1.1824 | -63.7834 |\n",
- "| OLS_sphere | 200 | 0.1793 | 0.4234 | 0.3366 | 0.7707 |\n",
- "| DeepKriging_wendland | -- | 0.4729 | 0.6877 | 0.5373 | 0.3951 |\n",
- "| DeepKriging_mrts | 10 | 0.1664 | 0.4079 | 0.3268 | 0.7872 |\n",
- "| DeepKriging_sphere | 200 | 0.1043 | 0.323 | 0.253 | 0.8666 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.1016 | 0.3188 | 0.244 | 0.87 |\n",
- "| UniversalKriging | 1000 | 0.1043 | 0.323 | 0.2513 | 0.8666 |\n",
- "Repeat 23/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 24/50 seed=73\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:02:51.329328: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774785771.339598 1932395 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774785771.342768 1932395 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774785771.350128 1932395 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774785771.350156 1932395 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774785771.350158 1932395 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774785771.350159 1932395 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] seed=73\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=73 ===\n",
- "z mean: 1.2999 (±0.0201), Var: 1.0061, Range: [-1.1253, 4.9918]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774785792.094855 1932395 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774785793.606627 1932761 service.cc:152] XLA service 0x7f776c008440 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774785793.606651 1932761 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774785793.819090 1932761 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774785795.480290 1932761 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f79a44ed900> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f799c2c4940> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 23] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3809, sigma²=0.6355, nugget=0.0089\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2191, sigma²=0.4026, nugget=0.0030\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1558, sigma²=0.2964, nugget=0.0015\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1227, sigma²=0.2403, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1073, sigma²=0.2126, nugget=0.0006\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1840, sigma²=0.3157, nugget=0.0017\n",
- "[repeat 23] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1840, sigma²=0.3157, nugget=0.0017\n",
- "[repeat 23] done → repeat_23_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.8644 | 0.9297 | 0.6967 | 0.1805 |\n",
- "| OLS_sphere | 200 | 0.1723 | 0.4151 | 0.3379 | 0.8367 |\n",
- "| DeepKriging_wendland | -- | 0.6835 | 0.8268 | 0.609 | 0.352 |\n",
- "| DeepKriging_mrts | 10 | 0.1557 | 0.3946 | 0.3166 | 0.8524 |\n",
- "| DeepKriging_sphere | 150 | 0.1236 | 0.3516 | 0.2784 | 0.8828 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1185 | 0.3442 | 0.27 | 0.8877 |\n",
- "| UniversalKriging | 1000 | 0.1001 | 0.3164 | 0.2527 | 0.9051 |\n",
- "Repeat 24/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 25/50 seed=74\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:11:14.333004: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774786274.343804 2328097 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774786274.346652 2328097 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774786274.354356 2328097 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774786274.354388 2328097 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774786274.354390 2328097 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774786274.354391 2328097 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] seed=74\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=74 ===\n",
- "z mean: 1.1301 (±0.0234), Var: 1.3729, Range: [-2.2020, 5.0217]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774786295.144356 2328097 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774786296.676107 2328456 service.cc:152] XLA service 0x55e5397c8210 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774786296.676133 2328456 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774786296.886110 2328456 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774786298.532620 2328456 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9c0054e830> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9bf87abeb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 24] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3457, sigma²=0.5586, nugget=0.0101\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3187, sigma²=0.5170, nugget=0.0086\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2572, sigma²=0.4415, nugget=0.0051\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2446, sigma²=0.4186, nugget=0.0048\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2212, sigma²=0.3840, nugget=0.0038\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1107, sigma²=0.2095, nugget=0.0011\n",
- "[repeat 24] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1107, sigma²=0.2095, nugget=0.0011\n",
- "[repeat 24] done → repeat_24_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 1.0626 | 1.0308 | 0.7905 | 0.2098 |\n",
- "| OLS_sphere | 200 | 0.1683 | 0.4103 | 0.3289 | 0.8748 |\n",
- "| DeepKriging_wendland | -- | 0.7589 | 0.8712 | 0.6435 | 0.4356 |\n",
- "| DeepKriging_mrts | 10 | 0.1573 | 0.3967 | 0.3197 | 0.883 |\n",
- "| DeepKriging_sphere | 50 | 0.0991 | 0.3149 | 0.2533 | 0.9263 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1068 | 0.3268 | 0.2559 | 0.9206 |\n",
- "| UniversalKriging | 1000 | 0.0892 | 0.2987 | 0.2328 | 0.9337 |\n",
- "Repeat 25/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 26/50 seed=75\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:19:16.337204: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774786756.347044 2694993 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774786756.349842 2694993 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774786756.356982 2694993 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774786756.357006 2694993 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774786756.357008 2694993 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774786756.357009 2694993 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] seed=75\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=75 ===\n",
- "z mean: 1.1757 (±0.0186), Var: 0.8680, Range: [-1.5024, 4.2230]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774786777.105599 2694993 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774786778.634511 2695351 service.cc:152] XLA service 0x55caf918bee0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774786778.634536 2695351 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774786778.850695 2695351 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774786780.527551 2695351 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd2447e7e20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd23c70f6d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_mrts best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 25] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5631, sigma²=0.8975, nugget=0.0107\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5538, sigma²=0.8632, nugget=0.0108\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5399, sigma²=0.8445, nugget=0.0097\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5257, sigma²=0.8302, nugget=0.0088\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5253, sigma²=0.8263, nugget=0.0088\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5289, sigma²=0.8222, nugget=0.0088\n",
- "[repeat 25] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5289, sigma²=0.8222, nugget=0.0088\n",
- "[repeat 25] done → repeat_25_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.5209 | 0.7218 | 0.5613 | 0.3544 |\n",
- "| OLS_sphere | 200 | 0.1623 | 0.4028 | 0.3062 | 0.7989 |\n",
- "| DeepKriging_wendland | -- | 0.3866 | 0.6218 | 0.4766 | 0.5209 |\n",
- "| DeepKriging_mrts | 200 | 0.1205 | 0.3472 | 0.2804 | 0.8506 |\n",
- "| DeepKriging_sphere | 100 | 0.1031 | 0.3211 | 0.252 | 0.8722 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1101 | 0.3318 | 0.2664 | 0.8635 |\n",
- "| UniversalKriging | 1000 | 0.0998 | 0.3159 | 0.2448 | 0.8763 |\n",
- "Repeat 26/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 27/50 seed=76\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:28:38.494674: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774787318.504786 3209572 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774787318.507665 3209572 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774787318.515380 3209572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774787318.515415 3209572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774787318.515418 3209572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774787318.515418 3209572 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] seed=76\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=76 ===\n",
- "z mean: 0.9468 (±0.0188), Var: 0.8799, Range: [-1.8332, 3.8049]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774787339.392374 3209572 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774787340.922582 3209937 service.cc:152] XLA service 0x7f2680009b50 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774787340.922605 3209937 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774787341.132677 3209937 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774787342.806156 3209937 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f28a8527400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f28a0776dd0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 26] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2904, sigma²=0.4945, nugget=0.0056\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1870, sigma²=0.3375, nugget=0.0023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1883, sigma²=0.3350, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0475, sigma²=0.1374, nugget=0.0002\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0555, sigma²=0.1349, nugget=0.0002\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1886, sigma²=0.3112, nugget=0.0018\n",
- "[repeat 26] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1886, sigma²=0.3112, nugget=0.0018\n",
- "[repeat 26] done → repeat_26_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.6556 | 0.8097 | 0.6321 | 0.2143 |\n",
- "| OLS_sphere | 200 | 0.1597 | 0.3996 | 0.3159 | 0.8086 |\n",
- "| DeepKriging_wendland | -- | 0.4841 | 0.6958 | 0.5379 | 0.4198 |\n",
- "| DeepKriging_mrts | 1000 | 0.1811 | 0.4256 | 0.3187 | 0.7829 |\n",
- "| DeepKriging_sphere | 100 | 0.1175 | 0.3427 | 0.2666 | 0.8592 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.1098 | 0.3314 | 0.254 | 0.8684 |\n",
- "| UniversalKriging | 1000 | 0.0962 | 0.3102 | 0.2437 | 0.8846 |\n",
- "Repeat 27/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 28/50 seed=77\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:36:59.260698: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774787819.271170 3591356 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774787819.274056 3591356 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774787819.282184 3591356 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774787819.282218 3591356 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774787819.282220 3591356 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774787819.282221 3591356 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] seed=77\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=77 ===\n",
- "z mean: 0.8124 (±0.0224), Var: 1.2546, Range: [-2.3167, 4.7890]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774787840.095155 3591356 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774787841.603714 3591724 service.cc:152] XLA service 0x7f3684006c90 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774787841.603745 3591724 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774787841.816396 3591724 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774787843.481785 3591724 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f38b06da200> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f38a8488d30> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 27] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3582, sigma²=0.6012, nugget=0.0079\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2456, sigma²=0.4332, nugget=0.0044\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2200, sigma²=0.3899, nugget=0.0032\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2216, sigma²=0.3899, nugget=0.0027\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2211, sigma²=0.3814, nugget=0.0030\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2245, sigma²=0.3764, nugget=0.0027\n",
- "[repeat 27] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2245, sigma²=0.3764, nugget=0.0027\n",
- "[repeat 27] done → repeat_27_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.5053 | 1.2269 | 0.7379 | -0.3736 |\n",
- "| OLS_sphere | 200 | 0.1619 | 0.4023 | 0.3118 | 0.8523 |\n",
- "| DeepKriging_wendland | -- | 0.508 | 0.7127 | 0.5507 | 0.5365 |\n",
- "| DeepKriging_mrts | 1000 | 0.1973 | 0.4442 | 0.3432 | 0.82 |\n",
- "| DeepKriging_sphere | 50 | 0.0934 | 0.3056 | 0.237 | 0.9148 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.0968 | 0.3112 | 0.2409 | 0.9116 |\n",
- "| UniversalKriging | 1000 | 0.0901 | 0.3001 | 0.2297 | 0.9178 |\n",
- "Repeat 28/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 29/50 seed=78\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:45:19.397545: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774788319.408705 3991023 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774788319.411501 3991023 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774788319.419255 3991023 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774788319.419282 3991023 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774788319.419285 3991023 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774788319.419285 3991023 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] seed=78\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=78 ===\n",
- "z mean: 1.3052 (±0.0191), Var: 0.9130, Range: [-1.2480, 4.2240]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774788340.252110 3991023 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774788341.789641 3991390 service.cc:152] XLA service 0x7efbc000b3c0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774788341.789664 3991390 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774788342.007566 3991390 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774788343.666389 3991390 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efdfc58f520> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7efdf47dff40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_sphere best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 28] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4962, sigma²=0.8286, nugget=0.0088\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4958, sigma²=0.7957, nugget=0.0095\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4962, sigma²=0.7867, nugget=0.0096\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4966, sigma²=0.7835, nugget=0.0097\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4969, sigma²=0.7817, nugget=0.0097\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4979, sigma²=0.7740, nugget=0.0097\n",
- "[repeat 28] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4979, sigma²=0.7740, nugget=0.0097\n",
- "[repeat 28] done → repeat_28_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.8345 | 0.9135 | 0.7046 | 0.1003 |\n",
- "| OLS_sphere | 200 | 0.1503 | 0.3877 | 0.308 | 0.838 |\n",
- "| DeepKriging_wendland | -- | 0.6376 | 0.7985 | 0.6206 | 0.3126 |\n",
- "| DeepKriging_mrts | 1000 | 0.194 | 0.4404 | 0.3459 | 0.7909 |\n",
- "| DeepKriging_sphere | 200 | 0.0994 | 0.3153 | 0.2481 | 0.8928 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1002 | 0.3166 | 0.2512 | 0.892 |\n",
- "| UniversalKriging | 1000 | 0.094 | 0.3065 | 0.2417 | 0.8987 |\n",
- "Repeat 29/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 30/50 seed=79\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 20:53:54.843381: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774788834.852968 223786 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774788834.855733 223786 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774788834.863261 223786 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774788834.863290 223786 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774788834.863293 223786 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774788834.863294 223786 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] seed=79\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=79 ===\n",
- "z mean: 1.0562 (±0.0177), Var: 0.7849, Range: [-1.3893, 3.8555]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774788855.648786 223786 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774788857.174793 224147 service.cc:152] XLA service 0x7f7190017b30 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774788857.174824 224147 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774788857.400360 224147 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774788859.070956 224147 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f73cc6bb640> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f73c4484dc0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_sphere best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 29] DeepKriging_sphere_Huber best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4778, sigma²=0.7775, nugget=0.0139\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3154, sigma²=0.5611, nugget=0.0062\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1608, sigma²=0.3170, nugget=0.0024\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1884, sigma²=0.3548, nugget=0.0022\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1878, sigma²=0.3499, nugget=0.0022\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2036, sigma²=0.3699, nugget=0.0043\n",
- "[repeat 29] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1878, sigma²=0.3499, nugget=0.0022\n",
- "[repeat 29] done → repeat_29_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 26.1077 | 5.1096 | 1.3849 | -30.9414 |\n",
- "| OLS_sphere | 200 | 0.1639 | 0.4049 | 0.3304 | 0.7994 |\n",
- "| DeepKriging_wendland | -- | 0.577 | 0.7596 | 0.5833 | 0.2941 |\n",
- "| DeepKriging_mrts | 50 | 0.1571 | 0.3963 | 0.3141 | 0.8079 |\n",
- "| DeepKriging_sphere | 200 | 0.091 | 0.3016 | 0.235 | 0.8887 |\n",
- "| DeepKriging_sphere_Huber | 200 | 0.0913 | 0.3021 | 0.2401 | 0.8883 |\n",
- "| UniversalKriging | 200 | 0.087 | 0.2949 | 0.2291 | 0.8936 |\n",
- "Repeat 30/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 31/50 seed=80\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:02:42.866998: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774789362.877365 679596 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774789362.880392 679596 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774789362.887951 679596 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774789362.887980 679596 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774789362.887982 679596 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774789362.887983 679596 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] seed=80\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=80 ===\n",
- "z mean: 0.6467 (±0.0178), Var: 0.7888, Range: [-2.6082, 3.8988]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774789383.787376 679596 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774789385.312471 679960 service.cc:152] XLA service 0x7fcc2c006180 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774789385.312502 679960 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774789385.531846 679960 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774789387.172829 679960 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fce48596830> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fce407ebac0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_mrts best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 30] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3586, sigma²=0.5950, nugget=0.0077\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1924, sigma²=0.3551, nugget=0.0023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1824, sigma²=0.3305, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1956, sigma²=0.3458, nugget=0.0021\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1929, sigma²=0.3381, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1851, sigma²=0.3096, nugget=0.0016\n",
- "[repeat 30] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1851, sigma²=0.3096, nugget=0.0016\n",
- "[repeat 30] done → repeat_30_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 26.8757 | 5.1842 | 0.9188 | -36.3633 |\n",
- "| OLS_sphere | 200 | 0.1443 | 0.3798 | 0.3086 | 0.7994 |\n",
- "| DeepKriging_wendland | -- | 0.3823 | 0.6183 | 0.478 | 0.4686 |\n",
- "| DeepKriging_mrts | 1000 | 0.1769 | 0.4206 | 0.3231 | 0.7541 |\n",
- "| DeepKriging_sphere | 150 | 0.1021 | 0.3195 | 0.2495 | 0.8581 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.0978 | 0.3128 | 0.2461 | 0.864 |\n",
- "| UniversalKriging | 1000 | 0.0873 | 0.2954 | 0.234 | 0.8787 |\n",
- "Repeat 31/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 32/50 seed=81\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:11:04.891182: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774789864.901621 1075504 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774789864.904520 1075504 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774789864.912059 1075504 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774789864.912084 1075504 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774789864.912087 1075504 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774789864.912087 1075504 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] seed=81\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=81 ===\n",
- "z mean: 0.8720 (±0.0199), Var: 0.9901, Range: [-2.3600, 4.1425]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774789885.850397 1075504 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774789887.386449 1075859 service.cc:152] XLA service 0x55ce3546e950 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774789887.386472 1075859 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774789887.608825 1075859 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774789889.261362 1075859 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd7701ffb50> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fd7684df370> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_mrts best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 31] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2822, sigma²=0.5194, nugget=0.0069\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1868, sigma²=0.3695, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0984, sigma²=0.2206, nugget=0.0007\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1186, sigma²=0.2500, nugget=0.0013\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1482, sigma²=0.2960, nugget=0.0024\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0437, sigma²=0.0777, nugget=0.0001\n",
- "[repeat 31] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2822, sigma²=0.5194, nugget=0.0069\n",
- "[repeat 31] done → repeat_31_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 4.3776 | 2.0923 | 0.7569 | -3.4888 |\n",
- "| OLS_sphere | 200 | 0.1375 | 0.3709 | 0.3005 | 0.859 |\n",
- "| DeepKriging_wendland | -- | 0.4608 | 0.6788 | 0.509 | 0.5275 |\n",
- "| DeepKriging_mrts | 100 | 0.1056 | 0.325 | 0.2632 | 0.8917 |\n",
- "| DeepKriging_sphere | 100 | 0.0954 | 0.3089 | 0.2419 | 0.9022 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1006 | 0.3172 | 0.249 | 0.8968 |\n",
- "| UniversalKriging | 10 | 0.0829 | 0.2879 | 0.2268 | 0.915 |\n",
- "Repeat 32/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 33/50 seed=82\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:20:09.666558: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774790409.677084 1559793 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774790409.679845 1559793 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774790409.687309 1559793 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774790409.687340 1559793 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774790409.687342 1559793 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774790409.687343 1559793 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] seed=82\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=82 ===\n",
- "z mean: 1.6321 (±0.0202), Var: 1.0250, Range: [-1.7752, 4.9655]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774790430.371014 1559793 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774790431.880305 1560152 service.cc:152] XLA service 0x7fc8880070f0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774790431.880332 1560152 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774790432.089761 1560152 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774790433.752117 1560152 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fcab0765870> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fcaa853ca60> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 32] DeepKriging_sphere_Huber best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4046, sigma²=0.6747, nugget=0.0093\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1927, sigma²=0.3643, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1270, sigma²=0.2541, nugget=0.0011\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0965, sigma²=0.2096, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1012, sigma²=0.2132, nugget=0.0009\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1007, sigma²=0.1993, nugget=0.0009\n",
- "[repeat 32] UniversalKriging best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4046, sigma²=0.6747, nugget=0.0093\n",
- "[repeat 32] done → repeat_32_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 10.185 | 3.1914 | 0.8932 | -10.8695 |\n",
- "| OLS_sphere | 200 | 0.1497 | 0.3869 | 0.3034 | 0.8255 |\n",
- "| DeepKriging_wendland | -- | 0.4979 | 0.7056 | 0.5388 | 0.4197 |\n",
- "| DeepKriging_mrts | 10 | 0.1705 | 0.4129 | 0.3202 | 0.8013 |\n",
- "| DeepKriging_sphere | 10 | 0.1066 | 0.3264 | 0.2567 | 0.8758 |\n",
- "| DeepKriging_sphere_Huber | 200 | 0.1015 | 0.3186 | 0.2498 | 0.8817 |\n",
- "| UniversalKriging | 10 | 0.0847 | 0.291 | 0.2264 | 0.9013 |\n",
- "Repeat 33/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 34/50 seed=83\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:28:14.719920: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774790894.730088 1927694 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774790894.733123 1927694 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774790894.740275 1927694 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774790894.740302 1927694 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774790894.740304 1927694 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774790894.740305 1927694 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] seed=83\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=83 ===\n",
- "z mean: 1.3743 (±0.0226), Var: 1.2815, Range: [-3.0381, 4.5444]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774790915.473903 1927694 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774790917.026954 1928055 service.cc:152] XLA service 0x560ac8983800 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774790917.026977 1928055 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774790917.248778 1928055 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774790918.909191 1928055 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1aa07d6b90> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1aa013f910> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 33] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5024, sigma²=0.7937, nugget=0.0121\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4913, sigma²=0.7404, nugget=0.0128\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4910, sigma²=0.7340, nugget=0.0129\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4910, sigma²=0.7313, nugget=0.0130\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4911, sigma²=0.7293, nugget=0.0130\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4916, sigma²=0.7241, nugget=0.0130\n",
- "[repeat 33] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4916, sigma²=0.7241, nugget=0.0130\n",
- "[repeat 33] done → repeat_33_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7052 | 0.8398 | 0.613 | 0.4444 |\n",
- "| OLS_sphere | 200 | 0.1628 | 0.4034 | 0.3191 | 0.8718 |\n",
- "| DeepKriging_wendland | -- | 0.5015 | 0.7082 | 0.5218 | 0.6049 |\n",
- "| DeepKriging_mrts | 10 | 0.1777 | 0.4216 | 0.3365 | 0.86 |\n",
- "| DeepKriging_sphere | 50 | 0.108 | 0.3286 | 0.2574 | 0.9149 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.102 | 0.3194 | 0.2522 | 0.9196 |\n",
- "| UniversalKriging | 1000 | 0.1026 | 0.3204 | 0.2601 | 0.9191 |\n",
- "Repeat 34/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 35/50 seed=84\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:36:23.064670: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774791383.074713 2299009 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774791383.077501 2299009 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774791383.084775 2299009 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774791383.084815 2299009 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774791383.084817 2299009 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774791383.084818 2299009 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] seed=84\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=84 ===\n",
- "z mean: 1.5603 (±0.0163), Var: 0.6678, Range: [-0.9553, 4.1785]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774791403.928711 2299009 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774791405.458461 2299374 service.cc:152] XLA service 0x560af402b490 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774791405.458487 2299374 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774791405.673975 2299374 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774791407.333306 2299374 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f60a0757400> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f60a0292d40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] DeepKriging_mrts best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 34] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2929, sigma²=0.5278, nugget=0.0059\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1793, sigma²=0.3524, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1187, sigma²=0.2506, nugget=0.0012\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0873, sigma²=0.1953, nugget=0.0006\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0803, sigma²=0.1743, nugget=0.0004\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1767, sigma²=0.3074, nugget=0.0014\n",
- "[repeat 34] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1767, sigma²=0.3074, nugget=0.0014\n",
- "[repeat 34] done → repeat_34_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 2.919 | 1.7085 | 0.6083 | -3.6005 |\n",
- "| OLS_sphere | 200 | 0.1622 | 0.4028 | 0.3218 | 0.7443 |\n",
- "| DeepKriging_wendland | -- | 0.2746 | 0.524 | 0.3842 | 0.5672 |\n",
- "| DeepKriging_mrts | 150 | 0.1158 | 0.3403 | 0.2727 | 0.8175 |\n",
- "| DeepKriging_sphere | 50 | 0.0978 | 0.3127 | 0.2543 | 0.8458 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.0969 | 0.3113 | 0.248 | 0.8473 |\n",
- "| UniversalKriging | 1000 | 0.091 | 0.3016 | 0.2387 | 0.8566 |\n",
- "Repeat 35/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 36/50 seed=85\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:45:42.703452: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774791942.713318 2785815 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774791942.716103 2785815 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774791942.723414 2785815 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774791942.723452 2785815 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774791942.723454 2785815 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774791942.723455 2785815 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] seed=85\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=85 ===\n",
- "z mean: 1.2389 (±0.0166), Var: 0.6869, Range: [-1.2404, 3.9469]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774791963.707228 2785815 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774791965.239405 2786180 service.cc:152] XLA service 0x7ff5dc0078f0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774791965.239432 2786180 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774791965.462995 2786180 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774791967.145039 2786180 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff800587760> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff7f87f2f80> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 35] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2367, sigma²=0.4387, nugget=0.0048\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1935, sigma²=0.3703, nugget=0.0022\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1955, sigma²=0.3632, nugget=0.0025\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1341, sigma²=0.2637, nugget=0.0010\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1287, sigma²=0.2506, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0949, sigma²=0.1641, nugget=0.0003\n",
- "[repeat 35] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1287, sigma²=0.2506, nugget=0.0008\n",
- "[repeat 35] done → repeat_35_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.5921 | 0.7695 | 0.5854 | 0.0198 |\n",
- "| OLS_sphere | 200 | 0.1233 | 0.3512 | 0.2815 | 0.7959 |\n",
- "| DeepKriging_wendland | -- | 0.4534 | 0.6734 | 0.5125 | 0.2494 |\n",
- "| DeepKriging_mrts | 10 | 0.1205 | 0.3471 | 0.2729 | 0.8005 |\n",
- "| DeepKriging_sphere | 50 | 0.0888 | 0.298 | 0.2425 | 0.8529 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.0835 | 0.2889 | 0.2337 | 0.8618 |\n",
- "| UniversalKriging | 200 | 0.0785 | 0.2803 | 0.2269 | 0.87 |\n",
- "Repeat 36/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 37/50 seed=86\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 21:54:05.574712: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774792445.584915 3185230 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774792445.587925 3185230 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774792445.595988 3185230 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774792445.596021 3185230 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774792445.596024 3185230 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774792445.596025 3185230 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] seed=86\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=86 ===\n",
- "z mean: 1.0912 (±0.0248), Var: 1.5376, Range: [-3.0567, 4.2445]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774792466.532584 3185230 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774792468.042873 3185591 service.cc:152] XLA service 0x7fe0f4009550 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774792468.042898 3185591 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774792468.261362 3185591 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774792469.902531 3185591 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe3282b9b40> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fe320313ac0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 36] DeepKriging_sphere_Huber best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3519, sigma²=0.5864, nugget=0.0107\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3340, sigma²=0.5593, nugget=0.0084\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3134, sigma²=0.5325, nugget=0.0068\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3118, sigma²=0.5272, nugget=0.0068\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2870, sigma²=0.5016, nugget=0.0050\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2890, sigma²=0.4927, nugget=0.0051\n",
- "[repeat 36] UniversalKriging best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3134, sigma²=0.5325, nugget=0.0068\n",
- "[repeat 36] done → repeat_36_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.6137 | 1.2703 | 0.8483 | -0.1342 |\n",
- "| OLS_sphere | 200 | 0.13 | 0.3606 | 0.2849 | 0.9086 |\n",
- "| DeepKriging_wendland | -- | 0.853 | 0.9236 | 0.691 | 0.4005 |\n",
- "| DeepKriging_mrts | 10 | 0.1348 | 0.3671 | 0.2899 | 0.9053 |\n",
- "| DeepKriging_sphere | 150 | 0.0821 | 0.2866 | 0.2246 | 0.9423 |\n",
- "| DeepKriging_sphere_Huber | 200 | 0.0835 | 0.289 | 0.2265 | 0.9413 |\n",
- "| UniversalKriging | 100 | 0.0802 | 0.2832 | 0.2243 | 0.9436 |\n",
- "Repeat 37/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 38/50 seed=87\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:02:27.903147: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774792947.913195 3613330 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774792947.916261 3613330 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774792947.923725 3613330 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774792947.923752 3613330 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774792947.923754 3613330 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774792947.923755 3613330 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] seed=87\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=87 ===\n",
- "z mean: 0.8601 (±0.0221), Var: 1.2188, Range: [-2.9276, 4.2298]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774792969.075488 3613330 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774792970.621230 3613695 service.cc:152] XLA service 0x7f63e4007900 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774792970.621257 3613695 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774792970.847373 3613695 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774792972.512034 3613695 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f661455f0a0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f660c7bedd0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 37] DeepKriging_sphere_Huber best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.5683, sigma²=0.8976, nugget=0.0122\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4781, sigma²=0.7747, nugget=0.0094\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3653, sigma²=0.6176, nugget=0.0062\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2785, sigma²=0.4860, nugget=0.0041\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0643, sigma²=0.1511, nugget=0.0002\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1570, sigma²=0.2739, nugget=0.0015\n",
- "[repeat 37] UniversalKriging best order: 1000\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1570, sigma²=0.2739, nugget=0.0015\n",
- "[repeat 37] done → repeat_37_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|---------|--------|--------|----------|\n",
- "| OLS_wendland | -- | 48.9732 | 6.9981 | 1.4375 | -37.7989 |\n",
- "| OLS_sphere | 200 | 0.1615 | 0.4019 | 0.3131 | 0.872 |\n",
- "| DeepKriging_wendland | -- | 0.9093 | 0.9536 | 0.7145 | 0.2796 |\n",
- "| DeepKriging_mrts | 50 | 0.1198 | 0.3461 | 0.2669 | 0.9051 |\n",
- "| DeepKriging_sphere | 50 | 0.0924 | 0.304 | 0.2299 | 0.9268 |\n",
- "| DeepKriging_sphere_Huber | 100 | 0.0944 | 0.3073 | 0.2354 | 0.9252 |\n",
- "| UniversalKriging | 1000 | 0.0839 | 0.2897 | 0.2243 | 0.9335 |\n",
- "Repeat 38/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 39/50 seed=88\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:11:01.251540: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774793461.261540 4050030 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774793461.264274 4050030 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774793461.271968 4050030 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774793461.271997 4050030 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774793461.271999 4050030 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774793461.272000 4050030 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] seed=88\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=88 ===\n",
- "z mean: 0.6801 (±0.0182), Var: 0.8296, Range: [-2.0099, 3.7150]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774793482.372786 4050030 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774793483.901863 4050388 service.cc:152] XLA service 0x555ff08838b0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774793483.901891 4050388 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774793484.124349 4050388 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774793485.791333 4050388 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff6f063a8c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7ff6f017f6d0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] DeepKriging_sphere best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 38] DeepKriging_sphere_Huber best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4805, sigma²=0.7121, nugget=0.0097\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2655, sigma²=0.4285, nugget=0.0038\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1856, sigma²=0.3118, nugget=0.0017\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0671, sigma²=0.1462, nugget=0.0002\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1221, sigma²=0.2170, nugget=0.0010\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1397, sigma²=0.2283, nugget=0.0014\n",
- "[repeat 38] UniversalKriging best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1856, sigma²=0.3118, nugget=0.0017\n",
- "[repeat 38] done → repeat_38_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.7264 | 0.8523 | 0.6668 | 0.267 |\n",
- "| OLS_sphere | 200 | 0.1325 | 0.364 | 0.2892 | 0.8663 |\n",
- "| DeepKriging_wendland | -- | 0.4533 | 0.6733 | 0.5098 | 0.5426 |\n",
- "| DeepKriging_mrts | 10 | 0.1412 | 0.3757 | 0.2973 | 0.8575 |\n",
- "| DeepKriging_sphere | 10 | 0.0974 | 0.3121 | 0.2504 | 0.9017 |\n",
- "| DeepKriging_sphere_Huber | 10 | 0.1075 | 0.3279 | 0.2601 | 0.8915 |\n",
- "| UniversalKriging | 100 | 0.0827 | 0.2876 | 0.2206 | 0.9165 |\n",
- "Repeat 39/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 40/50 seed=89\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:18:54.194283: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774793934.206156 224580 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774793934.209124 224580 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774793934.216572 224580 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774793934.216603 224580 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774793934.216605 224580 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774793934.216606 224580 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] seed=89\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=89 ===\n",
- "z mean: 1.3168 (±0.0181), Var: 0.8205, Range: [-1.2173, 4.1009]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774793955.437978 224580 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774793956.985644 224947 service.cc:152] XLA service 0x563481962200 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774793956.985671 224947 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774793957.203387 224947 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774793958.886563 224947 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1b64777130> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f1b642abc70> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] DeepKriging_sphere best order: 100\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 39] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2883, sigma²=0.4744, nugget=0.0070\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2068, sigma²=0.3634, nugget=0.0026\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1996, sigma²=0.3481, nugget=0.0023\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1902, sigma²=0.3294, nugget=0.0021\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1888, sigma²=0.3245, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1835, sigma²=0.3022, nugget=0.0017\n",
- "[repeat 39] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1902, sigma²=0.3294, nugget=0.0021\n",
- "[repeat 39] done → repeat_39_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.3936 | 1.1805 | 0.718 | -0.7773 |\n",
- "| OLS_sphere | 200 | 0.1438 | 0.3792 | 0.2921 | 0.8167 |\n",
- "| DeepKriging_wendland | -- | 0.4136 | 0.6431 | 0.4823 | 0.4726 |\n",
- "| DeepKriging_mrts | 50 | 0.1452 | 0.3811 | 0.2983 | 0.8148 |\n",
- "| DeepKriging_sphere | 100 | 0.1044 | 0.3231 | 0.2477 | 0.8669 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1109 | 0.333 | 0.2587 | 0.8586 |\n",
- "| UniversalKriging | 150 | 0.0955 | 0.309 | 0.2391 | 0.8782 |\n",
- "Repeat 40/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 41/50 seed=90\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:27:17.208878: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774794437.218568 637710 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774794437.221504 637710 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774794437.228986 637710 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774794437.229019 637710 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774794437.229021 637710 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774794437.229023 637710 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] seed=90\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=90 ===\n",
- "z mean: 0.3703 (±0.0187), Var: 0.8759, Range: [-2.3760, 3.1646]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774794458.198312 637710 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774794459.703012 638076 service.cc:152] XLA service 0x7f9914007fa0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774794459.703047 638076 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774794459.918621 638076 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774794461.577341 638076 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9b403931c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f9b385d77f0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 40] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.4260, sigma²=0.6971, nugget=0.0096\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1840, sigma²=0.3428, nugget=0.0022\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1294, sigma²=0.2531, nugget=0.0010\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1481, sigma²=0.2786, nugget=0.0019\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1511, sigma²=0.2807, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0510, sigma²=0.0781, nugget=0.0001\n",
- "[repeat 40] UniversalKriging best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1481, sigma²=0.2786, nugget=0.0019\n",
- "[repeat 40] done → repeat_40_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|--------|\n",
- "| OLS_wendland | -- | 0.6681 | 0.8174 | 0.6333 | 0.2183 |\n",
- "| OLS_sphere | 200 | 0.1291 | 0.3593 | 0.2764 | 0.8489 |\n",
- "| DeepKriging_wendland | -- | 0.4973 | 0.7052 | 0.5228 | 0.4181 |\n",
- "| DeepKriging_mrts | 10 | 0.1413 | 0.3758 | 0.2948 | 0.8347 |\n",
- "| DeepKriging_sphere | 50 | 0.0971 | 0.3116 | 0.243 | 0.8864 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.1043 | 0.3229 | 0.2463 | 0.878 |\n",
- "| UniversalKriging | 150 | 0.0818 | 0.2859 | 0.2134 | 0.9043 |\n",
- "Repeat 41/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 42/50 seed=91\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:35:19.836432: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774794919.846437 996265 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774794919.849211 996265 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774794919.856577 996265 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774794919.856622 996265 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774794919.856625 996265 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774794919.856626 996265 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] seed=91\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=91 ===\n",
- "z mean: 1.1393 (±0.0181), Var: 0.8218, Range: [-1.5814, 3.7554]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774794940.651361 996265 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774794942.158454 996627 service.cc:152] XLA service 0x7fbe18006020 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774794942.158478 996627 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774794942.378678 996627 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774794944.033164 996627 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc0546dac20> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7fc04c4c6200> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] DeepKriging_mrts best order: 10\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] DeepKriging_sphere best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 41] DeepKriging_sphere_Huber best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.2963, sigma²=0.5235, nugget=0.0058\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1488, sigma²=0.2955, nugget=0.0013\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0903, sigma²=0.2005, nugget=0.0005\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1433, sigma²=0.2789, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1469, sigma²=0.2824, nugget=0.0022\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1870, sigma²=0.3163, nugget=0.0014\n",
- "[repeat 41] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1469, sigma²=0.2824, nugget=0.0022\n",
- "[repeat 41] done → repeat_41_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 1.583 | 1.2582 | 0.6723 | -0.6825 |\n",
- "| OLS_sphere | 200 | 0.1512 | 0.3888 | 0.3076 | 0.8393 |\n",
- "| DeepKriging_wendland | -- | 0.4847 | 0.6962 | 0.5327 | 0.4848 |\n",
- "| DeepKriging_mrts | 10 | 0.1559 | 0.3949 | 0.3075 | 0.8343 |\n",
- "| DeepKriging_sphere | 50 | 0.1106 | 0.3325 | 0.2587 | 0.8825 |\n",
- "| DeepKriging_sphere_Huber | 50 | 0.1094 | 0.3308 | 0.2573 | 0.8837 |\n",
- "| UniversalKriging | 200 | 0.1044 | 0.3231 | 0.2466 | 0.889 |\n",
- "Repeat 42/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 43/50 seed=92\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:43:48.976219: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774795428.986278 1399571 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774795428.989218 1399571 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774795428.997567 1399571 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774795428.997599 1399571 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774795428.997601 1399571 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774795428.997602 1399571 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] seed=92\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=92 ===\n",
- "z mean: 0.2381 (±0.0173), Var: 0.7493, Range: [-2.7554, 3.2216]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774795449.690188 1399571 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774795451.221567 1399927 service.cc:152] XLA service 0x7f457001a3d0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774795451.221591 1399927 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774795451.435411 1399927 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774795453.095803 1399927 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f47a8116cb0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to .one_step_on_data_distributed at 0x7f4798343490> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for more details.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] DeepKriging_mrts best order: 50\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] DeepKriging_sphere best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 42] DeepKriging_sphere_Huber best order: 150\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.3053, sigma²=0.5431, nugget=0.0069\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1728, sigma²=0.3362, nugget=0.0020\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1128, sigma²=0.2367, nugget=0.0008\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0576, sigma²=0.1518, nugget=0.0002\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1388, sigma²=0.2634, nugget=0.0011\n",
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.0254, sigma²=0.0479, nugget=0.0000\n",
- "[repeat 42] UniversalKriging best order: 200\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[GPBoost] [Warning] The linear regression covariate data matrix (fixed effect) is rank deficient. This is not necessarily a problem when using gradient descent. If this is not desired, consider dropping some columns / covariates \n",
- "Covariance function: exponential (Matérn ν=0.5)\n",
- "Fitted parameters: nu=0.5000, rho=0.1388, sigma²=0.2634, nugget=0.0011\n",
- "[repeat 42] done → repeat_42_GP_pure_results.json\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Warning message:\n",
- " \n",
- "R callback write-console: In eigs_real_sym(A, nrow(A), k, which, sigma, opts, mattype = \"sym_matrix\", : \n",
- "R callback write-console: \n",
- " \n",
- "R callback write-console: all eigenvalues are requested, eigen() is used instead\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "| Model | Param | MSPE | RMSE | MAE | R2 |\n",
- "|--------------------------|---------|--------|--------|--------|---------|\n",
- "| OLS_wendland | -- | 3.3078 | 1.8187 | 0.6117 | -4.4613 |\n",
- "| OLS_sphere | 200 | 0.16 | 0.4 | 0.3144 | 0.7358 |\n",
- "| DeepKriging_wendland | -- | 0.3126 | 0.5591 | 0.4391 | 0.484 |\n",
- "| DeepKriging_mrts | 50 | 0.1586 | 0.3983 | 0.3152 | 0.7381 |\n",
- "| DeepKriging_sphere | 150 | 0.0954 | 0.3088 | 0.2392 | 0.8426 |\n",
- "| DeepKriging_sphere_Huber | 150 | 0.0994 | 0.3153 | 0.2488 | 0.8359 |\n",
- "| UniversalKriging | 200 | 0.0933 | 0.3055 | 0.2413 | 0.8459 |\n",
- "Repeat 43/50 done — checkpoint saved.\n",
- "\n",
- "======================================================================\n",
- "Repeat 44/50 seed=93\n",
- "======================================================================\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "2026-03-29 22:52:25.809808: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:467] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "E0000 00:00:1774795945.820049 1821213 cuda_dnn.cc:8579] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
- "E0000 00:00:1774795945.822911 1821213 cuda_blas.cc:1407] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
- "W0000 00:00:1774795945.830152 1821213 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774795945.830178 1821213 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774795945.830180 1821213 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n",
- "W0000 00:00:1774795945.830181 1821213 computation_placer.cc:177] computation placer already registered. Please check linkage and avoid linking the same target more than once.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "R callback write-console: Registered S3 methods overwritten by 'RcppEigen':\n",
- " method from \n",
- " predict.fastLm RcppArmadillo\n",
- " print.fastLm RcppArmadillo\n",
- " summary.fastLm RcppArmadillo\n",
- " print.summary.fastLm RcppArmadillo\n",
- " \n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] seed=93\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "=== GP Pure (no noise) | seed=93 ===\n",
- "z mean: 0.6032 (±0.0188), Var: 0.8865, Range: [-2.4669, 3.7870]\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[repeat 43] OLS_sphere best order: 200\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774795966.686790 1821213 gpu_device.cc:2019] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 5592 MB memory: -> device: 0, name: NVIDIA GeForce RTX 3060 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
- "I0000 00:00:1774795968.211884 1821571 service.cc:152] XLA service 0x55f24f8b45b0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:\n",
- "I0000 00:00:1774795968.211906 1821571 service.cc:160] StreamExecutor device (0): NVIDIA GeForce RTX 3060 Ti, Compute Capability 8.6\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774795968.434665 1821571 cuda_dnn.cc:529] Loaded cuDNN version 90501\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "I0000 00:00:1774795970.078249 1821571 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING:tensorflow:5 out of the last 17 calls to |