def infer(self, inputs, return_numpy=True): """ Do Inference for Inputs Args: inputs (map): a map of {"input_name": input_var} that will be feed into the inference program return_numpy (bool): transform return value into numpy or not Returns: Tensor or Numpy: the predict value of the inference model for the inputs Examples: .. code-block:: python tensor_x = numpy.random.uniform(0, 10, [batch_size, 13]).astype("float32") results = inferencer.infer({'x': tensor_x}) """ if not isinstance(inputs, dict): raise ValueError( "inputs should be a map of {'input_name': input_var}") with executor.scope_guard(self.scope): results = self.exe.run(self.inference_program, feed=inputs, fetch_list=[self.predict_var], return_numpy=return_numpy) return results
def _test_by_executor(self, reader, feed_order, fetch_list): with executor.scope_guard(self.scope): feed_var_list = build_feed_var_list(self.test_program, feed_order) feeder = data_feeder.DataFeeder( feed_list=feed_var_list, place=self.place) exe = executor.Executor(self.place) accumulated = len(fetch_list) * [0] count = 0 for data in reader(): outs = exe.run(program=self.test_program, feed=feeder.feed(data), fetch_list=fetch_list) accumulated = [x[0] + x[1][0] for x in zip(accumulated, outs)] count += 1 return [x / count for x in accumulated]
def infer(self, inputs, return_numpy=True): """ :param inputs: a map of {"input_name": input_var} that will be feed into the inference program to get the predict value :return: the predict value of the inference model """ if not isinstance(inputs, dict): raise ValueError( "inputs should be a map of {'input_name': input_var}") with executor.scope_guard(self.scope): results = self.exe.run(self.inference_program, feed=inputs, fetch_list=[self.predict_var], return_numpy=return_numpy) return results
def _prog_and_scope_guard(self): with framework.program_guard( main_program=self.train_program, startup_program=self.startup_program): with executor.scope_guard(self.scope): yield
def _prog_and_scope_guard(self): with framework.program_guard(main_program=self.inference_program): with executor.scope_guard(self.scope): yield