def verify_where(condition, x, y): dtype = "float32" if len(condition.shape) == 1: np_out = np.array( [xv if c else yv for (c, xv, yv) in zip(condition, x, y)]) else: np_out = np.where(condition, x, y) cond_var = sym.Variable("condition") x_var = sym.Variable("x") y_var = sym.Variable("y") net = sym.where(cond_var, x_var, y_var) for target, ctx in ctx_list(): graph, lib, _ = nnvm.compiler.build(net, target, { "condition": condition.shape, "x": x.shape, "y": y.shape }) m = graph_runtime.create(graph, lib, ctx) m.set_input(**{"condition": condition, "x": x, "y": y}) m.run() out = m.get_output(0, tvm.nd.empty(x.shape, dtype)) tvm.testing.assert_allclose(out.asnumpy(), np_out, atol=1e-5, rtol=1e-5)
def verify_where(condition, x, y): dtype = "float32" if len(condition.shape) == 1: np_out = np.array([xv if c else yv for (c,xv,yv) in zip(condition,x,y)]) else: np_out = np.where(condition, x, y) cond_var = sym.Variable("condition") x_var = sym.Variable("x") y_var = sym.Variable("y") net = sym.where(cond_var, x_var, y_var) for target, ctx in ctx_list(): graph, lib, _ = nnvm.compiler.build(net, target, {"condition": condition.shape, "x": x.shape, "y": y.shape}) m = graph_runtime.create(graph, lib, ctx) m.set_input(**{"condition": condition, "x": x, "y": y}) m.run() out = m.get_output(0, tvm.nd.empty(x.shape, dtype)) tvm.testing.assert_allclose(out.asnumpy(), np_out, atol=1e-5, rtol=1e-5)