PaddleBuf 方法¶
PaddleBuf 用于设置 PaddleTensor 的数据信息,主要用于对输入 Tensor 中的数据进行赋值。
创建 PaddleBuf 对象¶
// 创建 PaddleBuf 对象
// 参数:None
// 返回:PD_PaddleBuf* - PaddleBuf 对象指针
PD_PaddleBuf* PD_NewPaddleBuf();
// 删除 PaddleBuf 对象
// 参数:buf - PaddleBuf 对象指针
// 返回:None
void PD_DeletePaddleBuf(PD_PaddleBuf* buf);
代码示例:
// 创建 PaddleBuf 对象
PD_PaddleBuf* input_buffer = PD_NewPaddleBuf();
// 删除 PaddleBuf 对象
PD_DeletePaddleBuf(input_buffer);
设置 PaddleBuf 对象¶
// 设置 PaddleBuf 的大小
// 参数:buf - PaddleBuf 对象指针
// length - 需要设置的大小
// 返回:None
void PD_PaddleBufResize(PD_PaddleBuf* buf, size_t length);
// 重置 PaddleBuf 包含的数据和大小
// 参数:buf - PaddleBuf 对象指针
// data - 需要设置的数据
// length - 需要设置的大小
// 返回:None
void PD_PaddleBufReset(PD_PaddleBuf* buf, void* data, size_t length);
// 判断 PaddleBuf 是否为空
// 参数:buf - PaddleBuf 对象指针
// 返回:bool - PaddleBuf 是否为空
bool PD_PaddleBufEmpty(PD_PaddleBuf* buf);
// 获取 PaddleBuf 中的数据
// 参数:buf - PaddleBuf 对象指针
// 返回:void* - PaddleBuf 中的数据指针
void* PD_PaddleBufData(PD_PaddleBuf* buf);
// 获取 PaddleBuf 中的数据大小
// 参数:buf - PaddleBuf 对象指针
// 返回:size_t - PaddleBuf 中的数据大小
size_t PD_PaddleBufLength(PD_PaddleBuf* buf);
代码示例:
// 创建 PaddleBuf
PD_PaddleBuf* input_buffer = PD_NewPaddleBuf();
// 判断 PaddleBuf 是否为空 - True
printf("PaddleBuf empty: %s\n", PD_PaddleBufEmpty(input_buffer) ? "True" : "False");
int input_size = 10;
float* input_data = malloc(sizeof(float) * input_size);
int i = 0;
for (i = 0; i < input_size ; i++){
input_data[i] = 1.0f;
}
// 重置 PaddleBuf 包含的数据和大小
PD_PaddleBufReset(input_buffer, (void*)(input_data), sizeof(float) * input_size);
// 获取 PaddleBuf 的大小 - 4 * 10
printf("PaddleBuf size is: %ld\n", PD_PaddleBufLength(input_buffer));