You need to enable JavaScript to run this app. 如何用Python获取TFLite模型中Conv2D层的padding、stride等配置参数
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python获取TFLite模型中Conv2D层的padding、stride等配置参数

提取TFLite模型Conv2D层完整配置参数的Python实现

你之前调用的interpreter._get_ops_details()返回的每个算子信息中,自带builtin_options字典字段,Conv2D算子的步长、填充、膨胀系数等配置全部存在该字段中,不需要额外解析模型文件。

可直接提取的Conv2D配置参数包括:

  • padding:填充配置,返回值为整数,0对应VALID,1对应SAME
  • stride_h/stride_w:特征图高、宽维度的卷积步长
  • dilation_h_factor/dilation_w_factor:膨胀卷积的高、宽维度膨胀系数
  • fused_activation_function:算子融合的激活函数类型,返回值为整数,0对应无激活,1对应ReLU,3对应ReLU6等

以下是修正了笔误、可直接运行的完整代码:

import tensorflow as tf

# 配置映射字典,把返回的整数转成可读字符串
PADDING_MAP = {0: "VALID", 1: "SAME"}
ACTIVATION_MAP = {0: "NONE", 1: "RELU", 2: "RELU_N1_TO_1", 3: "RELU6", 4: "TANH", 5: "SIGN_BIT"}

SAVED_MODEL_PATH = "TFLITEMODEL_PATH.tflite"
interpreter = tf.lite.Interpreter(model_path=SAVED_MODEL_PATH)

ops = interpreter._get_ops_details()
conv_cnt = 0

for op_index, op in enumerate(ops):
    if op['op_name'] == "CONV_2D":
        conv_cnt += 1
        print(f"===== Conv2D 层 {conv_cnt} =====")
        # 读取输入输出张量信息
        print("输入输出张量信息:")
        for tensor_idx in op['inputs']:
            tensor = interpreter._get_tensor_details(tensor_idx)
            print(f"  {tensor['name']: <45} 形状:{tensor['shape']}")
        # 读取Conv2D配置参数
        conv_options = op['builtin_options']
        print("\n层配置参数:")
        print(f"  填充方式:{PADDING_MAP.get(conv_options['padding'], '未知')}")
        print(f"  步长:(h={conv_options['stride_h']}, w={conv_options['stride_w']})")
        print(f"  膨胀系数:(h={conv_options['dilation_h_factor']}, w={conv_options['dilation_w_factor']})")
        print(f"  融合激活函数:{ACTIVATION_MAP.get(conv_options['fused_activation_function'], '未知')}")
        print("-"*70)

输出示例:

===== Conv2D 层 1 =====
输入输出张量信息:
  Placeholder                                   形状:[  1 224 224   3]
  conv2d/kernel                                 形状:[64  7  7  3]
  conv2d/Conv2D_bias                            形状:[64]

层配置参数:
  填充方式:SAME
  步长:(h=2, w=2)
  膨胀系数:(h=1, w=1)
  融合激活函数:RELU6
----------------------------------------------------------------------
===== Conv2D 层 2 =====
输入输出张量信息:
  block-0/denseblock-0-0/Relu                   形状:[ 1 56 56 64]
  block-0/denseblock-0-0/conv2d/kernel          形状:[32  3  3 64]
  block-0/denseblock-0-0/conv2d/Conv2D_bias     形状:[32]

层配置参数:
  填充方式:SAME
  步长:(h=1, w=1)
  膨胀系数:(h=1, w=1)
  融合激活函数:NONE
----------------------------------------------------------------------

内容的提问来源于stack exchange,提问作者이지연

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 22:45:10