Пример #1
0
def test_cross_entropy_derivative_cputensor():
    be = CPU(rng_seed=0)
    outputs = CPUTensor([0.5, 0.9, 0.1, 0.0001])
    targets = CPUTensor([0.5, 0.99, 0.01, 0.2])
    temp = [be.zeros(outputs.shape), be.zeros(outputs.shape)]
    expected_result = ((outputs.asnumpyarray() - targets.asnumpyarray()) /
                       (outputs.asnumpyarray() * (1 - outputs.asnumpyarray())))
    assert_tensor_near_equal(
        expected_result, cross_entropy_derivative(be, outputs, targets, temp))
Пример #2
0
def test_cross_entropy_derivative_cputensor():
    be = CPU(rng_seed=0)
    outputs = CPUTensor([0.5, 0.9, 0.1, 0.0001])
    targets = CPUTensor([0.5, 0.99, 0.01, 0.2])
    temp = [be.zeros(outputs.shape), be.zeros(outputs.shape)]
    expected_result = ((outputs.asnumpyarray() - targets.asnumpyarray()) /
                       (outputs.asnumpyarray() * (1 - outputs.asnumpyarray())))
    assert_tensor_near_equal(expected_result,
                             cross_entropy_derivative(be, outputs,
                                                      targets, temp))
Пример #3
0
def test_cross_entropy_cputensor():
    be = CPU(rng_seed=0)
    outputs = CPUTensor([0.5, 0.9, 0.1, 0.0001])
    targets = CPUTensor([0.5, 0.99, 0.01, 0.2])
    temp = [be.zeros(outputs.shape), be.zeros(outputs.shape)]
    expected_result = np.sum((- targets.asnumpyarray()) *
                             np.log(outputs.asnumpyarray()) -
                             (1 - targets.asnumpyarray()) *
                             np.log(1 - outputs.asnumpyarray()), keepdims=True)
    assert_tensor_near_equal(expected_result, cross_entropy(be, outputs,
                                                            targets, temp))
Пример #4
0
def test_cross_entropy_cputensor():
    be = CPU(rng_seed=0)
    outputs = CPUTensor([0.5, 0.9, 0.1, 0.0001])
    targets = CPUTensor([0.5, 0.99, 0.01, 0.2])
    temp = [be.zeros(outputs.shape), be.zeros(outputs.shape)]
    expected_result = np.sum(
        (-targets.asnumpyarray()) * np.log(outputs.asnumpyarray()) -
        (1 - targets.asnumpyarray()) * np.log(1 - outputs.asnumpyarray()),
        keepdims=True)
    assert_tensor_near_equal(expected_result,
                             cross_entropy(be, outputs, targets, temp))
Пример #5
0
def test_cross_entropy_limits():
    be = CPU(rng_seed=0)
    outputs = CPUTensor([0.5, 1.0, 0.0, 0.0001])
    targets = CPUTensor([0.5, 0.0, 1.0, 0.2])
    eps = 2**-23
    temp = [be.zeros(outputs.shape), be.zeros(outputs.shape)]
    expected_result = np.sum(
        (-targets.asnumpyarray()) * np.log(outputs.asnumpyarray() + eps) -
        (1 - targets.asnumpyarray()) *
        np.log(1 - outputs.asnumpyarray() + eps),
        keepdims=True)
    assert_tensor_near_equal(expected_result,
                             cross_entropy(be, outputs, targets, temp, eps))
Пример #6
0
 def test_asnumpyarray(self):
     tns = CPUTensor([[1, 2], [3, 4]])
     res = tns.asnumpyarray()
     assert isinstance(res, np.ndarray)
     assert_tensor_equal(res, np.array([[1, 2], [3, 4]]))