"""
Copyright 2018 Johns Hopkins University (Author: Jesus Villalba)
Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
"""
import numpy as np
from abc import ABCMeta, abstractmethod
from ...hyp_model import HypModel
[docs]class PDF(HypModel):
__metaclass__ = ABCMeta
[docs] def __init__(self, x_dim=1, **kwargs):
super(PDF, self).__init__(**kwargs)
self.x_dim = x_dim
[docs] def get_config(self):
config = {"x_dim": self.x_dim}
base_config = super(PDF, self).get_config()
return dict(list(base_config.items()) + list(config.items()))
[docs] @abstractmethod
def log_prob(self, x):
pass
[docs] def eval_llk(self, x):
return self.log_prob(x)
[docs] @abstractmethod
def sample(self, num_samples):
pass
[docs] def generate(self, num_samples, **kwargs):
return self.generate(num_samples, **kwargs)