(self)
| 802 | num_cycles, sample_per_forward_pass) |
| 803 | |
| 804 | def test_get_predictions(self): |
| 805 | X = torch.randn(100, 1) |
| 806 | |
| 807 | learner = modAL.models.learners.DeepActiveLearner( |
| 808 | estimator=self.skorch_classifier, |
| 809 | query_strategy=mock.MockFunction(return_val=None), |
| 810 | ) |
| 811 | |
| 812 | # num predictions tests |
| 813 | for num_predictions in range(1, 20): |
| 814 | for samples_per_forward_pass in range(1, 10): |
| 815 | |
| 816 | predictions = modAL.dropout.get_predictions( |
| 817 | learner, X, dropout_layer_indexes=[], |
| 818 | num_predictions=num_predictions, |
| 819 | sample_per_forward_pass=samples_per_forward_pass) |
| 820 | |
| 821 | self.assertEqual(len(predictions), num_predictions) |
| 822 | |
| 823 | self.assertRaises(AssertionError, modAL.dropout.get_predictions, |
| 824 | learner, X, dropout_layer_indexes=[], |
| 825 | num_predictions=-1, |
| 826 | sample_per_forward_pass=0) |
| 827 | |
| 828 | self.assertRaises(AssertionError, modAL.dropout.get_predictions, |
| 829 | learner, X, dropout_layer_indexes=[], |
| 830 | num_predictions=10, |
| 831 | sample_per_forward_pass=-5) |
| 832 | |
| 833 | # logits adapter function test |
| 834 | for samples, classes, subclasses in product(range(1, 10), range(1, 10), range(1, 10)): |
| 835 | input_shape = (samples, classes, subclasses) |
| 836 | desired_shape = (input_shape[0], np.prod(input_shape[1:])) |
| 837 | X_adaption_needed = torch.randn(input_shape) |
| 838 | |
| 839 | def logits_adaptor(input_tensor, data): return torch.flatten( |
| 840 | input_tensor, start_dim=1) |
| 841 | |
| 842 | predictions = modAL.dropout.get_predictions( |
| 843 | learner, X_adaption_needed, dropout_layer_indexes=[], |
| 844 | num_predictions=num_predictions, |
| 845 | sample_per_forward_pass=samples_per_forward_pass, |
| 846 | logits_adaptor=logits_adaptor) |
| 847 | |
| 848 | self.assertEqual(predictions[0].shape, desired_shape) |
| 849 | |
| 850 | def test_set_dropout_mode(self): |
| 851 | # set dropmout mode for all dropout layers |
nothing calls this directly
no outgoing calls
no test coverage detected