# 如何读取MindSpore中的.pb文件中的节点

**1. 系统环境**

硬件环境\(Ascend/GPU/CPU\): GPU

软件环境: MindSpore 版本: 2.0

执行模式（静态图/动态图）： 不限

Python 版本: 3.7.6

操作系统平台: linux

**2. 解决方案**

修改逻辑：首先，需要适配节点的node\_mapper匹配算法的逻辑，则需要以下Node的参数。

![](figures/zh-cn_image_0000002100315196.png)

其次，原本.pb文件中node的name属性即是各个node的id，full\_name属性才是node的name，而.pbtxt文件中，没有node\_id，name属性就是该节点的名称。同时，发现topo\_id实际上就是直接取的node\_id的值，除了计数外并没有其他作用，故直接设置一个新的id参数，每过一个节点迭代+1，仅用作节点计数区分使用。

之后，由于.pbtxt文件中没有parameters参数的节点，删除相应的处理操作，并且，设置新的node\_map参数，通过内部存储各个节点的name来找出各个节点之间边的关系。

最终，通过onnx的ModelProto\(\)方法来实现整个读取节点的方式。

