Exemplo n.º 1
0
    def run(self, inputs, **kwargs):  # type: (Any, **Any) -> Tuple[Any, ...]
        """
        Computes the prediction.
        See :meth:`migraphx.program.run`.
        """

        if isinstance(inputs, list):
            inps = {}
            for i, name in enumerate(self._input_names):
                inps[name] = migraphx.argument(inputs[i])
            mgx_outputs = self._program.run(inps)
            outs = []
            for out in mgx_outputs:
                outs.append(np.array(out))
            return outs
        else:
            inp = self._program.get_parameter_shapes().keys()
            if len(inp) != 1:
                raise RuntimeError("Model expect {0} inputs".format(len(inp)))
            inps = {inp[0]: migraphx.argument(inputs)}
            mgx_outputs = self._program.run(inps)
            outs = []
            for out in mgx_outputs:
                outs.append(np.array(out))
            return self._program.run(inps)
Exemplo n.º 2
0
def test_input():
    if sys.version_info >= (3, 0):
        test_shape([4])
        test_shape([2, 3])
    else:
        data = list(range(4))
        m = create_buffer('f', data, [4])
        a1 = migraphx.argument(m)
        a2 = migraphx.argument(bytearray(a1))
        check_shapes(a2, m)
        assert_eq(a1.tolist(), m.tolist())
Exemplo n.º 3
0
def test_add_scalar():
    p = migraphx.parse_onnx("add_scalar_test.onnx")
    print(p)
    s1 = p.get_output_shapes()[-1]
    print("Compiling ...")
    p.compile(migraphx.get_target("cpu"))
    print(p)
    s2 = p.get_output_shapes()[-1]
    assert s1 == s2

    d0 = list(range(120))
    arg0 = create_buffer("B", d0, [2, 3, 4, 5])
    d1 = [1]
    arg1 = create_buffer("B", d1, ())

    params = {}
    params["0"] = migraphx.argument(arg0)
    params["1"] = migraphx.argument(arg1)

    r = p.run(params)[-1]
    print(r)
def run_one_case(model, param_map):
    # convert np array to model argument
    pp = {}
    for key, val in param_map.items():
        pp[key] = migraphx.argument(val)

    # run the model
    model_outputs = model.run(param_map)

    # convert argument to np array
    outputs = []
    for output in model_outputs:
        outputs.append(np.array(output))

    return outputs
Exemplo n.º 5
0
    while line:
        token = line.split()
        filename = token[0]
        label = token[1]
        img_pil = Image.open(imagedir + "/" + filename)
        if img_pil.mode != 'RGB':
            img_pil2 = Image.new("RGB", img_pil.size)
            img_pil2.paste(img_pil)
            img_pil = img_pil2
        img_tensor = preprocess(img_pil)
        img_tensor.unsqueeze_(0)
        img_variable = Variable(img_tensor)

        image = img_variable.numpy()
        try:
            tmp_result = migraphx.to_gpu(migraphx.argument(image))
            params['0'] = tmp_result
            result = np.array(migraphx.from_gpu(model.run(params)), copy=False)
            maxval = result.argmax()
            maxlist = result.argsort()
            if int(label) == maxlist[0][999]:
                ilabel = 'first'
            elif int(label) == maxlist[0][998]:
                ilabel = 'second'
            elif int(label) == maxlist[0][997]:
                ilabel = 'third'
            elif int(label) == maxlist[0][996]:
                ilabel = 'fourth'
            elif int(label) == maxlist[0][995]:
                ilabel = 'fifth'
            else:
Exemplo n.º 6
0
def test_shape(shape):
    data = list(range(nelements(shape)))
    m = create_buffer('f', data, shape)
    a = migraphx.argument(m)
    check_shapes(a, m)
    assert_eq(a.tolist(), data)
Exemplo n.º 7
0
        finish_time = time.time()
        result = np.array(y_out)
        idx = np.argmax(result[0])
        print('Tensorflow: ')
        print('IDX  = ', idx)
        print('Time = ', '{:8.3f}'.format(finish_time - start_time))
elif framework == 'migraphx':
    import migraphx
    graph = migraphx.parse_tf(save_file)
    if fp16:
        graph.quantize_fp16()
    graph.compile(migraphx.get_target("gpu"), offload_copy=False)
    # allocate space with random params
    params = {}
    for key, value in graph.get_parameter_shapes().items():
        params[key] = migraphx.allocate_gpu(value)

    image = load_image(image_file, batch)
    for i in range(repeat):
        params['input'] = migraphx.to_gpu(migraphx.argument(image))
        result = np.array(migraphx.from_gpu(graph.run(params)), copy=False)
    start_time = time.time()
    for i in range(repeat):
        params['input'] = migraphx.to_gpu(migraphx.argument(image))
        result = np.array(migraphx.from_gpu(graph.run(params)), copy=False)
    finish_time = time.time()
    idx = np.argmax(result[0])
    print('MIGraphX: ')
    print('IDX  = ', idx)
    print('Time = ', '{:8.3f}'.format(finish_time - start_time))
Exemplo n.º 8
0
        idx = np.argmax(result[0])
        print('Tensorflow: ')
        print('IDX  = ', idx)
        print('Time = ', '{:8.3f}'.format(finish_time - start_time))
elif framework == 'migraphx':
    import migraphx
    graph = migraphx.parse_tf(save_file)
    if fp16:
        migraphx.quantize_fp16(graph)
    graph.compile(migraphx.get_target("gpu"))
    # allocate space with random params
    params = {}
    #for key,value in graph.get_parameter_shapes().items():
    #    params[key] = migraphx.allocate_gpu(value)

    image = load_image(image_file, batch)
    for i in range(repeat):
        params['input'] = migraphx.argument(image)
        #        result = np.array(graph.run(params),copy=False)
        result = graph.run(params)
    start_time = time.time()
    for i in range(repeat):
        params['input'] = migraphx.argument(image)
        #        result = np.array(graph.run(params),copy=False)
        result = graph.run(params)
    finish_time = time.time()
    idx = np.argmax(result[0])
    print('MIGraphX: ')
    print('IDX  = ', idx)
    print('Time = ', '{:8.3f}'.format(finish_time - start_time))
Exemplo n.º 9
0
count = 0
while (True):
    # capture frame by frame
    ret, frame = cap.read()

    if ret:  # check - some webcams need warmup operations on the frame
        cropped = frame[16:304, 8:232]  # 224x224

        trans = cropped.transpose(2, 0, 1)  # convert HWC to CHW

        # convert to float, normalize and make batch size = 1
        image = np.ascontiguousarray(
            np.expand_dims(trans.astype('float32') / 256.0, 0))

        # display the frame
        cv2.imshow('frame', cropped)

        params['0'] = migraphx.argument(image)
        result = np.array(model.run(params)[0])

        idx = np.argmax(result[0])

        print idx2label[idx], " ", result[0][idx]

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# when everything is done, release the capture
cap.release()
cv2.destroyAllWindows()