コード例 #1
0
        rval = rval * rval
    return rval


@gradient(4.0, 5.0, 2.0)
def test_while_2(x, y, z):
    rval = 0
    # Cannot compare to 0 or finite diff is unstable
    while x > -0.1:
        rval = rval + y
        x = x - z
    return rval


@gradient([1.0, 2.0, 3.0, 4.0],
          pipeline=standard_debug_pipeline.configure(validate=False))
def test_list_while(xs):
    y = 1.0
    index = 0
    while index < len(xs):
        y = y * xs[index]
        index = index + 1
    return y


@gradient([1.0, 2.0, 3.0, 4.0],
          pipeline=standard_pipeline,
          backend=backend_all)
def test_list_for(xs):
    y = 1
    for x in xs:
コード例 #2
0
    return rval


@gradient(4.0, 5.0, 2.0, backend=backend_all)
def test_while_2(x, y, z):
    rval = 0
    # Cannot compare to 0 or finite diff is unstable
    while x > -0.1:
        rval = rval + y
        x = x - z
    return rval


@gradient(
    [1.0, 2.0, 3.0, 4.0],
    pipeline=standard_debug_pipeline.configure(validator=None),
    backend=backend_except("relay"),
)
def test_list_while(xs):
    # Fail with relay:
    # myia.pipeline.ressources.default_convert receives
    # a tvm.runtime.ADT and then fails because it cannot
    # look for attribute __to_myia__
    # TypeError: runtime.ADT is not registered via TVM_REGISTER_NODE_TYPE
    y = 1.0
    index = 0
    while index < len(xs):
        y = y * xs[index]
        index = index + 1
    return y
コード例 #3
0
@grad_test(
    2.0, )
def test_pow10(x):
    v = x
    j = 0
    while j < 3:
        i = 0
        while i < 3:
            v = v * x
            i = i + 1
        j = j + 1
    return v


@grad_test(([1.0, 2.0, 3.0, 4.0], ),
           pipeline=standard_debug_pipeline.configure(validate=False))
def test_list_while(xs):
    y = 1.0
    index = 0
    while index < len(xs):
        y = y * xs[index]
        index = index + 1
    return y


@grad_test(([1.0, 2.0, 3.0, 4.0], ), pipeline=standard_pipeline)
def test_list_for(xs):
    y = 1
    for x in xs:
        y = y * x
    return y
コード例 #4
0
@mt(
    infer_scalar(i32, result=i32),
    infer_scalar(1, result=i64),
    infer_scalar(-1, result=InferenceError(_msg)),
)
def test_assert_msg(x):
    assert x >= 0, "x must be positive"
    return x ** 0.5


@mt(
    infer_scalar(i32, result=i32),
    run_debug(4.5, result=4.5 ** 0.5),
    run_debug(-5, result=Exception),
    gradient(4.5, pipeline=standard_debug_pipeline.configure(validator=None)),
)
def test_raise(x):
    if x >= 0:
        return x ** 0.5
    else:
        raise Exception("sqrt of negative number")


@infer_scalar(i32, result=InferenceError(_msg))
def test_raise_unconditional(x):
    raise Exception("I don't like your face")


@infer_scalar(i32, result=i32)
def test_raise_multiple(x):
コード例 #5
0
@mt(
    infer_scalar(i32, result=i32),
    infer_scalar(1, result=i64),
    infer_scalar(-1, result=InferenceError(_msg)),
)
def test_assert_msg(x):
    assert x >= 0, 'x must be positive'
    return x**0.5


@mt(
    infer_scalar(i32, result=i32),
    run_debug(4.5, result=4.5**0.5),
    run_debug(-5, result=Exception),
    gradient(4.5, pipeline=standard_debug_pipeline.configure(validate=False)),
)
def test_raise(x):
    if x >= 0:
        return x**0.5
    else:
        raise Exception("sqrt of negative number")


@infer_scalar(i32, result=InferenceError(_msg))
def test_raise_unconditional(x):
    raise Exception("I don't like your face")


@infer_scalar(i32, result=i32)
def test_raise_multiple(x):