RunGraphAsync
函数功能
异步执行指定id对应的Graph图,输出执行结果。
此函数与RunGraph均为执行指定id对应的图,并输出结果,区别于RunGraph的是,该接口:
- 异步执行。
- 承载数据的数据格式不一样,但含义相同。
- 用户通过回调函数RunAsyncCallback获取图计算结果,即用户自行定义函数RunAsyncCallback。该回调函数,当status为success时,即可处理数据。
函数原型
Status RunGraphAsync(uint32_t graph_id, const std::vector<ge::Tensor> &inputs, RunAsyncCallback callback); Status RunGraphAsync(uint32_t graph_id, const ContinuousTensorList &inputs, RunAsyncCallback callback);
参数说明
参数名 |
输入/输出 |
描述 |
||
---|---|---|---|---|
graph_id |
输入 |
子图对应的id。 |
||
inputs |
输入 |
当前子图对应的输入数据。
|
||
callback |
输出 |
当前子图对应的回调函数。
|
返回值
参数名 |
类型 |
描述 |
---|---|---|
- |
Status |
GE_CLI_GE_NOT_INITIALIZED:GE未初始化。 SUCCESS:异步执行图成功。 FAILED:异步执行图失败。 |
约束说明
无。
调用示例
- 定义子图对应的id。
uint32_t graph_id = 0;
- 用户自定义RunAsyncCallback,来决定如何处理数据,例如:
1 2 3 4 5 6 7 8 9
void CallBack(Status result, std::vector<ge::Tensor> &out_tensor) { if(result == ge::SUCCESS) { // 读取out_tensor数据, 用户根据需求处理数据; for(auto &tensor : out_tensor) { auto data = tensor.GetData(); int64_t length = tensor.GetSize(); } } }
- 定义好指定图的输入数据const std::vector<ge::Tensor> &inputs。
- 调用接口RunGraphAsync(graph_id, inputs, CallBack)。
父主题: Graph运行接口