枚举类型

DataType

DataType 为模型中 Tensor 的数据精度,默认值为 FLOAT32。枚举变量与 API 定义如下:

// DataType 枚举类型定义
enum DataType { FLOAT32, INT32, INT64, UINT8, UNKDTYPE };

// 获取输入 dtype 的数据大小
// 参数:dtype - PaddleDType 枚举类型
// 返回:int32 - dtype 对应的数据大小
func SizeofDataType(dtype PaddleDType) int32

代码示例:

package main

// 引入 Paddle Golang Package
import "/pathto/Paddle/go/paddle"

func main() {
    println("FLOAT32 size is: ", paddle.SizeofDataType(paddle.FLOAT32)); // 4
    println("INT64 size is: ", paddle.SizeofDataType(paddle.INT64)); // 8
    println("INT32 size is: ", paddle.SizeofDataType(paddle.INT32)); // 4
    println("UINT8 size is: ", paddle.SizeofDataType(paddle.UINT8)); // 1
}

Precision

Precision 设置模型的运行精度,默认值为 Precision_FLOAT32。枚举变量定义如下:

// PrecisionType 枚举类型定义
enum Precision { Precision_FLOAT32, Precision_INT8, Precision_HALF };

代码示例:

package main

// 引入 Paddle Golang Package
import "/pathto/Paddle/go/paddle"

func main() {
    // 创建 AnalysisConfig 对象
    config := paddle.NewAnalysisConfig()
  
    // 启用 GPU 进行预测 - 初始化 GPU 显存 100M, Deivce_ID 为 0
    config.EnableUseGpu(100, 0)

    // 启用 TensorRT 进行预测加速 - FP32
    config.EnableTensorRtEngine(1 << 20, 1, 3, paddle.Precision_FLOAT32, false, false)

    // 启用 TensorRT 进行预测加速 - FP16
    config.EnableTensorRtEngine(1 << 20, 1, 3, paddle.Precision_HALF, false, false)

    // 启用 TensorRT 进行预测加速 - Int8
    config.EnableTensorRtEngine(1 << 20, 1, 3, paddle.Precision_INT8, false, false)
  
    // 通过 API 获取 TensorRT 启用结果 - true
    println("Enable TensorRT is: ", config.TensorrtEngineEnabled())
}