import torch from triacontagon.model import Model from triacontagon.data import Data from triacontagon.decode import dedicom_decoder def test_model_convolve_01(): d = Data() d.add_vertex_type('Gene', 4) d.add_vertex_type('Drug', 5) d.add_edge_type('Gene-Gene', 0, 0, [ torch.tensor([ [1, 0, 0, 1], [0, 1, 1, 0], [0, 0, 1, 0], [0, 1, 0, 1] ], dtype=torch.float).to_sparse() ], dedicom_decoder) d.add_edge_type('Gene-Drug', 0, 1, [ torch.tensor([ [0, 1, 0, 0, 1], [0, 0, 1, 0, 0], [1, 0, 0, 0, 1], [0, 0, 1, 1, 0] ], dtype=torch.float).to_sparse() ], dedicom_decoder) d.add_edge_type('Drug-Drug', 1, 1, [ torch.tensor([ [1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1] ], dtype=torch.float).to_sparse() ], dedicom_decoder) model = Model(d, [9, 32, 64], keep_prob=1.0, conv_activation = torch.sigmoid, dec_activation = torch.sigmoid) repr_1 = torch.eye(9) repr_1[4:, 4:] = 0 repr_2 = torch.eye(9) repr_2[:4, :4] = 0 in_layer_repr = [ repr_1[:4, :].to_sparse(), repr_2[4:, :].to_sparse() ] _ = model.convolve(in_layer_repr)