CANN/ge GE Python Graph API
Graph【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge产品支持情况产品是否支持Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√模块导入from ge.graph import Graph功能说明Graph 类是 GE Python 接口的核心图操作类用于管理计算图的构建、查询和修改。主要提供以下能力图生命周期管理创建、销毁计算图支持图的序列化与反序列化。节点查询获取图中所有节点或直接节点按名称查找节点。属性管理获取和设置图级别的自定义属性。边操作添加/删除数据边和控制边构建节点间的数据依赖和控制依赖关系。子图管理添加、查询、删除子图支持层级化的图结构。序列化与持久化将图导出为文件dump_to_file或字符串dump_to_stream支持保存和加载 AIR 格式模型。函数原型__init__def __init__(self, name: Optional[str] graph) - None创建一个 Graph 对象。name属性property def name(self) - str获取图名称。get_all_nodesdef get_all_nodes(self) - List[Node]获取图中所有节点包括子图中的节点。get_direct_nodesdef get_direct_nodes(self) - List[Node]获取当前图的直接节点不包含子图中的节点。get_attrdef get_attr(self, key: str) - Any获取图的指定属性值。set_attrdef set_attr(self, key: str, value: Any) - None设置图的指定属性。dump_to_filedef dump_to_file(self, format: DumpFormat DumpFormat.kReadable, suffix: str ) - None将图导出到文件。dump_to_streamdef dump_to_stream(self, format: DumpFormat DumpFormat.kReadable) - str将图导出为字符串。save_to_airdef save_to_air(self, file_path: str) - None将图保存为 AIR 格式文件。load_from_airdef load_from_air(self, file_path: str) - None从 AIR 格式文件加载图。remove_nodedef remove_node(self, node: Node) - None从图中移除指定节点。remove_edgedef remove_edge(self, src_node: Node, src_port_index: int, dst_node: Node, dst_port_index: int) - None移除指定的边。add_data_edgedef add_data_edge(self, src_node: Node, src_port_index: int, dst_node: Node, dst_port_index: int) - None添加数据边。add_control_edgedef add_control_edge(self, src_node: Node, dst_node: Node) - None添加控制边。find_node_by_namedef find_node_by_name(self, name: str) - Node根据节点名称查找节点。get_all_subgraphsdef get_all_subgraphs(self) - List[Graph]获取图中所有子图。get_subgraphdef get_subgraph(self, name: str) - Optional[Graph]根据名称获取指定子图。add_subgraphdef add_subgraph(self, subgraph: Graph) - None向图中添加子图。remove_subgraphdef remove_subgraph(self, name: str) - None根据名称移除子图。参数说明__init__参数名类型是否必选默认值说明nameOptional[str]否graph图名称必须为字符串类型。name无参数只读属性。get_all_nodes无参数。get_direct_nodes无参数。get_attr参数名类型是否必选默认值说明keystr是-属性名称必须为字符串类型。set_attr参数名类型是否必选默认值说明keystr是-属性名称必须为字符串类型。valueAny是-属性值支持多种数据类型。dump_to_file参数名类型是否必选默认值说明formatDumpFormat否DumpFormat.kReadable导出文件的格式取值范围为DumpFormat.kOnnx、DumpFormat.kTxt、DumpFormat.kReadable。suffixstr否文件名后缀追加在生成的文件名末尾。例如 suffix 为 xxxx 时文件名格式为ge_format_00000_graph_name_0_xxxx.ext。DumpFormat 枚举值说明枚举值数值说明DumpFormat.kOnnx0ONNX 文本格式pbtxt仅包含图结构不包含权重数据或其他属性。DumpFormat.kTxt1文本格式。DumpFormat.kReadable2可读格式默认。dump_to_stream参数名类型是否必选默认值说明formatDumpFormat否DumpFormat.kReadable导出字符串的格式取值范围为DumpFormat.kOnnx、DumpFormat.kTxt、DumpFormat.kReadable。save_to_air参数名类型是否必选默认值说明file_pathstr是-AIR 文件的保存路径必须为字符串类型。load_from_air参数名类型是否必选默认值说明file_pathstr是-AIR 文件的加载路径必须为字符串类型。remove_node参数名类型是否必选默认值说明nodeNode是-待移除的节点对象必须为 Node 类型。remove_edge参数名类型是否必选默认值说明src_nodeNode是-边的源节点必须为 Node 类型。src_port_indexint是-源节点的输出端口索引。移除控制边时应设置为 -1。dst_nodeNode是-边的目标节点必须为 Node 类型。dst_port_indexint是-目标节点的输入端口索引。移除控制边时应设置为 -1。add_data_edge参数名类型是否必选默认值说明src_nodeNode是-数据边的源节点必须为 Node 类型。src_port_indexint是-源节点的输出端口索引必须为整数。dst_nodeNode是-数据边的目标节点必须为 Node 类型。dst_port_indexint是-目标节点的输入端口索引必须为整数。add_control_edge参数名类型是否必选默认值说明src_nodeNode是-控制边的源节点必须为 Node 类型。dst_nodeNode是-控制边的目标节点必须为 Node 类型。find_node_by_name参数名类型是否必选默认值说明namestr是-节点名称必须为字符串类型。get_all_subgraphs无参数。get_subgraph参数名类型是否必选默认值说明namestr是-子图名称必须为字符串类型。add_subgraph参数名类型是否必选默认值说明subgraphGraph是-待添加的子图对象必须为 Graph 类型。remove_subgraph参数名类型是否必选默认值说明namestr是-待移除的子图名称必须为字符串类型。返回值说明方法返回类型说明__init__None无返回值。创建成功则返回 Graph 对象创建失败则抛出异常。namestr返回图名称字符串。get_all_nodesList[Node]返回图中所有节点列表包含子图中的节点。若图为空则返回空列表。get_direct_nodesList[Node]返回当前图的直接节点列表不包含子图中的节点。若图为空则返回空列表。get_attrAny返回指定属性名称对应的属性值。set_attrNone无返回值。设置失败则抛出异常。dump_to_fileNone无返回值。导出失败则抛出异常。dump_to_streamstr返回图的字符串表示。save_to_airNone无返回值。保存失败则抛出异常。load_from_airNone无返回值。加载失败则抛出异常。remove_nodeNone无返回值。移除失败则抛出异常。remove_edgeNone无返回值。移除失败则抛出异常。add_data_edgeNone无返回值。添加失败则抛出异常。add_control_edgeNone无返回值。添加失败则抛出异常。find_node_by_nameNode返回找到的节点对象。未找到则抛出异常。get_all_subgraphsList[Graph]返回所有子图列表。若没有子图则返回空列表。get_subgraphOptional[Graph]返回指定名称的子图对象。若未找到则返回 None。add_subgraphNone无返回值。添加失败则抛出异常。remove_subgraphNone无返回值。移除失败则抛出异常。约束说明所有权模型Graph 对象存在两种所有权状态。默认情况下由 Python 侧管理 C 资源的生命周期。当 Graph 作为子图参数传递给算子如 If、While、Case时所有权会自动转移至 C 侧以避免双重释放问题。禁止拷贝Graph 类不支持拷贝操作浅拷贝和深拷贝均不支持调用copy或deepcopy将抛出 RuntimeError。子图名称唯一性调用add_subgraph添加子图时子图名称在父图中必须唯一。若名称已存在操作将失败并抛出异常。边的端口索引调用remove_edge移除控制边时src_port_index和dst_port_index均应设置为 -1。移除数据边时端口索引必须与实际连接的端口一致。dump_to_file 输出限制使用 DumpFormat.kOnnx 格式导出时pbtxt 文件仅包含图结构信息不包含权重数据或其他属性。类型校验所有方法的参数均进行类型校验类型不匹配时将抛出 TypeError操作失败时将抛出 RuntimeError。节点查找find_node_by_name在未找到指定名称的节点时会抛出 RuntimeError而非返回 None。使用前需确认节点确实存在。【免费下载链接】geGEGraph Engine是面向昇腾的图编译器和执行器提供了计算图优化、多流并行、内存复用和模型下沉等技术手段加速模型执行效率减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好接入能力并同时支持 onnx、pb 等主流模型格式的解析与编译。项目地址: https://gitcode.com/cann/ge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考