def test_save_load(random_matrix): X = random_matrix mod = TorchAutoencoder(hidden_dim=5, max_iter=2) mod.fit(X) mod.predict(X) with tempfile.NamedTemporaryFile(mode='wb') as f: name = f.name mod.to_pickle(name) mod2 = TorchAutoencoder.from_pickle(name) mod2.predict(X) mod2.fit(X)
def test_model(random_matrix, model_class, pandas): """Just makes sure that this code will run; it doesn't check that it is creating good models. """ X = random_matrix if pandas: X = pd.DataFrame(X) ae = TorchAutoencoder(hidden_dim=5, max_iter=100) H = ae.fit(X) ae.predict(X) H_is_pandas = isinstance(H, pd.DataFrame) assert H_is_pandas == pandas
def test_simple_example_params(random_low_rank_matrix, param, expected): X = random_low_rank_matrix ae = TorchAutoencoder() H = ae.fit(X) X_pred = ae.predict(X) r2 = ae.score(X) assert r2 > 0.92
def autoencoder_evaluation(nrow=1000, ncol=100, rank=20, max_iter=20000): """This an evaluation in which `TfAutoencoder` should be able to perfectly reconstruct the input data, because the hidden representations have the same dimensionality as the rank of the input matrix. """ X = randmatrix(nrow, rank).dot(randmatrix(rank, ncol)) ae = TorchAutoencoder(hidden_dim=rank, max_iter=max_iter) ae.fit(X) X_pred = ae.predict(X) mse = (0.5 * (X_pred - X)**2).mean() return (X, X_pred, mse)