paddle python 转换paddle cpai相关问题
Created by: lzp1317
由于项目需求,要将一段paddle的python代码转换成paddle capi,模型所需的数据都已经训练好,只需通过paddle capi加载计算即可。问题:python程序计算的结果和paddle capi计算结果有diff,怀疑可能是输入数据格式有问题。 python代码: `TERM_LEN = 800000
def get_slots(): slots = [sparse_binary_vector(TERM_LEN)] return slots
slots = get_slots() converter = DataProviderConverter(slots) instance_ = [[9046, 1557, 237, 9046, 1557, 237]] in_arg = converter([instance_]) outputs = network.forwardTest(in_arg)`
按照我的理解,模型的输入应该是一个稀疏向量,instance_表示索引,在这些索引对应的向量位置都置为1,其他位置值置为0,然后输入模型,因此有下面的paddle capi代码。
paddle capi 的代码如下: `const int dim = 800000; float array[dim]; for (int i = 0; i < dim; i++) { rray[i] = 0; } array[9046] = 1; array[1557] = 1; array[237] = 1; array[9046] = 1; array[1557] = 1; array[237] = 1;
bool use_gpu = false; paddle_matrix sentence = paddle_matrix_create(1, dim, use_gpu); CHECK(paddle_matrix_set_row(sentence, 0, array)); CHECK(paddle_arguments_set_value(in_args, 0, sentence));
int seq_pos_array[] = {0, 1}; paddle_ivector seq_pos = paddle_ivector_create(seq_pos_array, 2, false, false); CHECK(paddle_arguments_set_sequence_start_pos(in_args, 0, 0, seq_pos));
paddle_arguments out_args = paddle_arguments_create_none(); CHECK(paddle_gradient_machine_forward(_machine, in_args, out_args, false));`
运行以后两者计算结果不一样,paddle capi 的输入格式是否有问题,请各位大神解答一下,谢谢!