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

使用openvino2tensorflow转换模型时保存JSON报错:无法序列化module对象

解决OpenVINO转TensorFlow时model.to_json()的pickle错误

临时拆分执行方案

  • 先单独生成SavedModel,跳过JSON和权重的同步导出:
    openvino2tensorflow --model_path model.xml --output_saved_model
    
  • 用TensorFlow原生API手动导出JSON和权重:
    1. 加载生成的SavedModel:
      import tensorflow as tf
      loaded_model = tf.keras.models.load_model("saved_model")
      
    2. 导出模型结构为JSON:
      json_config = loaded_model.to_json()
      with open("model_config.json", "w") as f:
          f.write(json_config)
      
    3. 导出权重文件:
      loaded_model.save_weights("model_weights.h5")
      

排查并修复根本问题

  • 检查模型是否包含自定义算子:OpenVINO模型中的部分自定义操作转成TensorFlow后,可能携带无法序列化的模块引用,导致to_json()失败。
  • 升级工具到最新版本:工具本身可能已修复这类序列化bug,执行升级命令:
    pip install --upgrade openvino2tensorflow
    
  • 替换自定义层:若模型存在无法序列化的自定义层,加载SavedModel后手动替换为TensorFlow原生等价层,再执行导出操作。

替代的模型结构导出方式

如果JSON导出始终有问题,可以导出TensorFlow的pb文本格式查看模型结构:

import tensorflow as tf
loaded_model = tf.keras.models.load_model("saved_model")
tf.train.write_graph(loaded_model.graph, ".", "model_graph.pbtxt", as_text=True)

内容的提问来源于stack exchange,提问作者Alimagadov K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:54:51