MCPcopy Create free account
hub / github.com/MegEngine/MegCC / run_model

Function run_model

yolox_example/main.cpp:334–368  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

332}
333
334std::vector<float> run_model(LiteNetwork model) {
335 struct timeval start;
336 struct timeval end;
337 gettimeofday(&start, NULL);
338 LITE_CAPI_CHECK(LITE_forward(model), "run model failed\n");
339 LITE_CAPI_CHECK(LITE_wait(model), "wait model failed\n");
340 gettimeofday(&end, NULL);
341 unsigned long diff =
342 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec;
343 printf("every iter use time: %fms\n", ((float)diff) / 1000);
344 LiteTensor output;
345 size_t nr_output = 0;
346 LITE_CAPI_CHECK(
347 LITE_get_all_output_name(model, &nr_output, NULL),
348 "get output number failed\n");
349 char* output_name_ptr[nr_output];
350 LITE_CAPI_CHECK(
351 LITE_get_all_output_name(model, NULL, (const char**)&output_name_ptr),
352 "get output name failed\n");
353 LITE_CAPI_CHECK(
354 LITE_get_io_tensor(model, output_name_ptr[0], LITE_OUTPUT, &output),
355 "get output tensor failed\n");
356 size_t length = 0;
357 LITE_CAPI_CHECK(
358 LITE_get_tensor_total_size_in_byte(output, &length),
359 "get output tensor size failed\n");
360 float* output_ptr = NULL;
361 LITE_CAPI_CHECK(
362 LITE_get_tensor_memory(output, (void**)&output_ptr),
363 "get output tensor memory failed\n");
364
365 std::vector<float> output_vec(output_ptr, output_ptr + length / sizeof(float));
366
367 return output_vec;
368}
369
370std::vector<float> inference(const char* model_path, std::vector<float>& input_data) {
371 LITE_set_log_level(INFO);

Callers 1

inferenceFunction · 0.70

Calls 6

LITE_forwardFunction · 0.85
LITE_waitFunction · 0.85
LITE_get_all_output_nameFunction · 0.85
LITE_get_io_tensorFunction · 0.85
LITE_get_tensor_memoryFunction · 0.85

Tested by

no test coverage detected