Skip to content

This method doesn't work properly after migrating to Tensorlfow 2 #3

@soran-ghaderi

Description

@soran-ghaderi

This method is bound to the _calibrate method working properly.

def _predict_proba(self, X):
"""Predicts probabilities using the Platt scaling model (after calibration).
Model must be calibrated beforehand with the ``calibrate`` method.
:param X: Numpy array of triples to be evaluated.
:type X: ndarray, shape [n, 3]
:return: Probability of each triple to be true according to the Platt scaling calibration.
:rtype: ndarray, shape [n, 3]
"""
if not self.is_calibrated:
msg = "Model has not been calibrated. Please call `model.calibrate(...)` before predicting probabilities."
logger.error(msg)
raise RuntimeError(msg)
# tf.reset_default_graph()
self._load_model_from_trained_params()
w = tf.Variable(self.calibration_parameters[0], dtype=tf.float32, trainable=False)
b = tf.Variable(self.calibration_parameters[1], dtype=tf.float32, trainable=False)
x_idx = to_idx(X, ent_to_idx=self.ent_to_idx, rel_to_idx=self.rel_to_idx)
x_tf = tf.Variable(x_idx, dtype=tf.int32, trainable=False)
e_s, e_p, e_o = self._lookup_embeddings(x_tf)
scores = self._fn(e_s, e_p, e_o)
logits = -(w * scores + b)
probas = tf.sigmoid(logits)
# with tf.Session(config=self.tf_config) as sess:
# sess.run(tf.global_variables_initializer())
# return sess.run(probas)
return probas

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions