atc 转换模型报错E19999: Inner Error!
收藏回复举报
atc 转换模型报错E19999: Inner Error!
t('forum.solved') 已解决
发表于2025-08-20 12:09:23
0 查看
atc 命令:
atc --model=resnet50_npu_16.onnx --framework=5 --output=resnet50_57_bs64 --input_format=NCHW --input_shape="actual_input_1:1,1,1600,1" --enable_small_channel=1 --log=error --soc_version=Ascend910B1
npu-smi info+------------------------------------------------------------------------------------------------+ 

| npu-smi 24.1.rc3                 Version: 24.1.rc3                                             | 

+---------------------------+---------------+----------------------------------------------------+ 

| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)| 

| Chip                      | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        | 

+===========================+===============+====================================================+ 

| 0     910B1               | OK            | 92.3        40                0    / 0             | 

| 0                         | 0000:C1:00.0  | 0           0    / 0          3375 / 65536         | 

+===========================+===============+====================================================+ 

+---------------------------+---------------+----------------------------------------------------+ 

| NPU     Chip              | Process id    | Process name             | Process memory(MB)      | 

+===========================+===============+====================================================+ 

| No running processes found in NPU 0                                                            | 

+===========================+===============+====================================================+

cann:8.0.RC2
python:3.7.5
日志:
ATC start working now, please wait for a moment. 

... 

ATC run failed, Please check the detail log, Try 'atc --help' for more information 

E19999: Inner Error! 

E19999: 2025-08-20-11:31:27.239.595  Model parse to graph failed, graph name:resnet50_57_bs64.[FUNC:ModelParseToGraph][FILE:onnx_parser.cc][LINE:919] 

        TraceBack (most recent call last): 

        ATC model parse ret fail.[FUNC:ParseGraph][FILE:omg.cc][LINE:773]


onnx:脚本:

import argparse 

 

import torch 

from DistributedResnet50.image_classification import resnet 

import torch.onnx 

 

from collections import OrderedDict 

 

parser = argparse.ArgumentParser(description='PyTorch pth convert onnx') 

parser.add_argument('--pth_file_path', 

                    metavar='PATH', 

                    default='./resnet50checkpoint.pth.tar', 

                    help='path of pth file') 

 

parser.add_argument('--onnx_file_path', 

                    metavar='PATH', 

                    default='resnet50_npu_16.onnx', 

                    help='path of onnx file') 

args = parser.parse_args() 

 

def proc_node_module(checkpoint, AttrName): 

    new_state_dict = OrderedDict() 

    for k, v in checkpoint[AttrName].items(): 

        if(k[0:7] == "module."): 

            name = k[7:] 

        else: 

            name = k[0:] 

        new_state_dict[name] = v 

    return new_state_dict 

 

def convert(pth_file_path, onnx_file_path): 

    checkpoint = torch.load(pth_file_path, map_location='cpu') 

    checkpoint['state_dict'] = proc_node_module(checkpoint, 'state_dict') 

    model = resnet.build_resnet("resnet50", "classic") 

    model.load_state_dict(checkpoint['state_dict'],strict=False) 

    model.eval() 

    print(model) 

 

    input_names = ["actual_input_1"] 

    output_names = ["output1"] 

    # dummy_input = torch.randn(16, 3, 224, 224) 

    dummy_input = torch.randn(16, 1, 1600) 

    torch.onnx.export(model, dummy_input, onnx_file_path, input_names=input_names, output_names=output_names, 

                      opset_version=11) 

 

def main(): 

    src_file_path = args.pth_file_path 

    dst_file_path = args.onnx_file_path 

    convert(src_file_path, dst_file_path) 

 

if __name__ == "__main__": 

    main() 

我训练的模型是一维数据,使用的卷积是1d.

我要发帖子