Пример #1
0
 def test_entropy_positive(self):
     # See ticket SciPy's gh-497
     pk = cupy.asarray([0.5, 0.2, 0.3])
     qk = cupy.asarray([0.1, 0.25, 0.65])
     eself = stats.entropy(pk, pk)
     edouble = stats.entropy(pk, qk)
     assert 0.0 == eself
     assert edouble >= 0.0
Пример #2
0
    def test_entropy_2d_zero(self):
        pk = cupy.asarray([[0.1, 0.2], [0.6, 0.3], [0.3, 0.5]])
        qk = cupy.asarray([[0.0, 0.1], [0.3, 0.6], [0.5, 0.3]])
        testing.assert_array_almost_equal(stats.entropy(pk, qk),
                                          [cupy.inf, 0.18609809])

        pk[0][0] = 0.0
        testing.assert_array_almost_equal(stats.entropy(pk, qk),
                                          [0.17403988, 0.18609809])
Пример #3
0
    def test_entropy_base(self):
        pk = cupy.ones(16, float)
        s = stats.entropy(pk, base=2.0)
        assert abs(s - 4.0) < 1.0e-5

        qk = cupy.ones(16, float)
        qk[:8] = 2.0
        s = stats.entropy(pk, qk)
        s2 = stats.entropy(pk, qk, base=2.0)
        assert abs(s / s2 - math.log(2.0)) < 1.0e-5
Пример #4
0
 def test_entropy_2d_nondefault_axis(self):
     pk = cupy.asarray([[0.1, 0.2], [0.6, 0.3], [0.3, 0.5]])
     qk = cupy.asarray([[0.2, 0.1], [0.3, 0.6], [0.5, 0.3]])
     testing.assert_array_almost_equal(
         stats.entropy(pk, qk, axis=1),
         cupy.asarray([0.231049, 0.231049, 0.127706]),
     )
Пример #5
0
 def test_entropy_raises_value_error(self):
     pk = cupy.asarray([[0.1, 0.2], [0.6, 0.3], [0.3, 0.5]])
     qk = cupy.asarray([[0.1, 0.2], [0.6, 0.3]])
     with pytest.raises(ValueError):
         stats.entropy(pk, qk)
Пример #6
0
 def test_entropy_base_2d_nondefault_axis(self):
     pk = cupy.asarray([[0.1, 0.2], [0.6, 0.3], [0.3, 0.5]])
     testing.assert_array_almost_equal(
         stats.entropy(pk, axis=1),
         cupy.asarray([0.63651417, 0.63651417, 0.66156324]),
     )
Пример #7
0
 def test_entropy_2d(self):
     pk = cupy.asarray([[0.1, 0.2], [0.6, 0.3], [0.3, 0.5]])
     qk = cupy.asarray([[0.2, 0.1], [0.3, 0.6], [0.5, 0.3]])
     testing.assert_array_almost_equal(
         stats.entropy(pk, qk), [0.1933259, 0.18609809]
     )
Пример #8
0
 def test_entropy_zero(self):
     # Test for SciPy PR-479
     s = stats.entropy(cupy.asarray([0, 1, 2]))
     expected = 0.63651416829481278
     assert abs(float(s) - expected) < 1e-12