def test_predict(): model = DistMult(batches_count=2, seed=555, epochs=1, k=10, loss='pairwise', loss_params={'margin': 5}, optimizer='adagrad', optimizer_params={'lr': 0.1}) X = np.array([['a', 'y', 'b'], ['b', 'y', 'a'], ['a', 'y', 'c'], ['c', 'z', 'a'], ['a', 'z', 'd']]) model.fit(X) preds1 = model.predict(X) preds2 = model.predict(to_idx(X, model.ent_to_idx, model.rel_to_idx), from_idx=True) np.testing.assert_array_equal(preds1, preds2)
def test_fit_predict_DistMult(): model = DistMult(batches_count=2, seed=555, epochs=20, k=10, loss='pairwise', loss_params={'margin': 5}, optimizer='adagrad', optimizer_params={'lr':0.1}) X = np.array([['a', 'y', 'b'], ['b', 'y', 'a'], ['a', 'y', 'c'], ['c', 'y', 'a'], ['a', 'y', 'd'], ['c', 'y', 'd'], ['b', 'y', 'c'], ['f', 'y', 'e']]) model.fit(X) y_pred, _ = model.predict(np.array([['f', 'y', 'e'], ['b', 'y', 'd']]), get_ranks=True) print(y_pred) assert y_pred[0] > y_pred[1]
def test_predict_twice(): model = DistMult(batches_count=2, seed=555, epochs=1, k=10, loss='pairwise', loss_params={'margin': 5}, optimizer='adagrad', optimizer_params={'lr': 0.1}) X = np.array([['a', 'y', 'b'], ['b', 'y', 'a'], ['a', 'y', 'c'], ['c', 'z', 'a'], ['a', 'z', 'd']]) model.fit(X) X_test1 = np.array([['a', 'y', 'b'], ['b', 'y', 'a']]) X_test2 = np.array([['a', 'y', 'c'], ['c', 'z', 'a']]) preds1 = model.predict(X_test1) preds2 = model.predict(X_test2) assert not np.array_equal(preds1, preds2)
["Missandei", 'SPOUSE', 'Grey Worm'], ["Brienne of Tarth", 'SPOUSE', 'Jaime Lannister'] ]) unseen_filter = np.array(list({tuple(i) for i in np.vstack((positives_filter, X_unseen))})) ranks_unseen = evaluate_performance( X_unseen, model=model, filter_triples=unseen_filter, # Corruption strategy filter defined above corrupt_side = 's+o', use_default_protocol=False, # corrupt subj and obj separately while evaluating verbose=True ) scores = model.predict(X_unseen) from scipy.special import expit probs = expit(scores) pd.DataFrame(list(zip([' '.join(x) for x in X_unseen], ranks_unseen, np.squeeze(scores), np.squeeze(probs))), columns=['statement', 'rank', 'score', 'prob']).sort_values("score") """--- # 7. Visualizing Embeddings with Tensorboard projector """ from ampligraph.utils import create_tensorboard_visualizations