×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

离线模型生成错误问题(norm 层)Graph is segmented into 2 subgraphs. 已完结 cxgk2022-10-13 10:57:33 回复 4 查看 技术答疑
离线模型生成错误问题(norm 层)Graph is segmented into 2 subgraphs.
分享到:

【寒武纪硬件产品型号】:MLU270

【使用操作系统】:ubuntu18.04

【使用操作系统】:Cambricon PyTorch 适配的原生 PyTorch 版本为 v1.3.0

【当前已做了哪些信息确认】:

在生成离线模型过程中,打印部分信息如下:

max Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1437][min][thread:140425527846720][process:37]:
min Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1379][max][thread:140425527846720][process:37]:
max Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1437][min][thread:140425527846720][process:37]:
min Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1379][max][thread:140425527846720][process:37]:
max Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1437][min][thread:140425527846720][process:37]:
min Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1379][max][thread:140425527846720][process:37]:
max Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1705][norm][thread:140425527846720][process:37]:
norm Op cannot run on MLU device, start running on CPU!
[WARNING][/pytorch/catch/torch_mlu/csrc/jit/passes/segment_graph.cpp][line:41][MLUSupport][thread:140425527846720][process:37]:
[Fusion Segment] Please check mlu_functions.yaml && Maybe MLU fusion does NOT supports op: norm
%norm : Tensor = aten::norm(%input, %925, %2935, %919), scope: Backbone # /torch/venv3/pytorch/lib/python3.6/site-packages/torch/functional.py:698:0

[WARNING][/pytorch/catch/torch_mlu/csrc/jit/passes/segment_graph.cpp][line:41][MLUSupport][thread:140425527846720][process:37]:
[Fusion Segment] Please check mlu_functions.yaml && Maybe MLU fusion does NOT supports op: norm
%norm : Tensor = aten::norm(%input, %925, %2935, %919), scope: Backbone # /torch/venv3/pytorch/lib/python3.6/site-packages/torch/functional.py:698:0

[WARNING][/pytorch/catch/torch_mlu/csrc/jit/passes/segment_graph.cpp][line:41][MLUSupport][thread:140425527846720][process:37]:
[Fusion Segment] Please check mlu_functions.yaml && Maybe MLU fusion does NOT supports op: norm
%norm : Tensor = aten::norm(%input, %925, %2935, %919), scope: Backbone # /torch/venv3/pytorch/lib/python3.6/site-packages/torch/functional.py:698:0

[WARNING][/pytorch/catch/torch_mlu/csrc/jit/passes/segment_graph.cpp][line:41][MLUSupport][thread:140425527846720][process:37]:
[Fusion Segment] Please check mlu_functions.yaml && Maybe MLU fusion does NOT supports op: norm
%norm : Tensor = aten::norm(%input, %925, %2935, %919), scope: Backbone # /torch/venv3/pytorch/lib/python3.6/site-packages/torch/functional.py:698:0

[WARNING][/pytorch/catch/torch_mlu/csrc/jit/passes/segment_graph.cpp][line:41][MLUSupport][thread:140425527846720][process:37]:
[Fusion Segment] Please check mlu_functions.yaml && Maybe MLU fusion does NOT supports op: norm
%norm : Tensor = aten::norm(%input, %925, %2935, %919), scope: Backbone # /torch/venv3/pytorch/lib/python3.6/site-packages/torch/functional.py:698:0


[WARNING][/pytorch/catch/torch_mlu/csrc/jit/passes/segment_graph.cpp][line:217][SegmentGraph][thread:140425527846720][process:37]:
Graph is segmented into 2 subgraphs.
Please check the above WARNING logs which include "[Fusion Segment]" to see whether there are MLU unsupported ops exists in pytorch model.


[WARNING][/pytorch/catch/torch_mlu/csrc/aten/operators/op_methods.cpp][line:1705][norm][thread:140425527846720][process:37]:
norm Op cannot run on MLU device, start running on CPU!
...

打开离线模型信息:

This is the Twins File of "test.cambricon".
Function number: 1
---------------kernel graph--------------------

Function #0 {
Kernel num:1
Cache mode:0
Name: subnet0
Input number: 2
    Input #0.
        Mask: 338036233
        Shape(dim): 1 1 1 512
        Name:
        Id: 3045
        Data type: CNRT_FLOAT32        Dim Order: CNRT_NHWC
        Quantize position: 0
        Quantize scale: 0.000000
    Input #1.
        Mask: 338036233
        Shape(dim): 1 1 1 1

        Name:
        Id: 3047
        Data type: CNRT_FLOAT32        Dim Order: CNRT_NHWC
        Quantize position: 32694
        Quantize scale: 0.000000
Output number: 1
    Output #0.
        Mask: 338036233
        Shape(dim): 1 1 1 512
        Name:
        Id: 3050
        Data type: CNRT_FLOAT32        Dim Order: CNRT_NHWC
        Quantize position: 32694
        Quantize scale: 0.000000
Kernel header #0:
    Name: subnet0762
    Core version:
    Model Parallelism: 16
    Core limit: 16
    Inst data split: true


可以看到离线模型被拆成了两个输入,正确的input输入应该是1,3,112,112

有查看了“mlu_functions.yaml

插件有norm,min,max等层

image.png


你好,请问norm层报错,需要怎么解决呢?


版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭