imbirik / liestationarykernels Goto Github PK
View Code? Open in Web Editor NEWSupplementary code for the paper "Stationary Kernels and Gaussian Processes on Lie Groups and their Homogeneous Spaces"
License: MIT License
Supplementary code for the paper "Stationary Kernels and Gaussian Processes on Lie Groups and their Homogeneous Spaces"
License: MIT License
The links to Part I / Part II of the paper in the readme don't resolve to the correct locations.
Thank you for the clarification for question #3. However, I still feel confused. Why this is the right way? What's the difference between this paper and Matern Gaussian processes on Riemannian manifolds(just the continuous
and discrete
way)? In the file torus.py
(in the package GeometricKernels
), the parametrization is as follows:
x = B.linspace(0, 2*3.14159, 101)
xx = np.meshgrid(x,x)
X = B.stack(*xx, axis=-1).reshape((-1, 2))
Would you like to point out where do I misunderstand? Or, the codes in the LieStationaryKernels
already have 2\pi
in function chi(self, x)
makes them different? Thank you very much!
I run the example code gpr_experiments
, and it seems that the class HomogeneousSpace
is not defined.
Would you like to upload the related codes? Thank you very much!
I write codes for the kernel defined on circles. However, the figure is not right. I can not get the result fig. 2 in the paper. Where do I go wrong in the following codes:
import sys
import torch
from lie_stationary_kernels.spaces.torus import Torus
from lie_stationary_kernels.spectral_kernel import RandomSpectralKernel, RandomFourierFeatureKernel, RandomPhaseKernel
from lie_stationary_kernels.spectral_kernel import EigenbasisSumKernel, EigenbasisKernel
from lie_stationary_kernels.prior_approximation import RandomFourierApproximation
from lie_stationary_kernels.prior_approximation import RandomPhaseApproximation
from lie_stationary_kernels.spectral_measure import MaternSpectralMeasure, SqExpSpectralMeasure
import matplotlib.pyplot as plt
import os
import lab as B
import numpy as np
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"]="1"
torch.autograd.set_detect_anomaly(True)
torch.cuda.set_device("cuda:1")
dtype = torch.float64
device = 'cuda' if torch.cuda.is_available() else 'cpu'
order = 100
space = Torus(n=1, order=order)
print(space.dim)
num = 300
theta = B.linspace(0, 2*3.14159, num).reshape(-1,1)
Y = np.sin(theta)
X = np.cos(theta)
Z = np.zeros_like(Y)
lengthscale, nu = 1, 1.0/2
measure = MaternSpectralMeasure(space.dim, lengthscale, nu)
circle_kernel = EigenbasisSumKernel(measure, space)
circle_sampler = RandomPhaseApproximation(circle_kernel)
index = 20
point = theta[index].reshape(1,-1)
print(theta.shape, point.shape)
circle_matrix = circle_kernel(torch.tensor(theta, device=device, dtype=dtype), torch.tensor(point, device=device, dtype=dtype)).detach().cpu().numpy()
off_set = np.min(circle_matrix)
print(off_set)
k_point = (circle_matrix - off_set).reshape(-1, 1)
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.scatter(X, Y, Z)
ax.scatter(X[0], Y[0], Z[0], c='r', marker = 'D', s=50)
ax.scatter(X, Y, k_point, c='k', marker = 'o', s=50)
ax.axis('off')
plt.show()
Thank you very much!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.