[Práctica de ingeniería] Solucione el error informado al usar tf2onnx para convertir el modelo en formato onnx: AttributeError: el objeto 'FuncGraph' no tiene el atributo '_captures'

1. Descripción del problema

 

        Como se menciona en el título, se informa un error al usar tf2onnx para convertir el modelo tensorflow a onnx, AttributeError: el objeto 'FuncGraph' no tiene el atributo '_captures'.

        La versión de python es 3.9, la versión de tensorflow es 2.13 y el comando de conversión para ejecutar es:

python -m tf2onnx.convert --saved-model keras_graph_model --output model.onnx --opset 11 --verbose

2. Soluciones

        Hay dos soluciones, una de las cuales es causada por la discrepancia de versión entre tensorflow y python, que debe reemplazarse con la versión correcta.

        Otra forma más sencilla y rápida es modificar el código en el archivo tf2onnx. La solución en github se muestra a continuación:

        El funcionamiento real es el siguiente. Modifique el siguiente código en el archivo tf_loader.py:

graph_captures = concrete_func.graph.captures
captured_inputs = [t_name.name for _, t_name in graph_captures.values()]

        cambie a:

graph_captures = concrete_func.graph.captures  
captured_inputs = [t_name.name for t_val, t_name in graph_captures]

Supongo que te gusta

Origin blog.csdn.net/weixin_44750512/article/details/132208118
Recomendado
Clasificación