Пример #1
0
def test_mvn_operator():
    runtime = get_runtime()

    data_shape = [3, 3, 3, 1]
    axis = [0, 2, 3]
    normalize_variance = True
    eps = np.float32(1e-9)

    data_value = np.array([[[[0.8439683], [0.5665144], [0.05836735]],
                            [[0.02916367], [0.12964272], [0.5060197]],
                            [[0.79538304], [0.9411346], [0.9546573]]],
                           [[[0.17730942], [0.46192095], [0.26480448]],
                            [[0.6746842], [0.01665257], [0.62473077]],
                            [[0.9240844], [0.9722341], [0.11965699]]],
                           [[[0.41356155], [0.9129373], [0.59330076]],
                            [[0.81929934], [0.7862604], [0.11799799]],
                            [[0.69248444], [0.54119414], [0.07513223]]]],
                          dtype=np.float32)

    parameter_data = ng.parameter(data_shape, name='Data', dtype=np.float32)

    model = ng.mvn(parameter_data, axis, normalize_variance, eps)
    computation = runtime.computation(model, parameter_data)

    result = computation(data_value)

    data_mean = np.mean(data_value, axis=(0, 2, 3), keepdims=1)
    data_mean_squared = np.power(data_mean, 2)
    data_squared = np.power(data_value, 2)
    data_squared_mean = np.mean(data_squared, axis=(0, 2, 3), keepdims=1)
    std = np.sqrt(data_squared_mean - data_mean_squared)
    expected = (data_value - data_mean) / (std + 1e-9)

    assert np.allclose(result, expected)
Пример #2
0
def test_mvn_operator():
    runtime = get_runtime()

    data_shape = [3, 3, 3, 1]
    axes = [0, 2, 3]
    normalize_variance = True
    eps = np.float32(1e-9)
    eps_mode = "outside_sqrt"

    data_value = np.array(
        [
            [
                [[0.8439683], [0.5665144], [0.05836735]],
                [[0.02916367], [0.12964272], [0.5060197]],
                [[0.79538304], [0.9411346], [0.9546573]],
            ],
            [
                [[0.17730942], [0.46192095], [0.26480448]],
                [[0.6746842], [0.01665257], [0.62473077]],
                [[0.9240844], [0.9722341], [0.11965699]],
            ],
            [
                [[0.41356155], [0.9129373], [0.59330076]],
                [[0.81929934], [0.7862604], [0.11799799]],
                [[0.69248444], [0.54119414], [0.07513223]],
            ],
        ],
        dtype=np.float32,
    )

    parameter_data = ng.parameter(data_shape, name="Data", dtype=np.float32)

    model = ng.mvn(parameter_data, axes, normalize_variance, eps, eps_mode)
    computation = runtime.computation(model, parameter_data)

    result = computation(data_value)

    expected = np.array(
        [
            [
                [[1.3546423], [0.33053496], [-1.5450814]],
                [[-1.2106764], [-0.8925952], [0.29888135]],
                [[0.38083088], [0.81808794], [0.85865635]],
            ],
            [
                [[-1.1060555], [-0.05552877], [-0.78310335]],
                [[0.83281356], [-1.250282], [0.67467856]],
                [[0.7669372], [0.9113869], [-1.6463585]],
            ],
            [
                [[-0.23402764], [1.6092131], [0.42940593]],
                [[1.2906139], [1.1860244], [-0.92945826]],
                [[0.0721334], [-0.38174], [-1.7799333]],
            ],
        ],
        dtype=np.float32,
    )

    assert np.allclose(result, expected)
Пример #3
0
def test_mvn_operator():
    runtime = get_runtime()

    data_shape = [3, 3, 3, 1]
    across_channels = True
    normalize_variance = True
    eps = np.float32(1e-9)

    data_value = np.array(
        [
            [
                [[0.8439683], [0.5665144], [0.05836735]],
                [[0.02916367], [0.12964272], [0.5060197]],
                [[0.79538304], [0.9411346], [0.9546573]],
            ],
            [
                [[0.17730942], [0.46192095], [0.26480448]],
                [[0.6746842], [0.01665257], [0.62473077]],
                [[0.9240844], [0.9722341], [0.11965699]],
            ],
            [
                [[0.41356155], [0.9129373], [0.59330076]],
                [[0.81929934], [0.7862604], [0.11799799]],
                [[0.69248444], [0.54119414], [0.07513223]],
            ],
        ],
        dtype=np.float32,
    )

    parameter_data = ng.parameter(data_shape, name="Data", dtype=np.float32)

    model = ng.mvn(parameter_data, across_channels, normalize_variance, eps)
    computation = runtime.computation(model, parameter_data)

    result = computation(data_value)

    expected = np.array(
        [
            [
                [[0.9951074], [0.14548765], [-1.410561]],
                [[-1.4999886], [-1.1923014], [-0.03975919]],
                [[0.8463296], [1.2926502], [1.3340596]],
            ],
            [
                [[-1.0463363], [-0.1747985], [-0.7784088]],
                [[0.47672555], [-1.5383], [0.32375798]],
                [[1.2404392], [1.3878832], [-1.2228798]],
            ],
            [
                [[-0.3228847], [1.2063044], [0.22751297]],
                [[0.91956615], [0.81839436], [-1.2279599]],
                [[0.5312334], [0.067952], [-1.3592235]],
            ],
        ],
    )

    assert np.allclose(result, expected)