TensorFlow加载PB模型报错Invalid argument: Input 2 of node是什么问题
时间: 2024-02-21 10:01:44 浏览: 178
tensorflow报错
这个报错通常是因为模型中的输入节点名称和你在TensorFlow加载模型时指定的输入节点名称不一致导致的。具体来说,TensorFlow加载模型时需要指定模型的输入节点名称和输出节点名称,例如:
```python
import tensorflow as tf
with tf.gfile.GFile("model.pb", "rb") as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
with tf.Graph().as_default() as graph:
tf.import_graph_def(graph_def, name="")
input_node = graph.get_tensor_by_name("input:0")
output_node = graph.get_tensor_by_name("output:0")
```
这里假设模型的输入节点名称为`input`,输出节点名称为`output`。如果模型中的输入节点名称不是`input`,那么在调用`graph.get_tensor_by_name`函数时就会报错,提示无法找到输入节点。
解决方法是找到模型中的输入节点名称,然后修改代码中的输入节点名称。可以使用TensorFlow提供的工具`saved_model_cli`来查看模型中的节点名称。例如:
```bash
saved_model_cli show --dir model_dir --tag_set serve --signature_def serving_default
```
这里假设模型保存在`model_dir`目录下,tag名称为`serve`,signature_def名称为`serving_default`。运行命令后,会输出模型中的节点信息,包括节点名称、节点类型、输入输出信息等。可以找到输入节点的名称,然后在代码中修改相应的名称。
阅读全文