Ejemplo n.º 1
0
    def test_run_tf_model(self):
        model = os.path.join(MODEL_DIR, 'graph.pb')
        bad_model = os.path.join(MODEL_DIR, 'pt-minimal.pt')

        with open(model, 'rb') as f:
            model_pb = f.read()

        with open(bad_model, 'rb') as f:
            wrong_model_pb = f.read()

        con = self.get_client()
        con.modelset('m', Backend.tf, Device.cpu, model_pb,
                     input=['a', 'b'], output='mul')

        # wrong model
        self.assertRaises(ResponseError,
                          con.modelset, 'm', Backend.tf, Device.cpu,
                          wrong_model_pb,
                          input=['a', 'b'], output='mul')
        # missing inputs/outputs
        self.assertRaises(ValueError,
                          con.modelset, 'm', Backend.tf, Device.cpu,
                          wrong_model_pb)

        # wrong backend
        self.assertRaises(ResponseError,
                          con.modelset, 'm', Backend.torch, Device.cpu,
                          model_pb,
                          input=['a', 'b'], output='mul')

        con.tensorset('a', Tensor.scalar(DType.float, 2, 3))
        con.tensorset('b', Tensor.scalar(DType.float, 2, 3))
        con.modelrun('m', ['a', 'b'], 'c')
        tensor = con.tensorget('c')
        self.assertEqual([4, 9], tensor.value)
Ejemplo n.º 2
0
 def testScriptLoad(self):
     con = self.get_client()
     dirname = os.path.dirname(__file__)
     path = f'{dirname}/testdata/script.txt'
     script = raimodel.Model.load(path)
     con.scriptset('script', Device.cpu, script)
     con.tensorset('a', Tensor.scalar(DType.float, 2, 5))
     con.tensorset('b', Tensor.scalar(DType.float, 3, 7))
     con.scriptrun('script', 'bar', ['a', 'b'], 'c')
     tensor = con.tensorget('c')
     self.assertEqual([5, 12], tensor.value)
Ejemplo n.º 3
0
    def test_set_tensor(self):
        con = self.get_client()
        con.tensorset('x', Tensor.scalar(DType.float, 2, 3))
        values = con.tensorget('x')
        self.assertEqual([2, 3], values.value)

        con.tensorset('x', Tensor.scalar(DType.int32, 2, 3))
        values = con.tensorget('x').value
        self.assertEqual([2, 3], values)

        self.assertRaises(Exception, con.tensorset, 1)
        self.assertRaises(Exception, con.tensorset, 'x')
Ejemplo n.º 4
0
 def testPyTorchGraph(self):
     torch_graph = MyModule()
     path = f'{time.time()}.pb'
     raimodel.Model.save(torch_graph, path)
     model = raimodel.Model.load(path)
     os.remove(path)
     con = self.get_client()
     con.modelset('ptmodel', Backend.torch, Device.cpu, model)
     con.tensorset('a', Tensor.scalar(DType.float, 2, 5))
     con.tensorset('b', Tensor.scalar(DType.float, 3, 7))
     con.modelrun('ptmodel', ['a', 'b'], 'c')
     tensor = con.tensorget('c')
     self.assertEqual([5, 12], tensor.value)
Ejemplo n.º 5
0
    def test_scripts(self):
        con = self.get_client()
        self.assertRaises(ResponseError, con.scriptset,
                          'ket', Device.cpu, 'return 1')
        con.scriptset('ket', Device.cpu, r"""
def bar(a, b):
    return a + b
""")
        con.tensorset('a', Tensor.scalar(DType.float, 2, 3))
        con.tensorset('b', Tensor.scalar(DType.float, 2, 3))
        # try with bad arguments:
        self.assertRaises(ResponseError,
                          con.scriptrun, 'ket', 'bar', input='a', output='c')
        con.scriptrun('ket', 'bar', input=['a', 'b'], output='c')
        tensor = con.tensorget('c')
        self.assertEqual([4, 6], tensor.value)


# TODO: image/blob tests; more numpy tests..
Ejemplo n.º 6
0
 def testTFGraph(self):
     y = get_tf_graph()
     init = tf.global_variables_initializer()
     sess = tf.Session()
     sess.run(init)
     path = f'{time.time()}.pb'
     raimodel.Model.save(sess, path, output=['output'])
     model = raimodel.Model.load(path)
     os.remove(path)
     con = self.get_client()
     con.modelset('tfmodel',
                  Backend.tf,
                  Device.cpu,
                  model,
                  input=['input'],
                  output=['output'])
     con.tensorset('a', Tensor.scalar(DType.float, 2))
     con.modelrun('tfmodel', ['a'], 'c')
     tensor = con.tensorget('c')
     self.assertEqual([13], tensor.value)