原来代码:
import tensorflow as tf
from tensorflow.keras.models import load_model
import onnx
import keras2onnx
# 加载 HDF5 模型
hdf5_model_path = 'fseg-98.hdf5'
model = load_model(hdf5_model_path)
# 将 Keras 模型转换为 ONNX 模型
onnx_model = keras2onnx.convert_keras(model, model.name)
# 保存 ONNX 模型
onnx_model_path = 'pred_3d.onnx'
onnx.save_model(onnx_model, onnx_model_path)
会进行报错:
AttributeError: ‘KerasTensor‘ object has no attribute ‘
我们换一种实现思路:
代码:
hdf5_model_path = 'fseg-98.hdf5'
model = load_model(hdf5_model_path)
tf.saved_model.save(model, "tmp_model")
先运行上面的代码,之后会在本地生成一个tmp_model的文件夹。
之后终端窗口下运行:
python -m tf2onnx.convert --saved-model ./tmp_model --output "fseg-98.onnx"
会生成一个名字为 ”fseg-98.onnx“文件
搞定!