Tensor

  1. class Tensor

Tensor是Paddle-Lite的数据组织形式,用于对底层数据进行封装并提供接口对数据进行操作,包括设置Shape、数据、LoD信息等。

注意:用户应使用CxxPredictorLightPredictorget_inputget_output接口获取输入/输出的Tensor

示例:

  1. from paddlelite.lite import *
  2. import numpy as np
  3. import argparse
  4. # Command arguments
  5. parser = argparse.ArgumentParser()
  6. parser.add_argument(
  7. "--model_file", default="", type=str, help="Model file")
  8. parser.add_argument(
  9. "--param_file", default="", type=str, help="Combined model param file")
  10. parser.add_argument(
  11. "--model_dir", default="", type=str, help="Non-combined Model dir path")
  12. args = parser.parse_args()
  13. # 1. 设置CxxConfig
  14. config = CxxConfig()
  15. if args.model_file != '' and args.param_file != '':
  16. config.set_model_file(args.model_file)
  17. config.set_param_file(args.param_file)
  18. else:
  19. config.set_model_dir(args.model_dir)
  20. places = [Place(TargetType.X86, PrecisionType.FP32)]
  21. config.set_valid_places(places)
  22. # 2. 创建CxxPredictor
  23. predictor = create_paddle_predictor(config)
  24. # 3. 设置输入数据
  25. input_tensor = predictor.get_input(0)
  26. input_tensor.from_numpy(np.ones((1, 3, 224, 224)).astype("float32"))
  27. # 4. 运行模型
  28. predictor.run()
  29. # 5. 获取输出数据
  30. output_tensor = predictor.get_output(0)
  31. output_data = output_tensor.numpy()
  32. print(output_data)

resize(shape)

设置Tensor的维度信息。

参数:

  • shape(list) - 维度信息

返回:None

返回类型:None

shape()

获取Tensor的维度信息。

参数:

  • None

返回:Tensor的维度信息

返回类型:list

numpy()

获取Tensor的持有的数据。

示例:

  1. output_tensor = predictor.get_output(0)
  2. output_data = output_tensor.numpy()
  3. print(output_data)

参数:

  • None

返回:Tensor持有的数据

返回类型:numpy.array

from_numpy(np.array)

设置Tensor的持有数据。

示例:

  1. import numpy as np
  2. input_tensor = predictor.get_input(0)
  3. input_tensor.from_numpy(np.ones([1, 3, 224, 224].astype("float32")))

参数:

  • numpy.array - 待设置的数据

返回:None

返回类型:None

set_lod(lod)

设置Tensor的LoD信息。

参数:

  • lod(list[list]) - Tensor的LoD信息

返回:None

返回类型:None

lod()

获取Tensor的LoD信息

参数:

  • None

返回:Tensor的LoD信息

返回类型:list[list]

float_data()

获取Tensor的持有的float型数据。

示例:

  1. output_tensor = predictor.get_output(0)
  2. print(output_tensor.shape())
  3. print(output_tensor.float_data()[:10])

参数:

  • None

返回:Tensor持有的float型数据

返回类型:list

set_float_data(float_data)

设置Tensor持有float数据。

示例:

  1. input_tensor = predictor.get_input(0)
  2. input_tensor.resize([1, 3, 224, 224])
  3. input_tensor.set_float_data([1.] * 3 * 224 * 224)

参数:

  • float_data(list) - 待设置的float型数据

返回:None

返回类型:None