导入onnx_tf.backend触发ModuleNotFoundError:找不到keras.src.engine模块
解决
ModuleNotFoundError: No module named 'keras.src.engine'问题 这个错误是由于onnx-tf版本与最新版TensorFlow/Keras(尤其是Keras 3.x)的目录结构不兼容导致的,以下是几种可行的解决办法:
方法1:安装onnx-tf的开发版
官方已在开发分支修复了Keras 3.x的兼容问题,直接安装最新源码版本:
pip install git+https://github.com/onnx/onnx-tensorflow.git
方法2:降级到兼容的Keras版本
如果不想使用开发版,可将Keras降级到2.x系列(避开3.x的目录结构变化),同时匹配对应TensorFlow版本:
# 卸载当前Keras pip uninstall -y keras # 安装兼容版本(TensorFlow 2.15.x对应Keras 2.15.0) pip install keras==2.15.0
注意:安装后需确保TensorFlow版本与Keras版本匹配,避免版本冲突。
方法3:更换转换工具链
如果上述方法仍无效,可改用onnxruntime结合TensorFlow的SavedModel进行转换,步骤如下:
- 安装依赖:
pip install onnxruntime tensorflow
- 使用以下代码转换:
import onnx import tensorflow as tf from onnxruntime.tools.convert_to_saved_model import convert_to_saved_model # 加载ONNX模型 onnx_model = onnx.load(onnx_path) # 转换为TensorFlow SavedModel convert_to_saved_model(onnx_model, saved_model_dir=saved_model_path) # 转换为TFLite converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_path) tflite_model = converter.convert() # 保存TFLite模型 with open(tflite_path, "wb") as f: f.write(tflite_model)
内容的提问来源于stack exchange,提问作者Mel7
相关产品推荐
相关产品推荐

