use*_*306 2 python machine-learning deep-learning pytorch onnx
我想将 PyTorch 模型“翻译”到另一个框架(非 tf/keras)。
我正在尝试采用 pytorch 模型,并自动转换到其他框架,其中包含类似类型的层(即 conv2d、dense,...)。
有没有办法直接从 pytorch 或通过 onnx 检索模型层、它们的类型、形状和连接?(到目前为止,权重并不重要)
根据对您问题的评论中的讨论:
onnx 中的每个节点都有一个命名输入列表和一个命名输出列表。
对于使用 node.input 访问的输入列表,您可以为每个输入索引提供提供该输入的图形 input_name 或提供该输入的先前输出的名称。还有一些初始化程序,它们是 onnx 参数。
# model is an onnx model
graph = model.graph
# graph inputs
for input_name in graph.input:
print(input_name)
# graph parameters
for init in graph.init:
print(init.name)
# graph outputs
for output_name in graph.output:
print(output_name)
# iterate over nodes
for node in graph.node:
# node inputs
for idx, node_input_name in enumerate(node.input):
print(idx, node_input_name)
# node outputs
for idx, node_output_name in enumerate(node.output):
print(idx, node_output_name)
Run Code Online (Sandbox Code Playgroud)
python 的要点可以在这里找到
重现 3 的要点:
from onnx import shape_inference
inferred_model = shape_inference.infer_shapes(original_model)
Run Code Online (Sandbox Code Playgroud)
并在 中找到形状信息inferred_model.graph.value_info。
| 归档时间: |
|
| 查看次数: |
8039 次 |
| 最近记录: |