You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将TensorFlow模型导出至CoreML报错:Sequential无_get_save_spec属性

解决TensorFlow转CoreML时的_get_save_spec错误

核心问题分析

你当前代码的关键错误是用原h5模型的文件路径保存SavedModel——h5是单个文件,而SavedModel是文件夹,路径重复会导致模型保存异常,最终触发'Sequential' object has no attribute '_get_save_spec'报错。此外,版本兼容性和保存方式也可能是诱因。

修复步骤与代码调整

1. 修正SavedModel保存路径

给SavedModel指定单独的文件夹路径,避免和原h5文件路径冲突,这是解决问题的核心。

2. 调整后的完整可运行代码

import tensorflow as tf
import coremltools as ct

# 打印版本信息,方便排查兼容性
print(f"TensorFlow版本: {tf.__version__}")
print(f"CoreMLTools版本: {ct.__version__}")

# 加载原h5模型
h5_model_path = "/Users/name/Desktop/model.h5"
model = tf.keras.models.load_model(h5_model_path)

# 定义独立的SavedModel保存文件夹(和原h5路径完全区分)
saved_model_dir = "/Users/name/Desktop/saved_model_folder"
# 保存为SavedModel格式,用'tf'替代'tensorflow'更规范
model.save(saved_model_dir, save_format='tf')

# 转换为CoreML模型
coreml_model = ct.convert(saved_model_dir, source='tensorflow')

# 保存最终的CoreML模型
coreml_model.save("/Users/name/Desktop/model.mlmodel")

3. 版本兼容性适配

TensorFlow 2.13.0需要搭配coremltools 7.x系列(推荐7.1版本),版本不匹配会引发各类转换异常。执行以下命令安装对应版本:

pip install coremltools==7.1

4. 额外排查方案(若上述步骤仍报错)

  • 验证原h5模型完整性:加载模型后做一次预测测试,确认模型本身无损坏
    import numpy as np
    # 替换为你的模型实际输入形状
    test_input = np.random.rand(1, 224, 224, 3).astype(np.float32)
    pred_result = model.predict(test_input)
    print(f"预测输出形状: {pred_result.shape}")  # 能正常输出则模型没问题
    
  • 改用TensorFlow原生的SavedModel保存方法:
    tf.saved_model.save(model, saved_model_dir)
    

内容的提问来源于stack exchange,提问作者Aakash Kothari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 19:12:34