Open In Colab

How to use pgmuvi - a brief introduction

pgmuvi is a package to infer the multiwavelength behaviour of astronomical lightcurves using Gaussian Processes. It uses the torch and gpytorch libraries to define GP models, and the probabilistic programming language pyro to perform optimisation and sampling of the parameter space.

Why pgmuvi

Many packages exist to interpret lightcurves with GPs, so why do we need another one? pgmuvi builds on the latest highly-optimised libraries which allow inference with arbitrary GP kernels. This makes it feasible to implement models that are very general, which is important in astronomy where lightcurves can have a wide range of different properties. However, this normally results in a speed penalty, since naive GPs scale with \(\mathcal{O}\left(n^3\right)\); to combat this, the libraries implement scalable approaches to GP inference, such as GPU computing. This allows both a wide range of GP kernels and fast inference, meaning that pgmuvi can be applied to arbitrary astronomical lightcurves without taking that much longer than codes which are restricted to special cases but blisteringly fast in those cases.

What does pgmuvi do

The objective is to understand what the PSD of the variability is, and in the case of (quasi-)periodic variables determine their dominant periods. To do this, pgmuvi uses a SpectralMixtureKernel, which models the PSD of the covariances of the GP as a Gaussian Mixture model. This is a very flexible model which is able to represent a wide range of different kinds of behaviour, so can be useful for a wide range of astronomical lightcurves.

How to use pgmuvi

The rest of this notebook is basically a quickstart guide to pgmuvi. It generates sythetic observations, but you can replace these with reading in your own data and passing it to pgmuvi’s Lightcurve classes to apply it to your own data.

[1]:
try: #This won't work right now - instead clone the repository and `pip install -e .`
    import pgmuvi
except ImportError:
    %pip install git+https://github.com/ICSM/pgmuvi.git
    import pgmuvi
c:\Users\peter\anaconda3\envs\pgmuvi_dev\Lib\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
  from .autonotebook import tqdm as notebook_tqdm

Now we have imported/installed pgmuvi, we can use it to fit some data. For the purposes of this tutorial, we will generate two synthetic datasets - a single-wavelength lightcurve with very simple behaviour, and a second multi-wavelength one with some more complex patterns in it. It is important to note that the data must be in the form of torch tensors, rather than numpy arrays or other data types.

[2]:
import torch
import gpytorch
import numpy as np
""" Let's generate some synthetic data from a perturbed sine curve
    but on the same time sampling as the real data"""

P = np.random.uniform(30, 300)#137. #Days!
print("True period: ",P," days")
n_data = 400
jd_min = 2450000
n_periods = np.random.uniform(3,10)
jd_max = jd_min + P*(n_periods)
print("Simulating for ",n_periods," periods")

#train_mag =
#train_mag = train_mag + 0.1*torch.randn_like(train_mag)
#train_mag_err = 0.1*train_mag

period_guess = P*(np.random.uniform()+0.5)#147 #this number is in the same units as our original input.

#generate data from a simple case - superimpose two sine curves and add noise
timestamps_1d = torch.Tensor(np.random.uniform(jd_min, jd_max, size=n_data))#generate random x data here
fluxes_1d = torch.sin(timestamps_1d*(2*np.pi/P))#generate random y data here
fluxes_1d += 0.1*torch.randn_like(fluxes_1d)
flux_err_1d = 0.1*fluxes_1d.abs()
True period:  191.5409470071357  days
Simulating for  8.421414540479153  periods

Now that we’ve got some simple data, we can feed it to pgmuvi and see how it handles it.

[3]:
from pgmuvi.lightcurve import Lightcurve

lightcurve_1d = Lightcurve(timestamps_1d, fluxes_1d, yerr = flux_err_1d, xtransform='minmax')

The xtransform argument is important. The computing time and numerical stability of this GP model depends somewhat on the range of frequencies it is asked to compute the PSD on, so it is common to transform the inputs to some simple interval that ensures the frequencies are easier. Astronomical timeseries often cover very long times, and therefore very low frequencies if left in their original units (e.g. Julian Dates), which are particularly difficult to compute on. By default, Lightcurve therefore transforms the data so that it is in the closed interval \(\left[0, 1\right]\), although other transformations (or none) can be defined by the user.

Now that we have a lightcurve, we can try to fit it:

[4]:
fit = lightcurve_1d.fit(model='1D', likelihood='learn', num_mixtures=1, training_iter=3000, miniter=3000)
likelihood.second_noise_covar.noise: tensor([0.3597])
mean_module.constant: 0.0032720565795898438
covar_module.mixture_weights: tensor([0.7194])
covar_module.mixture_means: tensor([[[1.1094]]])
covar_module.mixture_scales: tensor([[[0.0007]]])
  0%|          | 0/3000 [00:00<?, ?it/s]100%|██████████| 3000/3000 [00:34<00:00, 86.73it/s]

this is a very simple case, and we have not specified any of the extra keywords that fit exposes. You will probably want to specify an initial guess of the GP hyperparameters, and the default number of components in the mixture model for the PSD is 4. Each mixture has a mean, scale and weight for the Gaussian, and there is a mean function (a constant mean) and an extra free parameter to learn additional noise in the input data.

Now that the fit is completed, you can manually inspect the results

[5]:
lightcurve_1d.results
[5]:
{'loss': [array(1.0985693, dtype=float32),
  array(1.0978804, dtype=float32),
  array(1.0933409, dtype=float32),
  array(1.0946944, dtype=float32),
  array(1.0932621, dtype=float32),
  array(1.0871872, dtype=float32),
  array(1.0787936, dtype=float32),
  array(1.0800445, dtype=float32),
  array(1.0830836, dtype=float32),
  array(1.0842164, dtype=float32),
  array(1.0841005, dtype=float32),
  array(1.0815794, dtype=float32),
  array(1.0810449, dtype=float32),
  array(1.0793871, dtype=float32),
  array(1.0817178, dtype=float32),
  array(1.0854611, dtype=float32),
  array(1.0832313, dtype=float32),
  array(1.0794153, dtype=float32),
  array(1.073841, dtype=float32),
  array(1.0737989, dtype=float32),
  array(1.0746398, dtype=float32),
  array(1.0752994, dtype=float32),
  array(1.0737047, dtype=float32),
  array(1.0741832, dtype=float32),
  array(1.0670166, dtype=float32),
  array(1.0665865, dtype=float32),
  array(1.0738721, dtype=float32),
  array(1.0781235, dtype=float32),
  array(1.0772642, dtype=float32),
  array(1.0775305, dtype=float32),
  array(1.0776106, dtype=float32),
  array(1.0770274, dtype=float32),
  array(1.076887, dtype=float32),
  array(1.0746367, dtype=float32),
  array(1.0705236, dtype=float32),
  array(1.0740145, dtype=float32),
  array(1.0731524, dtype=float32),
  array(1.0749303, dtype=float32),
  array(1.0745273, dtype=float32),
  array(1.0719239, dtype=float32),
  array(1.0741999, dtype=float32),
  array(1.0747466, dtype=float32),
  array(1.0746706, dtype=float32),
  array(1.07339, dtype=float32),
  array(1.0711993, dtype=float32),
  array(1.0712013, dtype=float32),
  array(1.0723081, dtype=float32),
  array(1.0640221, dtype=float32),
  array(1.0719002, dtype=float32),
  array(1.0678185, dtype=float32),
  array(1.0734422, dtype=float32),
  array(1.0730437, dtype=float32),
  array(1.0701054, dtype=float32),
  array(1.0717872, dtype=float32),
  array(1.073201, dtype=float32),
  array(1.0725162, dtype=float32),
  array(1.0681152, dtype=float32),
  array(1.0710341, dtype=float32),
  array(1.0681715, dtype=float32),
  array(1.0713445, dtype=float32),
  array(1.0717949, dtype=float32),
  array(1.0687833, dtype=float32),
  array(1.0721068, dtype=float32),
  array(1.0715322, dtype=float32),
  array(1.071648, dtype=float32),
  array(1.0694504, dtype=float32),
  array(1.0720379, dtype=float32),
  array(1.0721469, dtype=float32),
  array(1.0664124, dtype=float32),
  array(1.0705827, dtype=float32),
  array(1.0715824, dtype=float32),
  array(1.0678837, dtype=float32),
  array(1.0698781, dtype=float32),
  array(1.0651017, dtype=float32),
  array(1.0711963, dtype=float32),
  array(1.0694562, dtype=float32),
  array(1.0701557, dtype=float32),
  array(1.0710346, dtype=float32),
  array(1.06881, dtype=float32),
  array(1.069854, dtype=float32),
  array(1.0670161, dtype=float32),
  array(1.0706648, dtype=float32),
  array(1.067766, dtype=float32),
  array(1.0670944, dtype=float32),
  array(1.0687851, dtype=float32),
  array(1.0695548, dtype=float32),
  array(1.0691322, dtype=float32),
  array(1.0690482, dtype=float32),
  array(1.0662991, dtype=float32),
  array(1.0703874, dtype=float32),
  array(1.0703491, dtype=float32),
  array(1.0695795, dtype=float32),
  array(1.0688903, dtype=float32),
  array(1.0699162, dtype=float32),
  array(1.0701275, dtype=float32),
  array(1.067162, dtype=float32),
  array(1.070332, dtype=float32),
  array(1.0694333, dtype=float32),
  array(1.0695944, dtype=float32),
  array(1.0699774, dtype=float32),
  array(1.0659372, dtype=float32),
  array(1.0692346, dtype=float32),
  array(1.0699176, dtype=float32),
  array(1.0672032, dtype=float32),
  array(1.0701317, dtype=float32),
  array(1.0688269, dtype=float32),
  array(1.0661196, dtype=float32),
  array(1.069944, dtype=float32),
  array(1.0684428, dtype=float32),
  array(1.0674486, dtype=float32),
  array(1.0695305, dtype=float32),
  array(1.0692575, dtype=float32),
  array(1.0693384, dtype=float32),
  array(1.0681034, dtype=float32),
  array(1.0697224, dtype=float32),
  array(1.0648558, dtype=float32),
  array(1.0686649, dtype=float32),
  array(1.0684677, dtype=float32),
  array(1.0670204, dtype=float32),
  array(1.0679982, dtype=float32),
  array(1.0691205, dtype=float32),
  array(1.0694668, dtype=float32),
  array(1.0689602, dtype=float32),
  array(1.0669516, dtype=float32),
  array(1.0685328, dtype=float32),
  array(1.0680522, dtype=float32),
  array(1.0691648, dtype=float32),
  array(1.068977, dtype=float32),
  array(1.0676285, dtype=float32),
  array(1.0696645, dtype=float32),
  array(1.0675566, dtype=float32),
  array(1.0676876, dtype=float32),
  array(1.0697639, dtype=float32),
  array(1.0666989, dtype=float32),
  array(1.0696197, dtype=float32),
  array(1.0686764, dtype=float32),
  array(1.0686876, dtype=float32),
  array(1.0694501, dtype=float32),
  array(1.069577, dtype=float32),
  array(1.0697229, dtype=float32),
  array(1.0697968, dtype=float32),
  array(1.067597, dtype=float32),
  array(1.0695294, dtype=float32),
  array(1.0682164, dtype=float32),
  array(1.0691962, dtype=float32),
  array(1.0694959, dtype=float32),
  array(1.0675387, dtype=float32),
  array(1.0695322, dtype=float32),
  array(1.0677979, dtype=float32),
  array(1.0670505, dtype=float32),
  array(1.0695667, dtype=float32),
  array(1.0687311, dtype=float32),
  array(1.0690287, dtype=float32),
  array(1.0695791, dtype=float32),
  array(1.068884, dtype=float32),
  array(1.0692731, dtype=float32),
  array(1.069029, dtype=float32),
  array(1.0688168, dtype=float32),
  array(1.0694973, dtype=float32),
  array(1.0691216, dtype=float32),
  array(1.0695603, dtype=float32),
  array(1.0686941, dtype=float32),
  array(1.0689552, dtype=float32),
  array(1.0690504, dtype=float32),
  array(1.0693508, dtype=float32),
  array(1.0674765, dtype=float32),
  array(1.0691497, dtype=float32),
  array(1.0667511, dtype=float32),
  array(1.0684663, dtype=float32),
  array(1.0682744, dtype=float32),
  array(1.069342, dtype=float32),
  array(1.0690304, dtype=float32),
  array(1.0683355, dtype=float32),
  array(1.0691906, dtype=float32),
  array(1.069171, dtype=float32),
  array(1.0679162, dtype=float32),
  array(1.0689229, dtype=float32),
  array(1.0692604, dtype=float32),
  array(1.069274, dtype=float32),
  array(1.0689096, dtype=float32),
  array(1.0682418, dtype=float32),
  array(1.069271, dtype=float32),
  array(1.069343, dtype=float32),
  array(1.0689038, dtype=float32),
  array(1.0683064, dtype=float32),
  array(1.068502, dtype=float32),
  array(1.0677224, dtype=float32),
  array(1.0691816, dtype=float32),
  array(1.0692623, dtype=float32),
  array(1.0679759, dtype=float32),
  array(1.0678436, dtype=float32),
  array(1.0689903, dtype=float32),
  array(1.0688928, dtype=float32),
  array(1.0689968, dtype=float32),
  array(1.0691899, dtype=float32),
  array(1.0689108, dtype=float32),
  array(1.0691411, dtype=float32),
  array(1.068185, dtype=float32),
  array(1.0691406, dtype=float32),
  array(1.0675029, dtype=float32),
  array(1.0676912, dtype=float32),
  array(1.068599, dtype=float32),
  array(1.0683484, dtype=float32),
  array(1.0688505, dtype=float32),
  array(1.0689107, dtype=float32),
  array(1.068641, dtype=float32),
  array(1.0691168, dtype=float32),
  array(1.0691394, dtype=float32),
  array(1.0691794, dtype=float32),
  array(1.0687402, dtype=float32),
  array(1.0691216, dtype=float32),
  array(1.0690885, dtype=float32),
  array(1.0685954, dtype=float32),
  array(1.0687829, dtype=float32),
  array(1.0679203, dtype=float32),
  array(1.0669233, dtype=float32),
  array(1.0685216, dtype=float32),
  array(1.0683434, dtype=float32),
  array(1.0691614, dtype=float32),
  array(1.0690593, dtype=float32),
  array(1.0689555, dtype=float32),
  array(1.0690993, dtype=float32),
  array(1.0689942, dtype=float32),
  array(1.0690789, dtype=float32),
  array(1.0673343, dtype=float32),
  array(1.0679154, dtype=float32),
  array(1.0689404, dtype=float32),
  array(1.0687134, dtype=float32),
  array(1.0690695, dtype=float32),
  array(1.0690477, dtype=float32),
  array(1.0687829, dtype=float32),
  array(1.0688529, dtype=float32),
  array(1.068114, dtype=float32),
  array(1.0690105, dtype=float32),
  array(1.0690769, dtype=float32),
  array(1.0688847, dtype=float32),
  array(1.0687923, dtype=float32),
  array(1.0690137, dtype=float32),
  array(1.0686189, dtype=float32),
  array(1.0682007, dtype=float32),
  array(1.0684073, dtype=float32),
  array(1.0681244, dtype=float32),
  array(1.0689893, dtype=float32),
  array(1.0689696, dtype=float32),
  array(1.0656382, dtype=float32),
  array(1.0678132, dtype=float32),
  array(1.068265, dtype=float32),
  array(1.0681715, dtype=float32),
  array(1.0683756, dtype=float32),
  array(1.0690162, dtype=float32),
  array(1.0684376, dtype=float32),
  array(1.0687106, dtype=float32),
  array(1.0664513, dtype=float32),
  array(1.0674969, dtype=float32),
  array(1.0681461, dtype=float32),
  array(1.0686494, dtype=float32),
  array(1.0688205, dtype=float32),
  array(1.068907, dtype=float32),
  array(1.0658604, dtype=float32),
  array(1.0673473, dtype=float32),
  array(1.0691521, dtype=float32),
  array(1.0691969, dtype=float32),
  array(1.0690539, dtype=float32),
  array(1.0686954, dtype=float32),
  array(1.068353, dtype=float32),
  array(1.0680643, dtype=float32),
  array(1.0669541, dtype=float32),
  array(1.0671242, dtype=float32),
  array(1.0689192, dtype=float32),
  array(1.0690926, dtype=float32),
  array(1.0691757, dtype=float32),
  array(1.0687695, dtype=float32),
  array(1.0669866, dtype=float32),
  array(1.0682588, dtype=float32),
  array(1.0693353, dtype=float32),
  array(1.0684239, dtype=float32),
  array(1.0677986, dtype=float32),
  array(1.0676124, dtype=float32),
  array(1.0673769, dtype=float32),
  array(1.0680295, dtype=float32),
  array(1.0687294, dtype=float32),
  array(1.0690238, dtype=float32),
  array(1.0692031, dtype=float32),
  array(1.0680445, dtype=float32),
  array(1.0679064, dtype=float32),
  array(1.0692619, dtype=float32),
  array(1.0690453, dtype=float32),
  array(1.0693167, dtype=float32),
  array(1.0689049, dtype=float32),
  array(1.0691658, dtype=float32),
  array(1.0689385, dtype=float32),
  array(1.0688672, dtype=float32),
  array(1.067494, dtype=float32),
  array(1.0688963, dtype=float32),
  array(1.0693313, dtype=float32),
  array(1.0683577, dtype=float32),
  array(1.0681374, dtype=float32),
  array(1.0691246, dtype=float32),
  array(1.0683544, dtype=float32),
  array(1.0691633, dtype=float32),
  array(1.0690532, dtype=float32),
  array(1.0687895, dtype=float32),
  array(1.0691626, dtype=float32),
  array(1.0690895, dtype=float32),
  array(1.0689574, dtype=float32),
  array(1.0687184, dtype=float32),
  array(1.0691026, dtype=float32),
  array(1.0685576, dtype=float32),
  array(1.067743, dtype=float32),
  array(1.0690277, dtype=float32),
  array(1.0680343, dtype=float32),
  array(1.0686394, dtype=float32),
  array(1.0692014, dtype=float32),
  array(1.068725, dtype=float32),
  array(1.068677, dtype=float32),
  array(1.0692, dtype=float32),
  array(1.0691483, dtype=float32),
  array(1.06907, dtype=float32),
  array(1.0691614, dtype=float32),
  array(1.0691574, dtype=float32),
  array(1.0688615, dtype=float32),
  array(1.068519, dtype=float32),
  array(1.068605, dtype=float32),
  array(1.0689583, dtype=float32),
  array(1.069069, dtype=float32),
  array(1.0688671, dtype=float32),
  array(1.0689869, dtype=float32),
  array(1.068878, dtype=float32),
  array(1.068493, dtype=float32),
  array(1.0685072, dtype=float32),
  array(1.0688843, dtype=float32),
  array(1.0687672, dtype=float32),
  array(1.0689403, dtype=float32),
  array(1.0683665, dtype=float32),
  array(1.0687039, dtype=float32),
  array(1.0690032, dtype=float32),
  array(1.0690141, dtype=float32),
  array(1.0689472, dtype=float32),
  array(1.0688664, dtype=float32),
  array(1.0682693, dtype=float32),
  array(1.0685235, dtype=float32),
  array(1.0689126, dtype=float32),
  array(1.0688775, dtype=float32),
  array(1.068713, dtype=float32),
  array(1.0688258, dtype=float32),
  array(1.0687261, dtype=float32),
  array(1.0667804, dtype=float32),
  array(1.0660584, dtype=float32),
  array(1.0686685, dtype=float32),
  array(1.0679543, dtype=float32),
  array(1.068822, dtype=float32),
  array(1.0683916, dtype=float32),
  array(1.068624, dtype=float32),
  array(1.0689529, dtype=float32),
  array(1.0681871, dtype=float32),
  array(1.0676377, dtype=float32),
  array(1.068439, dtype=float32),
  array(1.0688298, dtype=float32),
  array(1.0685037, dtype=float32),
  array(1.068055, dtype=float32),
  array(1.0675979, dtype=float32),
  array(1.0687143, dtype=float32),
  array(1.0690078, dtype=float32),
  array(1.0687803, dtype=float32),
  array(1.0689359, dtype=float32),
  array(1.068756, dtype=float32),
  array(1.0687914, dtype=float32),
  array(1.0689366, dtype=float32),
  array(1.0687573, dtype=float32),
  array(1.068883, dtype=float32),
  array(1.0681866, dtype=float32),
  array(1.0686487, dtype=float32),
  array(1.068511, dtype=float32),
  array(1.0688226, dtype=float32),
  array(1.0683522, dtype=float32),
  array(1.0682886, dtype=float32),
  array(1.0686641, dtype=float32),
  array(1.0689212, dtype=float32),
  array(1.0690101, dtype=float32),
  array(1.0689696, dtype=float32),
  array(1.0684506, dtype=float32),
  array(1.0678884, dtype=float32),
  array(1.0675535, dtype=float32),
  array(1.0681618, dtype=float32),
  array(1.0689626, dtype=float32),
  array(1.0689099, dtype=float32),
  array(1.0689408, dtype=float32),
  array(1.0689358, dtype=float32),
  array(1.068923, dtype=float32),
  array(1.0689862, dtype=float32),
  array(1.0690067, dtype=float32),
  array(1.0687242, dtype=float32),
  array(1.0681467, dtype=float32),
  array(1.0670263, dtype=float32),
  array(1.0671948, dtype=float32),
  array(1.0684422, dtype=float32),
  array(1.0680639, dtype=float32),
  array(1.0683851, dtype=float32),
  array(1.0687186, dtype=float32),
  array(1.0688461, dtype=float32),
  array(1.0689731, dtype=float32),
  array(1.0690176, dtype=float32),
  array(1.068589, dtype=float32),
  array(1.0685072, dtype=float32),
  array(1.0688885, dtype=float32),
  array(1.0682868, dtype=float32),
  array(1.0685352, dtype=float32),
  array(1.0687195, dtype=float32),
  array(1.0687919, dtype=float32),
  array(1.0684525, dtype=float32),
  array(1.0683535, dtype=float32),
  array(1.0687072, dtype=float32),
  array(1.0688293, dtype=float32),
  array(1.0689691, dtype=float32),
  array(1.0686, dtype=float32),
  array(1.067472, dtype=float32),
  array(1.0673184, dtype=float32),
  array(1.0683494, dtype=float32),
  array(1.0689021, dtype=float32),
  array(1.0689806, dtype=float32),
  array(1.0689839, dtype=float32),
  array(1.0688083, dtype=float32),
  array(1.0687766, dtype=float32),
  array(1.0685816, dtype=float32),
  array(1.0683446, dtype=float32),
  array(1.0687464, dtype=float32),
  array(1.0686734, dtype=float32),
  array(1.0687248, dtype=float32),
  array(1.0672851, dtype=float32),
  array(1.0680254, dtype=float32),
  array(1.068653, dtype=float32),
  array(1.0686154, dtype=float32),
  array(1.0685714, dtype=float32),
  array(1.0678279, dtype=float32),
  array(1.0685924, dtype=float32),
  array(1.06899, dtype=float32),
  array(1.0688511, dtype=float32),
  array(1.0689205, dtype=float32),
  array(1.0688484, dtype=float32),
  array(1.0689037, dtype=float32),
  array(1.0685574, dtype=float32),
  array(1.0676706, dtype=float32),
  array(1.0678687, dtype=float32),
  array(1.0685083, dtype=float32),
  array(1.0689088, dtype=float32),
  array(1.0688792, dtype=float32),
  array(1.0690167, dtype=float32),
  array(1.0688846, dtype=float32),
  array(1.0687473, dtype=float32),
  array(1.0688732, dtype=float32),
  array(1.0687176, dtype=float32),
  array(1.0687479, dtype=float32),
  array(1.0689429, dtype=float32),
  array(1.0690045, dtype=float32),
  array(1.0688332, dtype=float32),
  array(1.0685862, dtype=float32),
  array(1.0687944, dtype=float32),
  array(1.0689635, dtype=float32),
  array(1.0688881, dtype=float32),
  array(1.0688945, dtype=float32),
  array(1.0688105, dtype=float32),
  array(1.068768, dtype=float32),
  array(1.068791, dtype=float32),
  array(1.068479, dtype=float32),
  array(1.0683999, dtype=float32),
  array(1.0677191, dtype=float32),
  array(1.067846, dtype=float32),
  array(1.068711, dtype=float32),
  array(1.0689216, dtype=float32),
  array(1.068738, dtype=float32),
  array(1.0686464, dtype=float32),
  array(1.0687442, dtype=float32),
  array(1.0682501, dtype=float32),
  array(1.0682621, dtype=float32),
  array(1.0688012, dtype=float32),
  array(1.0688491, dtype=float32),
  array(1.0687431, dtype=float32),
  array(1.0685763, dtype=float32),
  array(1.0687245, dtype=float32),
  array(1.068258, dtype=float32),
  array(1.0684866, dtype=float32),
  array(1.0681437, dtype=float32),
  array(1.068179, dtype=float32),
  array(1.0682783, dtype=float32),
  array(1.0685585, dtype=float32),
  array(1.0682497, dtype=float32),
  array(1.0682547, dtype=float32),
  array(1.0687253, dtype=float32),
  array(1.0687538, dtype=float32),
  array(1.0688671, dtype=float32),
  array(1.0688312, dtype=float32),
  array(1.0685655, dtype=float32),
  array(1.0682297, dtype=float32),
  array(1.0683748, dtype=float32),
  array(1.0687356, dtype=float32),
  array(1.0688406, dtype=float32),
  array(1.0685686, dtype=float32),
  array(1.0684874, dtype=float32),
  array(1.068081, dtype=float32),
  array(1.0683663, dtype=float32),
  array(1.0686544, dtype=float32),
  array(1.0681121, dtype=float32),
  array(1.0676271, dtype=float32),
  array(1.067893, dtype=float32),
  array(1.0686039, dtype=float32),
  array(1.0687462, dtype=float32),
  array(1.0688969, dtype=float32),
  array(1.0689336, dtype=float32),
  array(1.0688902, dtype=float32),
  array(1.0688878, dtype=float32),
  array(1.068925, dtype=float32),
  array(1.068738, dtype=float32),
  array(1.0686336, dtype=float32),
  array(1.0686233, dtype=float32),
  array(1.0687451, dtype=float32),
  array(1.0688962, dtype=float32),
  array(1.0688515, dtype=float32),
  array(1.0688353, dtype=float32),
  array(1.0688453, dtype=float32),
  array(1.068664, dtype=float32),
  array(1.0683457, dtype=float32),
  array(1.0684859, dtype=float32),
  array(1.0686096, dtype=float32),
  array(1.0685718, dtype=float32),
  array(1.0686448, dtype=float32),
  array(1.0686731, dtype=float32),
  array(1.068692, dtype=float32),
  array(1.0687011, dtype=float32),
  array(1.0685917, dtype=float32),
  array(1.0680753, dtype=float32),
  array(1.0682293, dtype=float32),
  array(1.068739, dtype=float32),
  array(1.0687848, dtype=float32),
  array(1.068775, dtype=float32),
  array(1.0683374, dtype=float32),
  array(1.068356, dtype=float32),
  array(1.068543, dtype=float32),
  array(1.0683544, dtype=float32),
  array(1.0686988, dtype=float32),
  array(1.0687221, dtype=float32),
  array(1.0687431, dtype=float32),
  array(1.0687168, dtype=float32),
  array(1.0687778, dtype=float32),
  array(1.0686886, dtype=float32),
  array(1.0684628, dtype=float32),
  array(1.0682702, dtype=float32),
  array(1.0683862, dtype=float32),
  array(1.0687089, dtype=float32),
  array(1.0685585, dtype=float32),
  array(1.0686429, dtype=float32),
  array(1.0684782, dtype=float32),
  array(1.0685146, dtype=float32),
  array(1.0687312, dtype=float32),
  array(1.068604, dtype=float32),
  array(1.0687054, dtype=float32),
  array(1.0687736, dtype=float32),
  array(1.0687557, dtype=float32),
  array(1.0687988, dtype=float32),
  array(1.0687602, dtype=float32),
  array(1.0687764, dtype=float32),
  array(1.0685965, dtype=float32),
  array(1.0684094, dtype=float32),
  array(1.0686259, dtype=float32),
  array(1.0687927, dtype=float32),
  array(1.0687293, dtype=float32),
  array(1.0687577, dtype=float32),
  array(1.0687845, dtype=float32),
  array(1.0685198, dtype=float32),
  array(1.0678128, dtype=float32),
  array(1.067729, dtype=float32),
  array(1.0684097, dtype=float32),
  array(1.0687704, dtype=float32),
  array(1.0686831, dtype=float32),
  array(1.0684004, dtype=float32),
  array(1.0685343, dtype=float32),
  array(1.0687516, dtype=float32),
  array(1.0687981, dtype=float32),
  array(1.0687206, dtype=float32),
  array(1.0686376, dtype=float32),
  array(1.0686812, dtype=float32),
  array(1.0684445, dtype=float32),
  array(1.0683191, dtype=float32),
  array(1.0684373, dtype=float32),
  array(1.0683807, dtype=float32),
  array(1.0684067, dtype=float32),
  array(1.0686573, dtype=float32),
  array(1.0686787, dtype=float32),
  array(1.0683903, dtype=float32),
  array(1.0682192, dtype=float32),
  array(1.0683857, dtype=float32),
  array(1.0686481, dtype=float32),
  array(1.0685006, dtype=float32),
  array(1.0678931, dtype=float32),
  array(1.0676795, dtype=float32),
  array(1.0681491, dtype=float32),
  array(1.0686324, dtype=float32),
  array(1.068796, dtype=float32),
  array(1.0687318, dtype=float32),
  array(1.0686513, dtype=float32),
  array(1.0686543, dtype=float32),
  array(1.0687433, dtype=float32),
  array(1.0687474, dtype=float32),
  array(1.0685322, dtype=float32),
  array(1.0683259, dtype=float32),
  array(1.0684029, dtype=float32),
  array(1.0686423, dtype=float32),
  array(1.068723, dtype=float32),
  array(1.0682325, dtype=float32),
  array(1.067845, dtype=float32),
  array(1.068346, dtype=float32),
  array(1.0686316, dtype=float32),
  array(1.0683304, dtype=float32),
  array(1.0683671, dtype=float32),
  array(1.0685706, dtype=float32),
  array(1.0681353, dtype=float32),
  array(1.0679244, dtype=float32),
  array(1.068446, dtype=float32),
  array(1.0683489, dtype=float32),
  array(1.067909, dtype=float32),
  array(1.0681535, dtype=float32),
  array(1.0686344, dtype=float32),
  array(1.0687022, dtype=float32),
  array(1.0685745, dtype=float32),
  array(1.068591, dtype=float32),
  array(1.0684919, dtype=float32),
  array(1.0684661, dtype=float32),
  array(1.0685959, dtype=float32),
  array(1.0686793, dtype=float32),
  array(1.0687392, dtype=float32),
  array(1.0687658, dtype=float32),
  array(1.0687926, dtype=float32),
  array(1.0688696, dtype=float32),
  array(1.0688471, dtype=float32),
  array(1.0686331, dtype=float32),
  array(1.0685619, dtype=float32),
  array(1.0686102, dtype=float32),
  array(1.0686553, dtype=float32),
  array(1.0687922, dtype=float32),
  array(1.0688239, dtype=float32),
  array(1.068645, dtype=float32),
  array(1.0684307, dtype=float32),
  array(1.0685565, dtype=float32),
  array(1.0686951, dtype=float32),
  array(1.0685277, dtype=float32),
  array(1.0685898, dtype=float32),
  array(1.0687655, dtype=float32),
  array(1.0687584, dtype=float32),
  array(1.0687089, dtype=float32),
  array(1.0685737, dtype=float32),
  array(1.0684034, dtype=float32),
  array(1.068403, dtype=float32),
  array(1.0686212, dtype=float32),
  array(1.0688149, dtype=float32),
  array(1.0688264, dtype=float32),
  array(1.0687702, dtype=float32),
  array(1.0687208, dtype=float32),
  array(1.0685229, dtype=float32),
  array(1.0682821, dtype=float32),
  array(1.0683831, dtype=float32),
  array(1.0686498, dtype=float32),
  array(1.0687555, dtype=float32),
  array(1.0685598, dtype=float32),
  array(1.0682113, dtype=float32),
  array(1.0682902, dtype=float32),
  array(1.0684856, dtype=float32),
  array(1.0682786, dtype=float32),
  array(1.0681813, dtype=float32),
  array(1.0685005, dtype=float32),
  array(1.0687442, dtype=float32),
  array(1.0686611, dtype=float32),
  array(1.0683846, dtype=float32),
  array(1.0678352, dtype=float32),
  array(1.0674738, dtype=float32),
  array(1.0679593, dtype=float32),
  array(1.0685924, dtype=float32),
  array(1.0687925, dtype=float32),
  array(1.068796, dtype=float32),
  array(1.0686548, dtype=float32),
  array(1.0685979, dtype=float32),
  array(1.0687382, dtype=float32),
  array(1.0688541, dtype=float32),
  array(1.0688837, dtype=float32),
  array(1.0688306, dtype=float32),
  array(1.0686939, dtype=float32),
  array(1.0685376, dtype=float32),
  array(1.0684224, dtype=float32),
  array(1.0684122, dtype=float32),
  array(1.0685546, dtype=float32),
  array(1.0687584, dtype=float32),
  array(1.0688548, dtype=float32),
  array(1.0688611, dtype=float32),
  array(1.0688279, dtype=float32),
  array(1.0686551, dtype=float32),
  array(1.0684942, dtype=float32),
  array(1.0685921, dtype=float32),
  array(1.0687529, dtype=float32),
  array(1.0687094, dtype=float32),
  array(1.0684633, dtype=float32),
  array(1.0682393, dtype=float32),
  array(1.0682085, dtype=float32),
  array(1.0682281, dtype=float32),
  array(1.0683254, dtype=float32),
  array(1.0685868, dtype=float32),
  array(1.0687829, dtype=float32),
  array(1.0687323, dtype=float32),
  array(1.0684956, dtype=float32),
  array(1.0683931, dtype=float32),
  array(1.0685358, dtype=float32),
  array(1.0686251, dtype=float32),
  array(1.0685793, dtype=float32),
  array(1.0685064, dtype=float32),
  array(1.0685496, dtype=float32),
  array(1.068646, dtype=float32),
  array(1.0685081, dtype=float32),
  array(1.0684135, dtype=float32),
  array(1.0685899, dtype=float32),
  array(1.0687053, dtype=float32),
  array(1.0687269, dtype=float32),
  array(1.0687096, dtype=float32),
  array(1.0686368, dtype=float32),
  array(1.0686423, dtype=float32),
  array(1.0687238, dtype=float32),
  array(1.0687546, dtype=float32),
  array(1.0687139, dtype=float32),
  array(1.0686951, dtype=float32),
  array(1.068729, dtype=float32),
  array(1.0686967, dtype=float32),
  array(1.0686541, dtype=float32),
  array(1.0687135, dtype=float32),
  array(1.068775, dtype=float32),
  array(1.0687597, dtype=float32),
  array(1.0686997, dtype=float32),
  array(1.0686877, dtype=float32),
  array(1.0687364, dtype=float32),
  array(1.0687488, dtype=float32),
  array(1.0687276, dtype=float32),
  array(1.0687463, dtype=float32),
  array(1.0687637, dtype=float32),
  array(1.0687077, dtype=float32),
  array(1.0685652, dtype=float32),
  array(1.0684476, dtype=float32),
  array(1.0684563, dtype=float32),
  array(1.068523, dtype=float32),
  array(1.068582, dtype=float32),
  array(1.0686508, dtype=float32),
  array(1.0686946, dtype=float32),
  array(1.0686346, dtype=float32),
  array(1.0684735, dtype=float32),
  array(1.0683773, dtype=float32),
  array(1.0684563, dtype=float32),
  array(1.0685585, dtype=float32),
  array(1.0685567, dtype=float32),
  array(1.0685453, dtype=float32),
  array(1.0686059, dtype=float32),
  array(1.0686576, dtype=float32),
  array(1.0686287, dtype=float32),
  array(1.0685837, dtype=float32),
  array(1.0685164, dtype=float32),
  array(1.0684127, dtype=float32),
  array(1.0684366, dtype=float32),
  array(1.0684929, dtype=float32),
  array(1.0683011, dtype=float32),
  array(1.0680594, dtype=float32),
  array(1.0680606, dtype=float32),
  array(1.0681049, dtype=float32),
  array(1.0679162, dtype=float32),
  array(1.0676347, dtype=float32),
  array(1.0676737, dtype=float32),
  array(1.0681034, dtype=float32),
  array(1.0685233, dtype=float32),
  array(1.0686531, dtype=float32),
  array(1.0685897, dtype=float32),
  array(1.0685269, dtype=float32),
  array(1.0685573, dtype=float32),
  array(1.0686473, dtype=float32),
  array(1.0687068, dtype=float32),
  array(1.0686835, dtype=float32),
  array(1.068622, dtype=float32),
  array(1.0686133, dtype=float32),
  array(1.068659, dtype=float32),
  array(1.0686864, dtype=float32),
  array(1.0686946, dtype=float32),
  array(1.0687307, dtype=float32),
  array(1.0687727, dtype=float32),
  array(1.0687361, dtype=float32),
  array(1.0685996, dtype=float32),
  array(1.0684838, dtype=float32),
  array(1.0684679, dtype=float32),
  array(1.0684034, dtype=float32),
  array(1.0682245, dtype=float32),
  array(1.0681785, dtype=float32),
  array(1.0683734, dtype=float32),
  array(1.0685765, dtype=float32),
  array(1.0686448, dtype=float32),
  array(1.0686312, dtype=float32),
  array(1.0686334, dtype=float32),
  array(1.0686674, dtype=float32),
  array(1.068614, dtype=float32),
  array(1.0685053, dtype=float32),
  array(1.0685153, dtype=float32),
  array(1.068523, dtype=float32),
  array(1.0684035, dtype=float32),
  array(1.0683732, dtype=float32),
  array(1.0685254, dtype=float32),
  array(1.0686538, dtype=float32),
  array(1.0686027, dtype=float32),
  array(1.0684503, dtype=float32),
  array(1.0683845, dtype=float32),
  array(1.0683137, dtype=float32),
  array(1.068046, dtype=float32),
  array(1.067902, dtype=float32),
  array(1.0681708, dtype=float32),
  array(1.0684638, dtype=float32),
  array(1.0684584, dtype=float32),
  array(1.0683805, dtype=float32),
  array(1.0684674, dtype=float32),
  array(1.0686203, dtype=float32),
  array(1.0686858, dtype=float32),
  array(1.0686946, dtype=float32),
  array(1.0686892, dtype=float32),
  array(1.0686069, dtype=float32),
  array(1.0685112, dtype=float32),
  array(1.0685542, dtype=float32),
  array(1.0686203, dtype=float32),
  array(1.068536, dtype=float32),
  array(1.0684382, dtype=float32),
  array(1.0685025, dtype=float32),
  array(1.0686561, dtype=float32),
  array(1.0687691, dtype=float32),
  array(1.0687988, dtype=float32),
  array(1.0687493, dtype=float32),
  array(1.0686843, dtype=float32),
  array(1.0686884, dtype=float32),
  array(1.0687523, dtype=float32),
  array(1.0687824, dtype=float32),
  array(1.0687206, dtype=float32),
  array(1.0686064, dtype=float32),
  array(1.0685275, dtype=float32),
  array(1.0685312, dtype=float32),
  array(1.0685952, dtype=float32),
  array(1.0686581, dtype=float32),
  array(1.0686798, dtype=float32),
  array(1.0686677, dtype=float32),
  array(1.0686668, dtype=float32),
  array(1.068703, dtype=float32),
  array(1.0687336, dtype=float32),
  array(1.0686775, dtype=float32),
  array(1.068527, dtype=float32),
  array(1.0684042, dtype=float32),
  array(1.0684241, dtype=float32),
  array(1.0685388, dtype=float32),
  array(1.0686339, dtype=float32),
  array(1.0686859, dtype=float32),
  array(1.0687225, dtype=float32),
  array(1.0687425, dtype=float32),
  array(1.0687432, dtype=float32),
  array(1.0687389, dtype=float32),
  array(1.0687355, dtype=float32),
  array(1.0687377, dtype=float32),
  array(1.0687432, dtype=float32),
  array(1.0687374, dtype=float32),
  array(1.0687255, dtype=float32),
  array(1.068708, dtype=float32),
  array(1.0686458, dtype=float32),
  array(1.0685326, dtype=float32),
  array(1.0684508, dtype=float32),
  array(1.0684786, dtype=float32),
  array(1.0685843, dtype=float32),
  array(1.0686734, dtype=float32),
  array(1.0686935, dtype=float32),
  array(1.0686486, dtype=float32),
  array(1.0685694, dtype=float32),
  array(1.0685167, dtype=float32),
  array(1.0685289, dtype=float32),
  array(1.0685489, dtype=float32),
  array(1.0685151, dtype=float32),
  array(1.068477, dtype=float32),
  array(1.0685028, dtype=float32),
  array(1.0685703, dtype=float32),
  array(1.0686284, dtype=float32),
  array(1.0686613, dtype=float32),
  array(1.0686687, dtype=float32),
  array(1.0686259, dtype=float32),
  array(1.068471, dtype=float32),
  array(1.0682241, dtype=float32),
  array(1.0680852, dtype=float32),
  array(1.0681834, dtype=float32),
  array(1.0683361, dtype=float32),
  array(1.0683541, dtype=float32),
  array(1.0683402, dtype=float32),
  array(1.0684221, dtype=float32),
  array(1.0685053, dtype=float32),
  array(1.068496, dtype=float32),
  array(1.068472, dtype=float32),
  array(1.0685055, dtype=float32),
  array(1.0685554, dtype=float32),
  array(1.0685852, dtype=float32),
  array(1.068614, dtype=float32),
  array(1.068633, dtype=float32),
  array(1.0686032, dtype=float32),
  array(1.0685428, dtype=float32),
  array(1.068524, dtype=float32),
  array(1.0685742, dtype=float32),
  array(1.0686356, dtype=float32),
  array(1.0686431, dtype=float32),
  array(1.0686054, dtype=float32),
  array(1.0685838, dtype=float32),
  array(1.0686039, dtype=float32),
  array(1.0686237, dtype=float32),
  array(1.068565, dtype=float32),
  array(1.0683639, dtype=float32),
  array(1.0680745, dtype=float32),
  array(1.0679107, dtype=float32),
  array(1.0680231, dtype=float32),
  array(1.0682788, dtype=float32),
  array(1.0684586, dtype=float32),
  array(1.0685332, dtype=float32),
  array(1.0685782, dtype=float32),
  array(1.0686061, dtype=float32),
  array(1.0686094, dtype=float32),
  array(1.0686232, dtype=float32),
  array(1.0686653, dtype=float32),
  array(1.0687007, dtype=float32),
  array(1.068699, dtype=float32),
  array(1.0686734, dtype=float32),
  array(1.0686272, dtype=float32),
  array(1.0685093, dtype=float32),
  array(1.0683086, dtype=float32),
  array(1.0681614, dtype=float32),
  array(1.068212, dtype=float32),
  array(1.0683879, dtype=float32),
  array(1.0684999, dtype=float32),
  array(1.0685097, dtype=float32),
  array(1.0685197, dtype=float32),
  array(1.0685617, dtype=float32),
  array(1.0685314, dtype=float32),
  array(1.0683218, dtype=float32),
  array(1.0679725, dtype=float32),
  array(1.0676681, dtype=float32),
  array(1.0675766, dtype=float32),
  array(1.0677103, dtype=float32),
  array(1.067953, dtype=float32),
  array(1.0681878, dtype=float32),
  array(1.0683607, dtype=float32),
  array(1.0684655, dtype=float32),
  array(1.0685376, dtype=float32),
  array(1.0686172, dtype=float32),
  array(1.068695, dtype=float32),
  array(1.0687346, dtype=float32),
  array(1.0687423, dtype=float32),
  array(1.0687507, dtype=float32),
  array(1.0687497, dtype=float32),
  array(1.068703, dtype=float32),
  array(1.0686367, dtype=float32),
  array(1.0686246, dtype=float32),
  array(1.0686791, dtype=float32),
  array(1.0687275, dtype=float32),
  array(1.0687221, dtype=float32),
  array(1.0686882, dtype=float32),
  array(1.0686402, dtype=float32),
  array(1.0685443, dtype=float32),
  array(1.0684159, dtype=float32),
  array(1.0683647, dtype=float32),
  array(1.068462, dtype=float32),
  array(1.0686347, dtype=float32),
  array(1.0687609, dtype=float32),
  array(1.0688013, dtype=float32),
  array(1.0687877, dtype=float32),
  array(1.0687467, dtype=float32),
  array(1.0686821, dtype=float32),
  array(1.068607, dtype=float32),
  array(1.0685549, dtype=float32),
  array(1.0685234, dtype=float32),
  array(1.0684313, dtype=float32),
  array(1.0682179, dtype=float32),
  array(1.067992, dtype=float32),
  array(1.0679566, dtype=float32),
  array(1.0681671, dtype=float32),
  array(1.0684607, dtype=float32),
  array(1.0686507, dtype=float32),
  array(1.0687065, dtype=float32),
  array(1.0687045, dtype=float32),
  array(1.0686849, dtype=float32),
  array(1.0686046, dtype=float32),
  array(1.0684068, dtype=float32),
  array(1.0681287, dtype=float32),
  array(1.0679142, dtype=float32),
  array(1.0678903, dtype=float32),
  array(1.0680366, dtype=float32),
  array(1.0682178, dtype=float32),
  array(1.0683388, dtype=float32),
  array(1.0684175, dtype=float32),
  array(1.0684985, dtype=float32),
  array(1.0685639, dtype=float32),
  array(1.0685602, dtype=float32),
  array(1.068493, dtype=float32),
  array(1.068439, dtype=float32),
  array(1.0684427, dtype=float32),
  array(1.0684524, dtype=float32),
  array(1.068393, dtype=float32),
  ...],
 'delta_loss': [-0.0006889105,
  -0.0045394897,
  0.0013535023,
  -0.0014322996,
  -0.0060749054,
  -0.008393526,
  0.0012508631,
  0.0030391216,
  0.0011327267,
  -0.00011587143,
  -0.002521038,
  -0.00053453445,
  -0.0016578436,
  0.00233078,
  0.003743291,
  -0.0022298098,
  -0.0038160086,
  -0.0055743456,
  -4.208088e-05,
  0.0008409023,
  0.000659585,
  -0.0015946627,
  0.0004785061,
  -0.007166624,
  -0.00043010712,
  0.007285595,
  0.004251361,
  -0.00085926056,
  0.00026631355,
  8.010864e-05,
  -0.00058317184,
  -0.00014042854,
  -0.0022503138,
  -0.004113078,
  0.0034909248,
  -0.0008621216,
  0.0017778873,
  -0.0004030466,
  -0.0026034117,
  0.002276063,
  0.0005466938,
  -7.605553e-05,
  -0.0012805462,
  -0.002190709,
  2.026558e-06,
  0.001106739,
  -0.008285999,
  0.007878184,
  -0.004081726,
  0.0056236982,
  -0.00039851665,
  -0.0029382706,
  0.0016818047,
  0.001413703,
  -0.00068473816,
  -0.0044009686,
  0.0029188395,
  -0.0028625727,
  0.0031729937,
  0.0004503727,
  -0.0030115843,
  0.003323555,
  -0.0005745888,
  0.00011575222,
  -0.0021976233,
  0.0025875568,
  0.00010895729,
  -0.0057344437,
  0.0041702986,
  0.0009996891,
  -0.0036987066,
  0.0019943714,
  -0.0047763586,
  0.006094575,
  -0.001740098,
  0.0006995201,
  0.0008788109,
  -0.0022245646,
  0.001044035,
  -0.0028378963,
  0.0036486387,
  -0.0028988123,
  -0.0006715059,
  0.0016906261,
  0.0007697344,
  -0.00042259693,
  -8.404255e-05,
  -0.0027490854,
  0.0040882826,
  -3.8266182e-05,
  -0.0007696152,
  -0.0006891489,
  0.0010259151,
  0.00021123886,
  -0.0029654503,
  0.0031700134,
  -0.00089871883,
  0.00016105175,
  0.00038301945,
  -0.0040402412,
  0.0032974482,
  0.00068295,
  -0.0027143955,
  0.0029284954,
  -0.0013047457,
  -0.0027073622,
  0.0038244724,
  -0.0015012026,
  -0.0009942055,
  0.002081871,
  -0.00027298927,
  8.094311e-05,
  -0.0012350082,
  0.0016189814,
  -0.0048666,
  0.0038090944,
  -0.00019717216,
  -0.00144732,
  0.0009777546,
  0.0011223555,
  0.000346303,
  -0.0005066395,
  -0.0020085573,
  0.001581192,
  -0.00048065186,
  0.0011125803,
  -0.00018775463,
  -0.0013484955,
  0.0020359755,
  -0.0021078587,
  0.00013101101,
  0.0020762682,
  -0.00306499,
  0.0029207468,
  -0.0009433031,
  1.1205673e-05,
  0.0007625818,
  0.00012683868,
  0.00014591217,
  7.390976e-05,
  -0.002199769,
  0.0019323826,
  -0.0013129711,
  0.0009797812,
  0.00029969215,
  -0.001957178,
  0.0019934177,
  -0.0017342567,
  -0.00074744225,
  0.0025162697,
  -0.0008356571,
  0.0002976656,
  0.0005503893,
  -0.00069510937,
  0.00038909912,
  -0.00024414062,
  -0.00021219254,
  0.00068056583,
  -0.00037574768,
  0.0004386902,
  -0.0008661747,
  0.00026106834,
  9.524822e-05,
  0.0003004074,
  -0.0018743277,
  0.0016732216,
  -0.00239861,
  0.0017151833,
  -0.00019192696,
  0.0010676384,
  -0.00031161308,
  -0.00069487095,
  0.00085508823,
  -1.9669533e-05,
  -0.001254797,
  0.0010067225,
  0.0003374815,
  1.3589859e-05,
  -0.0003643036,
  -0.00066781044,
  0.0010291338,
  7.200241e-05,
  -0.00043916702,
  -0.00059735775,
  0.00019550323,
  -0.00077950954,
  0.0014591217,
  8.070469e-05,
  -0.0012863874,
  -0.00013232231,
  0.0011467934,
  -9.75132e-05,
  0.0001039505,
  0.00019311905,
  -0.00027906895,
  0.00023031235,
  -0.0009561777,
  0.00095558167,
  -0.0016376972,
  0.00018835068,
  0.00090777874,
  -0.00025057793,
  0.0005021095,
  6.020069e-05,
  -0.00026977062,
  0.00047588348,
  2.2530556e-05,
  4.005432e-05,
  -0.00043916702,
  0.00038135052,
  -3.3140182e-05,
  -0.0004930496,
  0.00018751621,
  -0.0008625984,
  -0.0009970665,
  0.0015983582,
  -0.00017821789,
  0.00081801414,
  -0.00010216236,
  -0.00010371208,
  0.0001437664,
  -0.00010514259,
  8.4757805e-05,
  -0.001744628,
  0.0005811453,
  0.0010249615,
  -0.00022697449,
  0.00035607815,
  -2.18153e-05,
  -0.00026476383,
  6.997585e-05,
  -0.0007388592,
  0.00089645386,
  6.6399574e-05,
  -0.00019216537,
  -9.23872e-05,
  0.00022137165,
  -0.00039482117,
  -0.0004181862,
  0.0002065897,
  -0.00028288364,
  0.0008648634,
  -1.9669533e-05,
  -0.0033314228,
  0.0021749735,
  0.0004518032,
  -9.346008e-05,
  0.0002040863,
  0.0006406307,
  -0.0005786419,
  0.00027298927,
  -0.0022592545,
  0.0010455847,
  0.0006492138,
  0.0005033016,
  0.00017106533,
  8.6545944e-05,
  -0.0030466318,
  0.0014868975,
  0.0018048286,
  4.4822693e-05,
  -0.00014305115,
  -0.00035846233,
  -0.00034236908,
  -0.0002887249,
  -0.0011101961,
  0.00017011166,
  0.0017949343,
  0.00017344952,
  8.3088875e-05,
  -0.00040626526,
  -0.0017828941,
  0.0012722015,
  0.0010765791,
  -0.0009114742,
  -0.0006252527,
  -0.00018620491,
  -0.00023555756,
  0.00065267086,
  0.00069987774,
  0.00029444695,
  0.00017929077,
  -0.0011585951,
  -0.00013816357,
  0.0013555288,
  -0.00021660328,
  0.00027143955,
  -0.0004118681,
  0.00026094913,
  -0.00022733212,
  -7.1287155e-05,
  -0.0013731718,
  0.0014022589,
  0.0004349947,
  -0.00097358227,
  -0.00022029877,
  0.0009871721,
  -0.0007702112,
  0.00080895424,
  -0.00011014938,
  -0.00026369095,
  0.00037312508,
  -7.3075294e-05,
  -0.0001320839,
  -0.00023901463,
  0.00038421154,
  -0.0005450249,
  -0.0008146763,
  0.0012847185,
  -0.000993371,
  0.00060510635,
  0.0005619526,
  -0.00047636032,
  -4.8041344e-05,
  0.00052309036,
  -5.173683e-05,
  -7.83205e-05,
  9.1433525e-05,
  -4.053116e-06,
  -0.00029587746,
  -0.0003424883,
  8.59499e-05,
  0.00035333633,
  0.00011074543,
  -0.00020194054,
  0.000119805336,
  -0.00010883808,
  -0.000385046,
  1.41859055e-05,
  0.00037705898,
  -0.00011706352,
  0.00017309189,
  -0.0005737543,
  0.0003373623,
  0.00029933453,
  1.0848045e-05,
  -6.687641e-05,
  -8.08239e-05,
  -0.00059711933,
  0.00025427341,
  0.00038909912,
  -3.516674e-05,
  -0.00016450882,
  0.0001128912,
  -9.9778175e-05,
  -0.0019456148,
  -0.00072205067,
  0.0026100874,
  -0.00071418285,
  0.0008677244,
  -0.00043046474,
  0.00023245811,
  0.00032889843,
  -0.0007658005,
  -0.0005494356,
  0.00080132484,
  0.00039076805,
  -0.0003260374,
  -0.00044870377,
  -0.00045716763,
  0.001116395,
  0.00029349327,
  -0.00022745132,
  0.00015556812,
  -0.00017988682,
  3.540516e-05,
  0.00014519691,
  -0.00017929077,
  0.00012564659,
  -0.00069630146,
  0.0004620552,
  -0.00013768673,
  0.00031161308,
  -0.00047039986,
  -6.365776e-05,
  0.00037550926,
  0.00025713444,
  8.893013e-05,
  -4.053116e-05,
  -0.00051903725,
  -0.000562191,
  -0.0003348589,
  0.000608325,
  0.0008007288,
  -5.2690506e-05,
  3.0875206e-05,
  -5.00679e-06,
  -1.2755394e-05,
  6.318092e-05,
  2.0503998e-05,
  -0.00028252602,
  -0.0005774498,
  -0.0011204481,
  0.00016856194,
  0.001247406,
  -0.00037837029,
  0.00032126904,
  0.00033342838,
  0.00012755394,
  0.0001269579,
  4.4584274e-05,
  -0.0004286766,
  -8.177757e-05,
  0.00038135052,
  -0.0006017685,
  0.00024843216,
  0.00018429756,
  7.236004e-05,
  -0.00033938885,
  -9.894371e-05,
  0.00035369396,
  0.00012207031,
  0.0001398325,
  -0.00036907196,
  -0.0011280775,
  -0.00015354156,
  0.0010309219,
  0.0005527735,
  7.843971e-05,
  3.33786e-06,
  -0.00017559528,
  -3.170967e-05,
  -0.0001950264,
  -0.00023698807,
  0.00040185452,
  -7.3075294e-05,
  5.1379204e-05,
  -0.0014396906,
  0.0007402897,
  0.0006276369,
  -3.7550926e-05,
  -4.3988228e-05,
  -0.00074350834,
  0.0007644892,
  0.00039756298,
  -0.00013887882,
  6.937981e-05,
  -7.212162e-05,
  5.531311e-05,
  -0.000346303,
  -0.0008867979,
  0.00019812584,
  0.00063955784,
  0.0004005432,
  -2.9563904e-05,
  0.00013744831,
  -0.0001320839,
  -0.0001373291,
  0.00012588501,
  -0.00015556812,
  3.027916e-05,
  0.0001950264,
  6.16312e-05,
  -0.00017130375,
  -0.00024700165,
  0.00020813942,
  0.00016915798,
  -7.545948e-05,
  6.4373016e-06,
  -8.404255e-05,
  -4.2438507e-05,
  2.3007393e-05,
  -0.00031208992,
  -7.903576e-05,
  -0.00068080425,
  0.00012683868,
  0.0008651018,
  0.0002105236,
  -0.0001835823,
  -9.1552734e-05,
  9.775162e-05,
  -0.0004941225,
  1.2040138e-05,
  0.0005390644,
  4.7922134e-05,
  -0.00010597706,
  -0.0001667738,
  0.00014817715,
  -0.00046646595,
  0.00022852421,
  -0.00034284592,
  3.528595e-05,
  9.930134e-05,
  0.00028014183,
  -0.00030875206,
  5.00679e-06,
  0.00047063828,
  2.849102e-05,
  0.000113248825,
  -3.5881996e-05,
  -0.0002657175,
  -0.00033581257,
  0.0001450777,
  0.00036084652,
  0.000105023384,
  -0.0002720356,
  -8.1181526e-05,
  -0.00040638447,
  0.00028526783,
  0.00028812885,
  -0.00054228306,
  -0.0004850626,
  0.00026595592,
  0.000710845,
  0.00014233589,
  0.00015068054,
  3.671646e-05,
  -4.339218e-05,
  -2.3841858e-06,
  3.71933e-05,
  -0.00018703938,
  -0.00010442734,
  -1.0251999e-05,
  0.000121831894,
  0.00015103817,
  -4.4703484e-05,
  -1.6212463e-05,
  1.001358e-05,
  -0.00018131733,
  -0.0003182888,
  0.00014019012,
  0.00012373924,
  -3.7789345e-05,
  7.2956085e-05,
  2.8371811e-05,
  1.8835068e-05,
  9.179115e-06,
  -0.00010943413,
  -0.00051641464,
  0.0001540184,
  0.0005097389,
  4.5776367e-05,
  -9.775162e-06,
  -0.0004376173,
  1.859665e-05,
  0.00018692017,
  -0.0001885891,
  0.00034439564,
  2.336502e-05,
  2.0980835e-05,
  -2.6345253e-05,
  6.1035156e-05,
  -8.916855e-05,
  -0.0002257824,
  -0.00019264221,
  0.00011599064,
  0.00032269955,
  -0.00015044212,
  8.440018e-05,
  -0.00016462803,
  3.6358833e-05,
  0.00021660328,
  -0.00012719631,
  0.000101447105,
  6.818771e-05,
  -1.7881393e-05,
  4.3034554e-05,
  -3.862381e-05,
  1.6212463e-05,
  -0.00017988682,
  -0.00018703938,
  0.00021648407,
  0.0001667738,
  -6.341934e-05,
  2.8371811e-05,
  2.682209e-05,
  -0.00026464462,
  -0.0007070303,
  -8.380413e-05,
  0.00068068504,
  0.0003607273,
  -8.72612e-05,
  -0.00028276443,
  0.00013387203,
  0.00021731853,
  4.6491623e-05,
  -7.748604e-05,
  -8.2969666e-05,
  4.36306e-05,
  -0.00023674965,
  -0.00012540817,
  0.000118255615,
  -5.6624413e-05,
  2.5987625e-05,
  0.00025057793,
  2.1457672e-05,
  -0.00028848648,
  -0.00017106533,
  0.00016653538,
  0.00026237965,
  -0.00014746189,
  -0.00060749054,
  -0.00021362305,
  0.0004695654,
  0.00048327446,
  0.00016367435,
  -6.425381e-05,
  -8.046627e-05,
  2.9802322e-06,
  8.904934e-05,
  4.053116e-06,
  -0.00021517277,
  -0.00020635128,
  7.70092e-05,
  0.00023937225,
  8.070469e-05,
  -0.000490427,
  -0.0003875494,
  0.00050103664,
  0.00028562546,
  -0.00030124187,
  3.671646e-05,
  0.00020349026,
  -0.00043535233,
  -0.00021088123,
  0.00052165985,
  -9.715557e-05,
  -0.00043988228,
  0.00024449825,
  0.00048089027,
  6.7830086e-05,
  -0.00012767315,
  1.6450882e-05,
  -9.906292e-05,
  -2.5868416e-05,
  0.00012981892,
  8.34465e-05,
  5.9843063e-05,
  2.6583672e-05,
  2.682209e-05,
  7.70092e-05,
  -2.2530556e-05,
  -0.00021398067,
  -7.1167946e-05,
  4.8279762e-05,
  4.506111e-05,
  0.00013697147,
  3.170967e-05,
  -0.00017893314,
  -0.0002143383,
  0.00012588501,
  0.0001385212,
  -0.00016736984,
  6.210804e-05,
  0.0001757145,
  -7.1525574e-06,
  -4.9471855e-05,
  -0.00013518333,
  -0.00017035007,
  -3.5762787e-07,
  0.000218153,
  0.0001937151,
  1.1563301e-05,
  -5.6266785e-05,
  -4.9352646e-05,
  -0.00019788742,
  -0.00024080276,
  0.00010097027,
  0.00026667118,
  0.00010573864,
  -0.00019574165,
  -0.00034844875,
  7.891655e-05,
  0.00019538403,
  -0.00020706654,
  -9.727478e-05,
  0.00031924248,
  0.00024366379,
  -8.3088875e-05,
  -0.00027644634,
  -0.0005494356,
  -0.00036144257,
  0.00048553944,
  0.00063312054,
  0.00020003319,
  3.5762787e-06,
  -0.00014126301,
  -5.686283e-05,
  0.00014030933,
  0.00011587143,
  2.9563904e-05,
  -5.3048134e-05,
  -0.00013673306,
  -0.00015628338,
  -0.000115156174,
  -1.0251999e-05,
  0.0001424551,
  0.00020372868,
  9.6440315e-05,
  6.3180923e-06,
  -3.325939e-05,
  -0.00017273426,
  -0.00016093254,
  9.787083e-05,
  0.00016081333,
  -4.351139e-05,
  -0.00024604797,
  -0.00022399426,
  -3.0875206e-05,
  1.9669533e-05,
  9.727478e-05,
  0.00026142597,
  0.00019609928,
  -5.0663948e-05,
  -0.00023663044,
  -0.00010251999,
  0.00014269352,
  8.928776e-05,
  -4.5776367e-05,
  -7.2956085e-05,
  4.3272972e-05,
  9.6321106e-05,
  -0.00013780594,
  -9.4652176e-05,
  0.00017642975,
  0.00011539459,
  2.1576881e-05,
  -1.7285347e-05,
  -7.2836876e-05,
  5.4836273e-06,
  8.1539154e-05,
  3.0755997e-05,
  -4.0650368e-05,
  -1.8835068e-05,
  3.3974648e-05,
  -3.2305717e-05,
  -4.2676926e-05,
  5.9485435e-05,
  6.151199e-05,
  -1.5377998e-05,
  -5.9962273e-05,
  -1.2040138e-05,
  4.87566e-05,
  1.2397766e-05,
  -2.1219254e-05,
  1.8715858e-05,
  1.7404556e-05,
  -5.6028366e-05,
  -0.0001424551,
  -0.00011765957,
  8.702278e-06,
  6.67572e-05,
  5.90086e-05,
  6.878376e-05,
  4.374981e-05,
  -5.9962273e-05,
  -0.00016117096,
  -9.62019e-05,
  7.903576e-05,
  0.00010216236,
  -1.7881393e-06,
  -1.13248825e-05,
  6.055832e-05,
  5.173683e-05,
  -2.8967857e-05,
  -4.4941902e-05,
  -6.735325e-05,
  -0.00010371208,
  2.3961067e-05,
  5.6266785e-05,
  -0.00019180775,
  -0.00024163723,
  1.1920929e-06,
  4.4226646e-05,
  -0.0001887083,
  -0.00028145313,
  3.8981438e-05,
  0.0004297495,
  0.00041985512,
  0.00012981892,
  -6.341934e-05,
  -6.2823296e-05,
  3.0398369e-05,
  9.000301e-05,
  5.9485435e-05,
  -2.3245811e-05,
  -6.151199e-05,
  -8.702278e-06,
  4.5657158e-05,
  2.7418137e-05,
  8.225441e-06,
  3.6120415e-05,
  4.196167e-05,
  -3.6597252e-05,
  -0.00013649464,
  -0.00011575222,
  -1.5974045e-05,
  -6.4492226e-05,
  -0.00017881393,
  -4.6014786e-05,
  0.00019490719,
  0.00020301342,
  6.830692e-05,
  -1.3589859e-05,
  2.2649765e-06,
  3.3974648e-05,
  -5.340576e-05,
  -0.00010871887,
  1.001358e-05,
  7.748604e-06,
  -0.00011956692,
  -3.027916e-05,
  0.00015223026,
  0.0001283884,
  -5.1140785e-05,
  -0.00015234947,
  -6.580353e-05,
  -7.081032e-05,
  -0.00026774406,
  -0.00014400482,
  0.00026881695,
  0.00029301643,
  -5.364418e-06,
  -7.7962875e-05,
  8.690357e-05,
  0.00015294552,
  6.54459e-05,
  8.821487e-06,
  -5.364418e-06,
  -8.237362e-05,
  -9.560585e-05,
  4.2915344e-05,
  6.6161156e-05,
  -8.428097e-05,
  -9.787083e-05,
  6.4373016e-05,
  0.00015354156,
  0.00011301041,
  2.9683113e-05,
  -4.9471855e-05,
  -6.496906e-05,
  4.053116e-06,
  6.389618e-05,
  3.015995e-05,
  -6.186962e-05,
  -0.0001142025,
  -7.891655e-05,
  3.695488e-06,
  6.401539e-05,
  6.2942505e-05,
  2.169609e-05,
  -1.21593475e-05,
  -8.34465e-07,
  3.6239624e-05,
  3.0517578e-05,
  -5.6028366e-05,
  -0.00015056133,
  -0.00012278557,
  1.9907951e-05,
  0.00011467934,
  9.512901e-05,
  5.197525e-05,
  3.6597252e-05,
  2.002716e-05,
  7.1525574e-07,
  -4.2915344e-06,
  -3.4570694e-06,
  2.2649765e-06,
  5.4836273e-06,
  -5.841255e-06,
  -1.1920929e-05,
  -1.7523766e-05,
  -6.210804e-05,
  -0.000113248825,
  -8.177757e-05,
  2.7775764e-05,
  0.00010573864,
  8.904934e-05,
  2.014637e-05,
  -4.4941902e-05,
  -7.915497e-05,
  -5.2690506e-05,
  1.21593475e-05,
  2.002716e-05,
  -3.385544e-05,
  -3.8027763e-05,
  2.5749207e-05,
  6.747246e-05,
  5.8174133e-05,
  3.2901764e-05,
  7.390976e-06,
  -4.2796135e-05,
  -0.00015497208,
  -0.00024688244,
  -0.00013887882,
  9.8228455e-05,
  0.0001527071,
  1.8000603e-05,
  -1.3947487e-05,
  8.189678e-05,
  8.3208084e-05,
  -9.298325e-06,
  -2.3961067e-05,
  3.349781e-05,
  4.9829483e-05,
  2.9802322e-05,
  2.8848648e-05,
  1.8954277e-05,
  -2.9802322e-05,
  -6.03199e-05,
  -1.8835068e-05,
  5.018711e-05,
  6.1392784e-05,
  7.5101852e-06,
  -3.7670135e-05,
  -2.1576881e-05,
  2.002716e-05,
  1.9788742e-05,
  -5.865097e-05,
  -0.00020110607,
  -0.00028944016,
  -0.00016379356,
  0.00011241436,
  0.00025570393,
  0.00017976761,
  7.4625015e-05,
  4.506111e-05,
  2.7894974e-05,
  3.2186508e-06,
  1.3828278e-05,
  4.208088e-05,
  3.540516e-05,
  -1.66893e-06,
  -2.5629997e-05,
  -4.6133995e-05,
  -0.00011789799,
  -0.00020074844,
  -0.00014722347,
  5.0663948e-05,
  0.0001758337,
  0.00011205673,
  9.775162e-06,
  1.001358e-05,
  4.196167e-05,
  -3.027916e-05,
  -0.00020956993,
  -0.00034928322,
  -0.00030446053,
  -9.1433525e-05,
  0.00013363361,
  0.00024271011,
  0.0002348423,
  0.00017285347,
  0.000104784966,
  7.212162e-05,
  7.9631805e-05,
  7.772446e-05,
  3.9696693e-05,
  7.6293945e-06,
  8.46386e-06,
  -1.0728836e-06,
  -4.6610832e-05,
  -6.6399574e-05,
  -1.2040138e-05,
  5.4478645e-05,
  4.839897e-05,
  -5.364418e-06,
  -3.3974648e-05,
  -4.7922134e-05,
  -9.596348e-05,
  -0.0001283884,
  -5.1140785e-05,
  9.727478e-05,
  0.00017273426,
  0.00012612343,
  4.041195e-05,
  -1.3589859e-05,
  -4.1007996e-05,
  -6.4611435e-05,
  -7.510185e-05,
  -5.209446e-05,
  -3.1471252e-05,
  -9.214878e-05,
  -0.00021338463,
  -0.0002259016,
  -3.540516e-05,
  0.0002105236,
  0.00029361248,
  0.00019001961,
  5.5789948e-05,
  -2.026558e-06,
  -1.9550323e-05,
  -8.034706e-05,
  -0.00019776821,
  -0.00027811527,
  -0.00021445751,
  -2.3961067e-05,
  0.0001462698,
  0.00018119812,
  0.00012099743,
  7.879734e-05,
  8.094311e-05,
  6.54459e-05,
  -3.695488e-06,
  -6.723404e-05,
  -5.4001808e-05,
  3.695488e-06,
  9.655952e-06,
  -5.9366226e-05,
  -0.00011229515,
  ...],
 'likelihood.second_noise_covar.noise': [tensor([0.0007])],
 'mean_module.constant': [tensor(0.0040)],
 'covar_module.mixture_weights': [tensor([0.4025])],
 'covar_module.mixture_means': [tensor([[[0.0061]]])],
 'covar_module.mixture_scales': [tensor([[[6.2018e-06]]])]}

but this output is quite ugly. Instead, you can call some routines to make informative summaries of them that are easier to read

[6]:
lightcurve_1d.print_results()
loss: [-0.3844895]
delta_loss: [-4.708767e-06]
likelihood.second_noise_covar.noise: tensor([0.0007])
mean_module.constant: tensor([0.0040])
covar_module.mixture_weights: tensor([0.4025])
covar_module.mixture_means: tensor([0.0061])
covar_module.mixture_scales: tensor([6.2018e-06])
[7]:
lightcurve_1d.print_periods()
Period 0: [164.64874] weight: 0.4025452733039856

and you can also generate some plots of the output; for example the lightcurve with the fit results on top of it

[8]:
lightcurve_1d.plot(save=False)
../_images/notebooks_pgmuvi_tutorial_16_0.png
[8]:
../_images/notebooks_pgmuvi_tutorial_16_1.png

or the maximum a-posteriori PSD that pgmuvi has inferred (this can be very slow!)

[9]:
lightcurve_1d.plot_psd()
tensor([1.2404e-06], grad_fn=<MulBackward0>) 0.25 8.0
torch.Size([6448687])
torch.Size([6448687]) torch.Size([1, 1, 1]) torch.Size([1, 1, 1]) torch.Size([1])
Normal(loc: tensor([[[0.0061]]]), scale: tensor([[[6.2018e-06]]]))
torch.Size([1, 6448687, 1])
torch.Size([6448687])
../_images/notebooks_pgmuvi_tutorial_18_1.png

However, this fit wasn’t particularly good! This is because we didn’t specify any initial guesses for the hyperparameters, and the default values are not very good for this dataset. We can try again with some better guesses:

[10]:
lightcurve_1d.print_parameters()
print(period_guess)
guess = {'likelihood.second_noise_covar.noise': torch.Tensor([0.1]),
         'sci_kernel.mixture_means': torch.Tensor([1/period_guess]),}
lightcurve_1d.set_hypers(guess)
lightcurve_1d.print_parameters()
likelihood.second_noise_covar.noise: tensor([0.0007])
mean_module.constant: 0.0040171146392822266
covar_module.mixture_weights: tensor([0.4025])
covar_module.mixture_means: tensor([[[0.0061]]])
covar_module.mixture_scales: tensor([[[6.2018e-06]]])
208.43243643790515
likelihood.second_noise_covar.noise: tensor([0.1000])
mean_module.constant: 0.0040171146392822266
covar_module.mixture_weights: tensor([0.4025])
covar_module.mixture_means: tensor([[[0.0048]]])
covar_module.mixture_scales: tensor([[[6.2018e-06]]])

We printed the parameters before and after setting them to see how they have changed. As we can see, they were updated as instructed. Now we can try to fit again:

[11]:

new_fit = lightcurve_1d.fit(training_iter=3000, miniter=3000) lightcurve_1d.print_results() lightcurve_1d.print_periods()
likelihood.second_noise_covar.noise: tensor([0.1000])
mean_module.constant: 0.0040171146392822266
covar_module.mixture_weights: tensor([0.4025])
covar_module.mixture_means: tensor([[[0.0048]]])
covar_module.mixture_scales: tensor([[[6.2018e-06]]])
100%|██████████| 3000/3000 [00:31<00:00, 95.25it/s]
loss: [-0.38250878]
delta_loss: [0.001378]
likelihood.second_noise_covar.noise: tensor([0.0008])
mean_module.constant: tensor([0.0086])
covar_module.mixture_weights: tensor([0.4874])
covar_module.mixture_means: tensor([0.0061])
covar_module.mixture_scales: tensor([2.2201e-06])
Period 0: [164.3615] weight: 0.4874323606491089

This results in a much better fit, as you can see:

[12]:
lightcurve_1d.plot(save=False)
../_images/notebooks_pgmuvi_tutorial_24_0.png
[12]:
../_images/notebooks_pgmuvi_tutorial_24_1.png

We can look at the new PSD, but again this can take a very long time!

[13]:
lightcurve_1d.plot_psd(log=(True, True), truncate_psd=True, debug=True)
tensor([4.4402e-07], grad_fn=<MulBackward0>) 0.25 8.0
torch.Size([18014418])
torch.Size([18014418]) torch.Size([1, 1, 1]) torch.Size([1, 1, 1]) torch.Size([1])
Normal(loc: tensor([[[0.0061]]]), scale: tensor([[[2.2201e-06]]]))
torch.Size([1, 18014418, 1])
torch.Size([18014418])
../_images/notebooks_pgmuvi_tutorial_26_1.png

We can also look at the periods that came out of it:

[14]:
lightcurve_1d.get_periods()
[14]:
([array([164.3615], dtype=float32)],
 [tensor(0.4874, grad_fn=<SelectBackward0>)],
 [array([71688.92], dtype=float32)])

And look at the frequency that we used as our guess of the period:

[15]:
1/period_guess
[15]:
0.004797717750125296

Now we will take a look at another slightly more advanced topic - setting constraints on the parameters. pgmuvi tries to make this easy for you, by providing a convenient method lightcurve1d.set_constraint(). However, there are a few caveats in using it.

Adjusting the constraints on the parameters will not change the values of the internal representation that gpytorch uses for the parameters. This will lead to the seemingly odd behaviour that updating the constraints will change the reported values of the parameters! This is because gpytorch works with an internal representation of the parameters in an unconstrained space, and the constraints are really a transformation from the unconstrained space to a constrained space. This is done because the unconstrained space is easier to optimise in, and the constraints are applied to transform them to values that are meaningful for the model. As a result, if you want to update the constraints, you must set the values of the parameters again afterwards! Perhaps even more importantly, if you are updating constraints after performing a fit (as we are here) and want to keep the final state of the parameters, you should save the final state of the parameters, update the constraints, and then set the parameters to the saved values. To demonstrate this, we will go through a few of the examples of this here.

[16]:
# first, let's save the final values of the parameters
pars = lightcurve_1d.get_parameters()
print(pars)
{'likelihood.second_noise_covar.noise': tensor([0.0008]), 'mean_module.constant': tensor(0.0086), 'covar_module.mixture_weights': tensor([0.4874]), 'covar_module.mixture_means': tensor([[[0.0061]]]), 'covar_module.mixture_scales': tensor([[[2.2201e-06]]])}

Now we can set some constraints on the parameters. If you’re running this yourself, remember to check that the ranges of the constraints include the values of the parameters that were found in the fit! Otherwise you will get an error when you try to set the parameters to the values found in the fit.

[17]:
# now, let's update some constraints!
const_dict = {'likelihood.second_noise_covar.noise': gpytorch.constraints.Interval(0.001, 0.15),
              'mean_module.constant': gpytorch.constraints.Interval(-0.1, 0.1),
              'covar_module.mixture_means': gpytorch.constraints.Interval(1/1000., 1/10.),
              'covar_module.mixture_scales': gpytorch.constraints.Interval(1e-6, 0.2),
}
lightcurve_1d.set_constraint(const_dict, debug=True)

Now we’ve updated the constraints, let’s see what has happened to the parameters:

[18]:
lightcurve_1d.print_parameters()
likelihood.second_noise_covar.noise: tensor([0.0008])
mean_module.constant: 0.008574962615966797
covar_module.mixture_weights: tensor([0.4874])
covar_module.mixture_means: tensor([[[0.0061]]])
covar_module.mixture_scales: tensor([[[2.2201e-06]]])

We can see these are different to those we found above. Let’s see what happens if we set the parameters to the values we found above:

[19]:
lightcurve_1d.set_hypers(pars, debug=True)
lightcurve_1d.print_parameters()

Now they should be back to normal! Let’s see what happens if we try to fit again:

[20]:
fit = lightcurve_1d.fit(training_iter=3000, miniter=3000)
lightcurve_1d.print_results()
[21]:
lightcurve_1d.plot()
../_images/notebooks_pgmuvi_tutorial_41_0.png
[21]:
../_images/notebooks_pgmuvi_tutorial_41_1.png
[22]:
lightcurve_1d.get_periods()
[22]:
([array([164.3615], dtype=float32)],
 [tensor(0.4874, grad_fn=<SelectBackward0>)],
 [array([71688.92], dtype=float32)])

You can see that the best-fit period has changed slightly. This is because the constraints we set are not exactly the same as the ones we used in the fit, so the optimiser is not able to find exactly the same solution. However, it is very close, and the fit is still very good.

This is the end of this example. You can find more information in the other example notebooks, for example on how to use MCMC to sample the posterior distribution of the parameters, or how to fit multi-wavelength lightcurves.