CANN/cannbot-skills:网络用例映射
Step 5b映射网络用例 → S5_mapped_cases_network.json【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills前置条件Step 5a 完成S5_case_mapper.py S5_mapped_cases_path.json 已写入映射规则5b 读S5_mapping_spec.md算子侧规格S2P1_low_configs.json网络侧结构自行生成映射规则并写回S5_mapping_spec.md§网络用例映射。输入文件清单见 00-execution-order.md。1. 目标将S2P1_low_configs.json映射为与S2P2_cases.json格式一致的S2P2_network_cases.json然后调用S5_case_mapper.main()复用 5a 全部管道附加元数据后输出S5_mapped_cases_network.json。读S5_mapping_spec.md§输入 tensor 的DYNAMIC标注识别 DYNAMIC 输入。读S2P1_low_configs.json前 3 条确认字段结构生成映射规则并写回S5_mapping_spec.md§网络用例映射。2. 数据流S5_mapping_spec.md算子侧§dtype ~ §验证规则 S2P1_low_configs.json网络侧config 字段结构 │ 5b 分析两侧生成映射规则 │ 写回 S5_mapping_spec.md §网络用例映射可审查 ▼ S2P2_network_cases.json可审查 │ S5_case_mapper.main(network_cases_file, network_out_file, id_prefixnetwork) ▼ ── 内部经 load_mapped_configs → map_case → validate_config ── S5_mapped_cases_network.json │ 每条附加 _source / _reason 元数据3. 映射推导3.0 生成映射规则读S5_mapping_spec.md§dtype ~ §验证规则算子侧S2P1_low_configs.json前 3 条网络侧分析两侧字段对应关系生成映射规则并写回S5_mapping_spec.md§网络用例映射。规则包括每个 config 字段对应的算子参数名及映射方式直接 / 乘积 / 透传DYNAMIC 输入的 tensor_count 来源config 提供 / 固定值缺失参数的默认值后续 §3.1-3.6 的模式用于将生成的规则翻译为代码。3.1 直接映射config 中某字段直接对应算子参数。对应case[{算子参数名}] cfg[{字段路径}]。3.2 乘积映射多个 config 字段的乘积对应一个算子参数。对应case[{算子参数名}] cfg[{字段1}] * cfg[{字段2}]。3.3 dtype 映射读 S5_mapping_spec.md §dtype 获取 dtype 控制参数名和合法值对照 config 的 dtypes 字段确定映射。值直接透传。3.4 attr 补全对照 S5_mapping_spec.md §shape 构造参数 §属性对 low_config 中缺失的算子参数取 default 值不随机采样。3.5 tensor_count 映射DYNAMIC 专用读 S5_mapping_spec.md §输入 tensor 中标注DYNAMIC的输入对照 config 字段确定 tensor_count 来源config 提供config 中有对应字段如shapes.tensor_count→case[{name}_count] cfg[{字段路径}]固定值config 中无对应字段 →case[{name}_count] {N}N 在 [min, min(max, 50)] 范围内选取3.6 _group所有网络用例的_group固定为network。4. 代码模板def map_network_to_path_cases(configs_file): 将 S2P1_low_configs.json 转换为 S2P2_network_cases.json 子 agent 从 §3.0 生成的映射规则翻译生成 with open(configs_file) as f: configs json.load(f) cases [] for config in configs: cfg config case {} # # 以下内容由子 agent 翻译生成 # # 直接映射 case[{算子参数名}] cfg[{语义名}] # 乘积映射 case[{算子参数名}] cfg[{语义名1}] * cfg[{语义名2}] # dtype 映射 case[{算子dtype_param}] cfg[{语义名}] # attr 补全不采样取 default case.setdefault({算子参数名}, {default}) # tensor_count 映射DYNAMIC 专用 case[{name}_count] cfg[{语义名}] # 或固定值 # _group 固定 case[_group] network # cases.append(case) return cases5. 生成 S2P2_network_cases.json 调 mainimport json, os from S5_case_mapper import main out_dir os.path.dirname(os.path.abspath(__file__)) low_configs_file os.path.join(out_dir, S2P1_low_configs.json) network_cases_file os.path.join(out_dir, S2P2_network_cases.json) network_out_file os.path.join(out_dir, S5_mapped_cases_network.json) # 1. 语义→算子参数写 S2P2_network_cases.json可审查 cases map_network_to_path_cases(low_configs_file) with open(network_cases_file, w) as f: json.dump(cases, f, indent2) print(fWritten {len(cases)} cases to S2P2_network_cases.json) # → 人工审查: 字段名、_group、乘积值、attr 默认值 # 2. 复用 5a 管道 main(network_cases_file, network_out_file, id_prefixnetwork) # 3. 附加元数据 low_configs json.load(open(low_configs_file)) with open(network_out_file) as f: mapped json.load(f) for i, mc in enumerate(mapped[cases]): mc[_source] low_configs[i].get(source) mc[_reason] low_configs[i].get(reason) with open(network_out_file, w) as f: json.dump(mapped, f, indent2) print(fWritten S5_mapped_cases_network.json)6. 输出S2P2_network_cases.json— 中间产物与S2P2_cases.json格式一致所有字段为算子参数名_group: networkS5_mapped_cases_network.json— 最终输出与S5_mapped_cases_path.json格式一致每条额外包含_source/_reason验证说明main()内部已对每条 network case 执行 L1 校验validate_config。L2-L4 验证S5_verify_mapper.py仅在 5a 对 path cases 执行——其目的是验证 mapper 函数本身的正确性5a 通过后即可认为map_case/validate_config逻辑可靠network cases 复用同一函数无需重复验证。【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考