コード例 #1
0
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
コード例 #2
0
ファイル: test_gp.py プロジェクト: yuanqing-wang/malt
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
コード例 #3
0
ファイル: test_localization.py プロジェクト: luohc2004/malt
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()
コード例 #4
0
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
コード例 #5
0
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)
コード例 #6
0
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()