问题1:请教一下,机器学习PAI中baldeDISC编译出来的文件如何查看 想看看编译出来子图是什么样的。用netron打开.pb文件会报错,bladedisc在运行过程中可以dump graph吗? 问题2:dump编译过程是把编译日志打开,把日志存到文件里吗?
如果您使用baldeDISC工具将机器学习PAI中的模型编译成可执行文件,您可以通过以下方式查看编译后的文件:
在baldeDISC命令行界面中,输入“list”命令可以列出当前目录下的所有编译好的可执行文件。
使用文件浏览器(如Windows资源管理器或macOS Finder)导航到baldeDISC生成的目录,您应该能够看到编译好的可执行文件。
在Linux系统上,您可以使用“ls”命令查看当前目录下的可执行文件列表。例如,如果baldeDISC生成的可执行文件名为“my_model”,则可以使用“ls my_model”命令查看该文件。
请注意,编译好的可执行文件通常以“.bin”或“.out”作为扩展名。如果您的可执行文件没有这些扩展名,请确保您已经正确地使用了baldeDISC工具进行编译。
在机器学习PAI平台上使用BladeDISC编译出来的.pb文件可以通过以下两种方法进行查看:
使用Tensorflow自带的工具TensorBoard。TensorBoard是Tensorflow提供的一个可视化工具,可以帮助开发者更直观地了解模型结构、训练过程等信息。在BladeDISC编译时,需要在参数中指定--save_graph_def=path/to/save/model.pb,然后用TensorBoard加载这个文件即可。
使用Netron。Netron是一款开源的深度学习模型可视化工具,支持多种类型的模型文件,包括TensorFlow的.pb文件。但是,您需要确保Netron的版本和Tensorflow的版本兼容,否则可能会出现无法打开模型文件的情况。如果出现报错,可以尝试更新Netron或Tensorflow版本,或者使用TensorBoard进行可视化。
对于BladeDISC是否可以在运行过程中dump graph,我暂时不确定,建议您查看官方文档或联系开发人员获取更详细的信息。
BladeDISC 可以通过 dump_graph()
方法,在运行时将计算图保存到指定的文件中,以便离线查看。
具体的使用方式如下:
import paddle.fluid as fluid
from paddle.fluid.contrib.sparsity import Compressor, AggregateGrad
# 创建一个 Compressor
compressor = Compressor(
places='CPU',
fluid_executor=fluid.Executor(fluid.CPUPlace())
)
# 使用 Compressor 对网络进行压缩
train_program, startup_program = fluid.Program(), fluid.Program()
with fluid.program_guard(train_program, startup_program):
# 定义模型
...
# 定义压缩操作
compressed_ops = \
compressor.backward_compression_ops(train_program-global_block().ops)
# 定义计算图
exe = fluid.Executor(fluid.CPUPlace())
exe.run(startup_program)
# 编译计算图
print("Compiling the compressed graph...")
executor = fluid.compiler.CompiledProgram(
train_program).with_data_parallel()
print("Compilation done!")
# 将计算图 Dump 到文件
executor.dump_graph("./compressed_graph.bin")
在Dump计算图后,你可以使用 Paddle2ONNX 工具将二进制文件转换为ONNX模型,然后使用ONNX Runtime工具或者阿里云PAI平台上的ONNXService工具来进行模型查看。
在阿里云机器学习PAI中,baldeDISC编译过程中会生成多个文件。这些文件可以通过pai公共数据集来查看。
在机器学习PAI控制台,选择左侧导航栏中的“数据集”,然后找到“公共数据集”。
在公共数据集页面,找到您想要查看的数据集。
点击数据集后面的“查看”链接,即可查看该数据集所包含的文件。
如果您需要下载这些文件,可以点击每个文件后面的下载链接来下载。
另外,您也可以通过SSH连接到您的PAI集群节点,并在终端上使用Linux命令来查看编译出来的文件。具体操作如下:
打开PAI任务控制台,找到一项主机训练任务,并进入该任务详情页面。
复制其中一项任务节点的IP地址,并使用SSH连接到该节点。
进入该节点的baldeDISC源码目录,可以使用ls命令查看编译出来的文件列表。
使用cat命令可以查看文件内容,例如cat test.txt。
baldeDISC 是一种机器学习算法,编译后生成的文件通常是二进制文件或者动态链接库(.so 或 .dll)。如果你想查看这些编译出来的文件里面的内容或者调试相关问题,可以使用相应的反汇编工具和调试器进行查看和分析。
以下是几个在 Linux 环境下常用的反汇编工具:
objdump:常用于查看可执行文件、目标文件、共享库以及内核模块等文件的汇编代码和符号表信息。命令示例:objdump -d example.so。
readelf:常用于查看 ELF 文件相关信息,包括文件头、节区、符号表等。命令示例:readelf -a example.so。
nm:显式地列出 ELF 中的符号表信息,可以方便地查找函数名和变量名等信息。命令示例:nm -CD example.so。
建议在使用这些工具时,先了解一下对应的参数和选项,以免误操作造成不必要的损失。
针对问题1的回答:disc编译完成后就是可执行代码,没有图了,运行的时候不是用图来解释执行的。编译的子图可以通过dump编译过程中的各个层级的IR来看。 针对问题2的回答:是的。此回答整理自钉群“BladeDISC用户支持群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。