b95fcf7f52aca8ad0b1afb3cfc64c8eed534fafe,tests/keras/backend/backend_test.py,TestBackend,test_nn_operations,#TestBackend#,783

Before Change


        check_single_tensor_operation("tanh", (4, 2), BACKENDS)

        // dropout
        val = np.random.random((100, 100))
        x_list = [k.variable(val) for k in BACKENDS]
        z_list = []
        for x, k in zip(x_list, BACKENDS):
            z_list.append(k.eval(k.dropout(x, level=0.2)))

        for i in range(len(z_list) - 1):
            assert z_list[i].shape == z_list[i + 1].shape
            // dropout patterns are different, only check mean
            assert np.abs(z_list[i].mean() - z_list[i + 1].mean()) < 0.05

        check_two_tensor_operation("binary_crossentropy", (4, 2), (4, 2), BACKENDS, from_logits=True)
        // cross_entropy call require the label is a valid probability distribution,
        // otherwise it is garbage in garbage out...
        // due to the algo difference, we can"t guarantee CNTK has the same result on the garbage input.
        // so create a seperate test case for valid lable input
        check_two_tensor_operation("categorical_crossentropy", (4, 2), (4, 2), [KTH, KTF], from_logits=True)
        check_cross_entropy_with_valid_probability_distribution()
        check_two_tensor_operation("binary_crossentropy", (4, 2), (4, 2), BACKENDS, from_logits=False)
        check_two_tensor_operation("categorical_crossentropy", (4, 2), (4, 2), BACKENDS, from_logits=False)

        check_single_tensor_operation("l2_normalize", (4, 3), BACKENDS, axis=-1)
        check_single_tensor_operation("l2_normalize", (4, 3), BACKENDS, axis=1)

        // Test invalid use cases
        for x, k in zip(x_list, [KTH, KTF]):
            with pytest.raises(ValueError):
                z = k.dropout(x, level=-0.5)

    def test_in_top_k(self):
        batch_size = 20
        num_classes = 10

After Change


        check_two_tensor_operation("categorical_crossentropy", (4, 2), (4, 2), [KTH, KTF], from_logits=True)
        xval = np.asarray([[0.26157712, 0.0432167], [-0.43380741, 0.30559841],
                           [0.20225059, -0.38956559], [-0.13805378, 0.08506755]], dtype=np.float32)
        yval = np.asarray([[0.46221867, 0.53778133], [0.51228984, 0.48771016],
                           [0.64916514, 0.35083486], [0.47028078, 0.52971922]], dtype=np.float32)
        check_two_tensor_operation("categorical_crossentropy", xval, yval,
                                   BACKENDS, cntk_two_dynamicity=True, from_logits=True)
        check_two_tensor_operation("binary_crossentropy", (4, 2), (4, 2), BACKENDS, from_logits=False)
        check_two_tensor_operation("categorical_crossentropy", (4, 2), (4, 2), BACKENDS, from_logits=False)
Italian Trulli
In pattern: SUPERPATTERN

Frequency: 3

Non-data size: 6

Instances


Project Name: keras-team/keras
Commit Name: b95fcf7f52aca8ad0b1afb3cfc64c8eed534fafe
Time: 2017-07-29
Author: me@taehoonlee.com
File Name: tests/keras/backend/backend_test.py
Class Name: TestBackend
Method Name: test_nn_operations


Project Name: keras-team/keras
Commit Name: 5e797436c3defd2d863ac1ffab11c48dbd42588e
Time: 2018-02-25
Author: me@taehoonlee.com
File Name: tests/keras/backend/backend_test.py
Class Name: TestBackend
Method Name: test_conv3d


Project Name: keras-team/keras
Commit Name: 5e797436c3defd2d863ac1ffab11c48dbd42588e
Time: 2018-02-25
Author: me@taehoonlee.com
File Name: tests/keras/backend/backend_test.py
Class Name: TestBackend
Method Name: test_conv2d