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.
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.