如何调试打印Apple性能着色器中的MPSGraph?
打印MPSGraph图形结构的实现方法
方法一:直接使用description属性
MPSGraph继承自NSObject,自带的description属性会返回图形的结构化描述,直接打印就能快速查看整体拓扑与节点概要:
NSLog(@"MPSGraph 结构详情:\n%@", graph.description);
输出内容包含节点总数、张量信息以及图形的整体结构框架。
方法二:手动遍历节点与张量(自定义输出细节)
如果默认描述不够细致,可以通过allNodes属性遍历所有节点,逐个打印节点类型、名称、输入输出张量等信息:
// 遍历图中所有节点 for (MPSGraphNode *node in graph.allNodes) { NSLog(@"节点类型: %@", NSStringFromClass([node class])); NSLog(@"节点名称: %@", node.name ?: @"未命名"); // 打印输入张量 NSLog(@"输入张量列表:"); for (NSUInteger i = 0; i < node.inputTensors.count; i++) { MPSGraphTensor *tensor = node.inputTensors[i]; NSLog(@" 索引%lu: %@ (形状: %@)", (unsigned long)i, tensor.name ?: @"无名张量", tensor.shape); } // 打印输出张量 NSLog(@"输出张量列表:"); for (NSUInteger i = 0; i < node.outputTensors.count; i++) { MPSGraphTensor *tensor = node.outputTensors[i]; NSLog(@" 索引%lu: %@ (形状: %@)", (unsigned long)i, tensor.name ?: @"无名张量", tensor.shape); } NSLog(@"------------------------"); }
这种方式可按需定制输出,比如针对卷积、池化等特定节点,额外打印运算参数(如卷积核大小、步长)。
内容的提问来源于stack exchange,提问作者Edward Z. Yang
相关产品推荐
相关产品推荐

