如何用Python获取TFLite模型中Conv2D层的padding、stride等配置参数
提取TFLite模型Conv2D层完整配置参数的Python实现
你之前调用的interpreter._get_ops_details()返回的每个算子信息中,自带builtin_options字典字段,Conv2D算子的步长、填充、膨胀系数等配置全部存在该字段中,不需要额外解析模型文件。
可直接提取的Conv2D配置参数包括:
padding:填充配置,返回值为整数,0对应VALID,1对应SAMEstride_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,提问作者이지연
相关产品推荐
相关产品推荐

