CANN/GE Session会话管理API指南
Session【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√模块导入from ge.session import Session from ge.error import GeError功能说明Session 类用于管理图的编译和执行会话。支持同步执行run_graph和异步执行 run_graph_with_stream_async。异步执行场景下可通过 register_external_allocator 注册自定义内存分配器。 不支持拷贝和深拷贝。类定义class Session: def __init__(self, options: Optional[dict] None) - None def add_graph(self, graph_id: int, graph: Graph, options: Optional[dict] None) - None def remove_graph(self, graph_id: int) - None def run_graph(self, graph_id: int, inputs: List[Tensor]) - List[Tensor] def run_graph_with_stream_async(self, graph_id: int, stream: int, inputs: List[Tensor]) - List[Tensor] def register_external_allocator(self, stream: int, allocator: Allocator) - None def unregister_external_allocator(self, stream: int) - None函数说明__init__def __init__(self, options: Optional[dict] None) - None功能说明创建会话实例可传入配置字典进行初始化。若不传入配置则使用默认配置创建会话。参数说明参数名类型必选/可选说明optionsOptional[dict]可选会话配置字典键值对均为字符串类型。不传入时使用默认配置创建会话。返回值说明无返回值。约束说明options 必须为 dict 类型或 None传入其他类型将抛出 TypeError。会话创建失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。Session 不支持拷贝copy和深拷贝deepcopy尝试拷贝将抛出 RuntimeError。add_graphdef add_graph(self, graph_id: int, graph: Graph, options: Optional[dict] None) - None功能说明将图添加到会话中支持传入额外的编译选项。参数说明参数名类型必选/可选说明graph_idint必选图的唯一标识用于在会话中区分不同的图。graphGraph必选待添加的图对象。optionsOptional[dict]可选图编译配置字典键值对均为字符串类型。不传入时使用默认配置。返回值说明无返回值。约束说明graph_id 必须为 int 类型否则抛出 TypeError。graph 必须为 Graph 类型否则抛出 TypeError。options 必须为 dict 类型或 None否则抛出 TypeError。添加图失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。remove_graphdef remove_graph(self, graph_id: int) - None功能说明从会话中移除指定图。参数说明参数名类型必选/可选说明graph_idint必选待移除图的唯一标识。返回值说明无返回值。约束说明graph_id 必须为 int 类型否则抛出 TypeError。移除图失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。run_graphdef run_graph(self, graph_id: int, inputs: List[Tensor]) - List[Tensor]功能说明同步执行指定图传入输入张量列表返回输出张量列表。参数说明参数名类型必选/可选说明graph_idint必选待执行图的唯一标识。inputsList[Tensor]必选输入张量列表列表中所有元素必须为 Tensor 类型。返回值说明返回值类型说明List[Tensor]图执行后的输出张量列表。约束说明graph_id 必须为 int 类型否则抛出 TypeError。inputs 中所有元素必须为 Tensor 类型否则抛出 TypeError。图执行失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。run_graph_with_stream_asyncdef run_graph_with_stream_async(self, graph_id: int, stream: int, inputs: List[Tensor]) - List[Tensor]功能说明在指定 stream 上异步执行图传入输入张量列表返回输出张量列表。输出张量的内存分配优先使用 通过 register_external_allocator 注册的外部分配器若未注册外部分配器GE 将自动使用内置分配器。参数说明参数名类型必选/可选说明graph_idint必选待执行图的唯一标识。streamint必选Stream 地址用于指定异步执行的流。inputsList[Tensor]必选输入张量列表列表中所有元素必须为 Tensor 类型。返回值说明返回值类型说明List[Tensor]图执行后的输出张量列表。约束说明graph_id 必须为 int 类型否则抛出 TypeError。stream 必须为 int 类型否则抛出 TypeError。inputs 必须为 list 类型且所有元素必须为 Tensor 类型否则抛出 TypeError。若该 stream 未注册外部分配器且默认分配器注册失败将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。图执行失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。register_external_allocatordef register_external_allocator(self, stream: int, allocator: Allocator) - None功能说明为指定 stream 注册外部内存分配器用于管理异步执行场景下的设备内存分配。参数说明参数名类型必选/可选说明streamint必选Stream 地址。allocatorAllocator必选外部内存分配器实例须为 Allocator 抽象基类的子类实例。返回值说明无返回值。约束说明stream 必须为 int 类型否则抛出 TypeError。allocator 必须为 Allocator 实例否则抛出 TypeError。注册失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。同一 stream 重复注册会覆盖之前的外部分配器。unregister_external_allocatordef unregister_external_allocator(self, stream: int) - None功能说明注销指定 stream 上注册的外部内存分配器。参数说明参数名类型必选/可选说明streamint必选Stream 地址。返回值说明无返回值。约束说明stream 必须为 int 类型否则抛出 TypeError。注销失败时将抛出 GeError异常信息包含 GE 内部错误信息和接口上下文。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考