|
- from icosagon.data import Data
- from icosagon.model import Model
- from icosagon.trainprep import PreparedData
- import torch
- import ast
-
-
- def _is_identity_function(f):
- for x in range(-100, 101):
- if f(x) != x:
- return False
- return True
-
-
- def test_model_01():
- d = Data()
- d.add_node_type('Dummy', 10)
- fam = d.add_relation_family('Dummy-Dummy', 0, 0, False)
- fam.add_relation_type('Dummy Rel', torch.rand(10, 10).round())
-
- m = Model(d)
-
- assert m.data == d
- assert m.layer_dimensions == [32, 64]
- assert (m.ratios.train, m.ratios.val, m.ratios.test) == (.8, .1, .1)
- assert m.keep_prob == 1.
- assert _is_identity_function(m.rel_activation)
- assert m.layer_activation == torch.nn.functional.relu
- assert _is_identity_function(m.dec_activation)
- assert m.lr == 0.001
- assert m.loss == torch.nn.functional.binary_cross_entropy_with_logits
- assert m.batch_size == 100
- assert isinstance(m.prep_d, PreparedData)
- assert isinstance(m.seq, torch.nn.Sequential)
- assert isinstance(m.opt, torch.optim.Optimizer)
|