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

加载TensorFlow pb模型后调用summary()报错,如何查看模型结构

查看TensorFlow .pb格式SavedModel结构的解决方案

错误原因

tf.saved_model.load加载返回的是TensorFlow SavedModel格式的通用封装_UserObject,不是Keras的模型实例,因此不具备summary()方法,只有通过tf.keras接口导出的模型,用对应接口加载才能直接调用summary()。

可用排查方法

  • 方法1:使用saved_model_cli命令行工具快速查询
    这是最便捷的查询方式,直接在终端执行以下命令即可输出模型的全量签名、输入输出结构、算子信息:
    saved_model_cli show --dir 替换为你的模型目录路径 --all
    
    从输出信息即可判断任务类型:如果输出包含detection_boxes/detection_scores/detection_classes等字段为目标检测任务;如果输出为和输入尺寸匹配的类别掩码,或存在segmentation_map/pred_mask等字段为分割任务。
  • 方法2:通过Python API查询签名与计算图结构
    用以下代码可以打印模型的输入输出定义、算子节点信息:
    import tensorflow as tf
    model_path = os.path.join(saved_path,"model",str(k+1))
    model = tf.saved_model.load(model_path)
    # 查看模型可用的推理签名
    print("可用签名:", model.signatures.keys())
    # 取默认的serving推理签名
    infer = model.signatures["serving_default"]
    # 打印输入输出的结构、形状、数据类型
    print("输入结构:", infer.structured_input_signature)
    print("输出结构:", infer.structured_outputs)
    # 按需打印计算图的所有算子节点
    for op in infer.graph.get_operations():
        print(op.name, op.outputs)
    
  • 方法3:TensorBoard可视化完整计算图
    如果需要更直观的查看全量结构,可以将计算图导出到TensorBoard中查看:
    from tensorflow.python.summary.writer.writer import FileWriter
    # 前面已经拿到infer推理签名
    with FileWriter("./tf_log", graph=infer.graph) as f:
        pass
    
    终端执行tensorboard --logdir ./tf_log,打开对应本地地址即可在Graphs栏查看完整的计算图结构。
  • 可选尝试:加载为Keras模型
    如果该模型是通过Keras接口导出的,可直接用Keras的加载接口拿到带summary()方法的模型实例:
    keras_model = tf.keras.models.load_model(model_path)
    keras_model.summary()
    

内容的提问来源于stack exchange,提问作者Seung H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:54:00