def test_batch_forward(): import torch import malt representation = malt.models.representation.DGLRepresentation() portfolio = malt.data.dataset.Dataset( [malt.Point("C"), malt.Point("CC")] ).featurize_all() g = next(iter(portfolio.view(batch_size=2, collate_fn="batch_of_g"))) h = representation(g) assert isinstance(h, torch.Tensor) assert h.shape[0] == 2 assert h.shape[1] == 1
def test_gp_train(): import torch import dgl import malt net = malt.models.supervised_model.GaussianProcessSupervisedModel( representation=malt.models.representation.DGLRepresentation( out_features=128 ), regressor=malt.models.regressor.ExactGaussianProcessRegressor( in_features=128, out_features=2, ), likelihood=malt.models.likelihood.HeteroschedasticGaussianLikelihood(), ) point = malt.Point("C") point.featurize() graph = dgl.batch([point.g]) y = net.loss(graph, torch.tensor([[5.0]])) y.backward() y = net.condition(graph) assert y.mean.item() != 0.0
def test_evolving(): sim = malt.Simulation( x_dim=200, y_dim=200, randomly_generate=True, num_nodes=40, scene="scenes/200.out", ) dr = malt.Drawer(sim.x_dim, sim.y_dim) dr.draw_risk_grid(sim.scene).update() r_ref = 100 l_ref = 100 src_x = 20 src_y = 20 for i in xrange(200): local_instance = sim.step(src_x, src_y, r_ref, l_ref) dr.draw_nodes(local_instance.sim.node_positions) # res = local_instance.get_locations() dr.draw_source(local_instance.get_max_location().get_position(), (1, 1, 1), -2) dr.draw_source(malt.Point(src_x, src_y), (0, 1, 0), -3) dr.update() dr.clear_all() # print "Locations:", res print local_instance.get_error()
def test_forward(): import torch import malt representation = malt.models.representation.DGLRepresentation() point = malt.Point(smiles="C") point.featurize() h = representation(point.g) assert isinstance(h, torch.Tensor) assert h.shape[0] == 1 assert h.shape[1] == 1
def test_equality(): import torch import malt from malt.metrics.supervised_metrics import MSE, MAPE, RMSE, R2 from malt.metrics.base_metrics import mse, mape, rmse, r2 input = torch.randn(5, 1) target = torch.randn(5, 1) ds = malt.Dataset() for idx in range(5): point = malt.Point(smiles="C", y=target[idx].item()) ds.append(point) assert MSE()(DumbModel(input), ds) == mse(input, target) assert MAPE()(DumbModel(input), ds) == mape(input, target) assert RMSE()(DumbModel(input), ds) == rmse(input, target) assert R2()(DumbModel(input), ds) == r2(input, target)
def test_forward(): import torch import malt net = malt.models.supervised_model.SimpleSupervisedModel( representation=malt.models.representation.DGLRepresentation( out_features=128 ), regressor=malt.models.regressor.NeuralNetworkRegressor( in_features=128, out_features=1 ), likelihood=malt.models.likelihood.HomoschedasticGaussianLikelihood(), ) point = malt.Point(smiles="C").featurize() distribution = net.condition(point.g) assert isinstance(distribution, torch.distributions.Distribution) assert distribution.batch_shape == torch.Size([1, 1]) net.loss(point.g, 0.0).backward()