from icosagon.dropout import dropout_sparse, \ dropout_dense import torch import numpy as np def test_dropout_01(): for i in range(11): torch.random.manual_seed(i) a = torch.rand((5, 10)) a[a < .5] = 0 keep_prob=i/10. + np.finfo(np.float32).eps torch.random.manual_seed(i) b = dropout_dense(a, keep_prob=keep_prob) torch.random.manual_seed(i) c = dropout_sparse(a.to_sparse(), keep_prob=keep_prob) print('keep_prob:', keep_prob) print('a:', a.detach().cpu().numpy()) print('b:', b.detach().cpu().numpy()) print('c:', c, c.to_dense().detach().cpu().numpy()) assert torch.all(b == c.to_dense())