求助 使用 ddddocr 自训练模型场景下,遇到了 onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fortytwo
V2EX    机器学习

求助 使用 ddddocr 自训练模型场景下,遇到了 onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument

  •  
  •   fortytwo 31 天前 842 次点击

    使用 ddddocr 自训练模型场景下,遇到的问题

    (dddd-trainer) PS C:\Users\12460\Documents\project\dddd_trainer> uv run .\test.py 2025-11-13 00:35:09.0336981 [E:onnxruntime:, sequential_executor.cc:572 onnxruntime::ExecuteKernel] Non-zero status code returned while running SequenceAt node. Name:'n0_424' Status Message: Invalid sequence index (57) specified for sequence of size (57) Traceback (most recent call last): File "C:\Users\12460\Documents\project\dddd_trainer\test.py", line 14, in <module> res = ocr.classification(image) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\ddddocr\__init__.py", line 2643, in classification ort_outs = self.__ort_session.run(None, ort_inputs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 287, in run return self._sess.run(output_names, input_feed, run_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Non-zero status code returned while running SequenceAt node. Name:'n0_424' Status Message: Invalid sequence index (57) specified for sequence of size (57) 

    测试的训练集数据: https://wwm.lanzoum.com/itczd0b5z3yj

    GitHub: https://github.com/sml2h3/dddd_trainer.git

    # test.py import ddddocr ocr = ddddocr.DdddOcr( det=False, ocr=False, show_ad=False, import_onnx_path=r"C:\Users\12460\Documents\project\dddd_trainer\projects\test_2\models\test_2_1.0_23_6000_2025-11-13-00-06-13.onnx", charsets_path=r"C:\Users\12460\Documents\project\dddd_trainer\projects\test_2\models\charsets.json", ) with open(r"C:\Users\12460\Downloads\1112\new\PKKQ_1578462523867.jpg", "rb") as f: image = f.read() res = ocr.classification(image) print(res) 

    操作日志

    (dddd-trainer) PS C:\Users\12460\Documents\project\dddd_trainer> uv run .\app.py create test_3 2025-11-13 00:29:53.496 | INFO | __main__:__init__:12 - Hello baby~ 2025-11-13 00:29:53.497 | INFO | __main__:create:15 - Create Project ----> test_3 2025-11-13 00:29:53.497 | INFO | utils.project_manager:create_project:13 - Creating Directory... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3 2025-11-13 00:29:53.497 | INFO | utils.project_manager:create_project:20 - Creating Directory... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3\models 2025-11-13 00:29:53.498 | INFO | utils.project_manager:create_project:24 - Creating Directory... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3\cache 2025-11-13 00:29:53.498 | INFO | utils.project_manager:create_project:28 - Creating Directory... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3\checkpoints 2025-11-13 00:29:53.498 | INFO | utils.project_manager:create_project:32 - Creating CRNN Config File... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3\config.yaml 2025-11-13 00:29:53.500 | INFO | utils.project_manager:create_project:36 - Create Project Success! ----> test_3 (dddd-trainer) PS C:\Users\12460\Documents\project\dddd_trainer> uv run .\app.py cache test_3 C:\Users\12460\Downloads\1112\images 2025-11-13 00:30:10.911 | INFO | __main__:__init__:12 - Hello baby~ 2025-11-13 00:30:10.913 | INFO | __main__:cache:20 - Caching Data ----> test_3 Path ----> C:\Users\12460\Downloads\1112\images 2025-11-13 00:30:10.919 | INFO | utils.cache_data:__get_label_from_name:36 - Files number is 8599. 100%|| 8599/8599 [00:00<00:00, 1379439.31it/s] 2025-11-13 00:30:10.926 | INFO | utils.cache_data:__collect_data:92 - Coolect labels is [" ", "1", "D", "Q", "F", "R", "P", "5", "9", "6", "X", "G", "H", "S", "V", "Z", "3", "T", "K", "J", "W", "2", "8", "4", "U", "Y", "E", "I", "C", "B", "L", "A", "7"] 2025-11-13 00:30:10.929 | INFO | utils.cache_data:__collect_data:96 - Writing Cache Data! 2025-11-13 00:30:10.929 | INFO | utils.cache_data:__collect_data:98 - Cache Data Number is 8599 2025-11-13 00:30:10.929 | INFO | utils.cache_data:__collect_data:99 - Writing Train and Val File. 2025-11-13 00:30:10.931 | INFO | utils.cache_data:__collect_data:116 - Train Data Number is 8342 2025-11-13 00:30:10.932 | INFO | utils.cache_data:__collect_data:117 - Val Data Number is 257 (dddd-trainer) PS C:\Users\12460\Documents\project\dddd_trainer> uv run .\app.py train test_3 2025-11-13 00:30:26.382 | INFO | __main__:__init__:12 - Hello baby~ 2025-11-13 00:30:26.383 | INFO | __main__:train:26 - Start Train ----> test_3 2025-11-13 00:30:26.384 | INFO | utils.train:__init__:40 - Taget: min_Accuracy: 0.97 min_Epoch: 20 max_Loss: 0.05 2025-11-13 00:30:26.384 | INFO | utils.train:__init__:45 - USE GPU ----> 0 2025-11-13 00:30:26.384 | INFO | utils.train:__init__:52 - Search for history checkpoints... 2025-11-13 00:30:26.384 | INFO | utils.train:__init__:69 - Empty history checkpoints 2025-11-13 00:30:26.384 | INFO | utils.train:__init__:71 - Building Net... C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\torch\nn\modules\rnn.py:123: UserWarning: dropout option adds dropout after all but last recurrent layer, so non-zero dropout expects num_layers greater than 1, but got dropout=0.3 and num_layers=1 warnings.warn( 2025-11-13 00:30:26.400 | INFO | utils.train:__init__:75 - Net( (cnn): DdddOcr( (cnn): Sequential( (conv0): Conv2d(1, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (relu0): ReLU(inplace=True) (pooling0): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (conv1): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (relu1): ReLU(inplace=True) (pooling1): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (conv2): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (batchnorm2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (relu2): ReLU(inplace=True) (conv3): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (relu3): ReLU(inplace=True) (pooling2): MaxPool2d(kernel_size=(2, 2), stride=(2, 1), padding=(0, 1), dilation=1, ceil_mode=False) (conv4): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (batchnorm4): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (relu4): ReLU(inplace=True) (conv5): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (relu5): ReLU(inplace=True) (pooling3): MaxPool2d(kernel_size=(2, 2), stride=(2, 1), padding=(0, 1), dilation=1, ceil_mode=False) (conv6): Conv2d(128, 128, kernel_size=(2, 2), stride=(1, 1)) (batchnorm6): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True) (relu6): ReLU(inplace=True) ) ) (lstm): LSTM(384, 384, dropout=0.3, bidirectiOnal=True) (loss): CTCLoss() (fc): Linear(in_features=768, out_features=33, bias=True) ) 2025-11-13 00:30:26.400 | INFO | utils.train:__init__:76 - Building End 2025-11-13 00:30:26.509 | INFO | utils.train:__init__:81 - Get Data Loader... 2025-11-13 00:30:26.510 | INFO | utils.load_cache:__init__:102 - Charsets is [" ", "1", "D","Q", "F", "R", "P", "5", "9", "6", "X", "G", "H", "S", "V", "Z", "3", "T", "K", "J", "W", "2", "8", "4", "U", "Y", "E", "I", "C", "B", "L", "A", "7"] 2025-11-13 00:30:26.510 | INFO | utils.load_cache:__init__:106 - Image Resize is [-1, 64] 2025-11-13 00:30:26.510 | INFO | utils.load_cache:__init__:118 - Image Path is C:\Users\12460\Downloads\1112\images 2025-11-13 00:30:26.511 | INFO | utils.load_cache:__init__:25 - Reading Cache File... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3\cache\cache.train.tmp 2025-11-13 00:30:26.512 | INFO | utils.load_cache:__init__:30 - Read Cache File End! Caches Num is 8342. 2025-11-13 00:30:26.512 | INFO | utils.load_cache:__init__:25 - Reading Cache File... ----> C:\Users\12460\Documents\project\dddd_trainer\projects\test_3\cache\cache.val.tmp 2025-11-13 00:30:26.513 | INFO | utils.load_cache:__init__:30 - Read Cache File End! Caches Num is 257. 2025-11-13 00:30:26.513 | INFO | utils.train:__init__:87 - Get Data Loader End! 2025-11-13 00:30:30.161 | INFO | utils.train:start:108 - [2025-11-13-00_30_30] Epoch: 0 Step: 100 LastLoss: 3.5620920658111572 AvgLoss: 4.684982450008392 Lr: 0.01 2025-11-13 00:30:33.520 | INFO | utils.train:start:108 - [2025-11-13-00_30_33] Epoch: 0 Step: 200 LastLoss: 3.629438877105713 AvgLoss: 3.591061780452728 Lr: 0.01 2025-11-13 00:30:36.940 | INFO | utils.train:start:108 - [2025-11-13-00_30_36] Epoch: 1 Step: 300 LastLoss: 3.478365659713745 AvgLoss: 3.574828338623047 Lr: 0.01 2025-11-13 00:30:40.677 | INFO | utils.train:start:108 - [2025-11-13-00_30_40] Epoch: 1 Step: 400 LastLoss: 3.725684881210327 AvgLoss: 3.5830772018432615 Lr: 0.01 2025-11-13 00:30:44.054 | INFO | utils.train:start:108 - [2025-11-13-00_30_44] Epoch: 1 Step: 500 LastLoss: 3.6253044605255127 AvgLoss: 3.5884796619415282 Lr: 0.01 ... 2025-11-13 00:33:39.470 | INFO | utils.train:start:108 - [2025-11-13-00_33_39] Epoch: 19 Step: 5200 LastLoss: 0.0010958763305097818 AvgLoss: 0.0016259117133449763 Lr: 0.009604 2025-11-13 00:33:44.079 | INFO | utils.train:start:108 - [2025-11-13-00_33_44] Epoch: 20 Step: 5300 LastLoss: 0.0009493848774582148 AvgLoss: 0.0010536348074674606 Lr: 0.009604 2025-11-13 00:33:48.775 | INFO | utils.train:start:108 - [2025-11-13-00_33_48] Epoch: 20 Step: 5400 LastLoss: 0.0010489150881767273 AvgLoss: 0.0012551895825890823 Lr: 0.009604 2025-11-13 00:33:53.303 | INFO | utils.train:start:108 - [2025-11-13-00_33_53] Epoch: 21 Step: 5500 LastLoss: 0.0011606556363403797 AvgLoss: 0.000944445063942112 Lr: 0.009604 2025-11-13 00:33:57.803 | INFO | utils.train:start:108 - [2025-11-13-00_33_57] Epoch: 21 Step: 5600 LastLoss: 0.0007763305329717696 AvgLoss: 0.0009715505503118038 Lr: 0.009604 2025-11-13 00:34:02.339 | INFO | utils.train:start:108 - [2025-11-13-00_34_02] Epoch: 21 Step: 5700 LastLoss: 0.0012899019056931138 AvgLoss: 0.0015180535794934258 Lr: 0.009604 2025-11-13 00:34:06.902 | INFO | utils.train:start:108 - [2025-11-13-00_34_06] Epoch: 22 Step: 5800 LastLoss: 0.0009287762804888189 AvgLoss: 0.0015425046352902428 Lr: 0.009604 2025-11-13 00:34:11.336 | INFO | utils.train:start:108 - [2025-11-13-00_34_11] Epoch: 22 Step: 5900 LastLoss: 0.0007486791582778096 AvgLoss: 0.0011510271998122334 Lr: 0.009604 2025-11-13 00:34:15.845 | INFO | utils.train:start:137 - [2025-11-13-00_34_15] Epoch: 23 Step: 6000 LastLoss: 0.0006851484067738056 AvgLoss: 0.0009158773045055568 Lr: 0.009604 Acc: 1.0 2025-11-13 00:34:15.846 | INFO | utils.train:start:143 - Training Finished!Exporting Model... C:\Users\12460\Documents\project\dddd_trainer\nets\__init__.py:216: UserWarning: # 'dynamic_axes' is not recommended when dynamo=True, and may lead to 'torch._dynamo.exc.UserError: Constraints violated.' Supply the 'dynamic_shapes' argument instead if export is unsuccessful. torch.onnx.export(net, dummy_input, graph_path, export_params=True, verbose=False, W1113 00:34:16.515000 3024 .venv\Lib\site-packages\torch\onnx\_internal\exporter\_compat.py:114] Setting ONNX exporter to use operator set version 18 because the requested opset_version 12 is a lower version than we have implementations for. Automatic version conversion will be performed, which may not be successful at converting to the requested version. If version conversion is unsuccessful, the opset version of the exported model will be kept at 18. Please consider setting opset_version >=18 to leverage latest ONNX features The model version conversion is not supported by the onnxscript version converter and fallback is enabled. The model will be converted using the onnx C API (target version: 12). Failed to convert the model to the target version 12 using the ONNX C API. The model was not modified Traceback (most recent call last): File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\onnxscript\version_converter\__init__.py", line 127, in call converted_proto = _c_api_utils.call_onnx_api( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\onnxscript\version_converter\_c_api_utils.py", line 65, in call_onnx_api result = func(proto) ^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\onnxscript\version_converter\__init__.py", line 122, in _partial_convert_version return onnx.version_converter.convert_version( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\onnx\version_converter.py", line 39, in convert_version converted_model_str = C.convert_version(model_str, target_version) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: D:\a\onnx\onnx\onnx/version_converter/BaseConverter.h:68: adapter_lookup: Assertion `false` failed: No Adapter From Version $18 for Split Skipping constant folding for op Split with multiple outputs. Skipping constant folding for op Split with multiple outputs. Applied 3 of general pattern rewrite rules. Skipping constant folding for op Split with multiple outputs. Skipping constant folding for op Split with multiple outputs. 2025-11-13 00:34:45.655 | INFO | utils.train:start:159 - Export Finished!Using Time: 3.816666666666667min (dddd-trainer) PS C:\Users\12460\Documents\project\dddd_trainer> uv run .\test.py 2025-11-13 00:35:09.0336981 [E:onnxruntime:, sequential_executor.cc:572 onnxruntime::ExecuteKernel] Non-zero status code returned while running SequenceAt node. Name:'n0_424' Status Message: Invalid sequence index (57) specified for sequence of size (57) Traceback (most recent call last): File "C:\Users\12460\Documents\project\dddd_trainer\test.py", line 14, in <module> res = ocr.classification(image) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\ddddocr\__init__.py", line 2643, in classification ort_outs = self.__ort_session.run(None, ort_inputs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\12460\Documents\project\dddd_trainer\.venv\Lib\site-packages\onnxruntime\capi\onnxruntime_inference_collection.py", line 287, in run return self._sess.run(output_names, input_feed, run_options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Non-zero status code returned while running SequenceAt node. Name:'n0_424' Status Message: Invalid sequence index (57) specified for sequence of size (57) 
    1 条回复
    fortytwo
        1
    fortytwo  
    OP
       31 天前
    已解决

    原因是新版本更新导致模型导出时,不兼容 opset_version=12 ONNX 模型导出。

    使用基础导出器即可。


    import torch._dynamo as dynamo

    dynamo.reset()

    # 使用传统导出器
    torch.onnx.export(
    net,
    dummy_input,
    graph_path,
    export_params=True,
    verbose=False,
    input_names=input_names,
    output_names=output_names,
    dynamic_axes=dynamic_ax,
    opset_version=12,
    do_constant_folding=True,
    dynamo=False,
    operator_export_type=torch.onnx.OperatorExportTypes.ONNX,
    )
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2774 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 13:41 PVG 21:41 LAX 05:41 JFK 08:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86