IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 line
1.1KB

  1. from icosagon.data import Data
  2. from icosagon.model import Model
  3. from icosagon.trainprep import PreparedData
  4. import torch
  5. import ast
  6. def _is_identity_function(f):
  7. for x in range(-100, 101):
  8. if f(x) != x:
  9. return False
  10. return True
  11. def test_model_01():
  12. d = Data()
  13. d.add_node_type('Dummy', 10)
  14. fam = d.add_relation_family('Dummy-Dummy', 0, 0, False)
  15. fam.add_relation_type('Dummy Rel', torch.rand(10, 10).round())
  16. m = Model(d)
  17. assert m.data == d
  18. assert m.layer_dimensions == [32, 64]
  19. assert (m.ratios.train, m.ratios.val, m.ratios.test) == (.8, .1, .1)
  20. assert m.keep_prob == 1.
  21. assert _is_identity_function(m.rel_activation)
  22. assert m.layer_activation == torch.nn.functional.relu
  23. assert _is_identity_function(m.dec_activation)
  24. assert m.lr == 0.001
  25. assert m.loss == torch.nn.functional.binary_cross_entropy_with_logits
  26. assert m.batch_size == 100
  27. assert isinstance(m.prep_d, PreparedData)
  28. assert isinstance(m.seq, torch.nn.Sequential)
  29. assert isinstance(m.opt, torch.optim.Optimizer)