ncnn icon indicating copy to clipboard operation
ncnn copied to clipboard

pnnx转换模型遇到标量输入怎么办

Open sen-O opened this issue 6 months ago • 1 comments

error log | 日志或报错信息 | ログ

model | 模型 | モデル

  1. original model

how to reproduce | 复现步骤 | 再現方法

1.模型输入为两个张量+一个标量[640,640,3],[640,640,3],2048 2.运行命令./pnnx model.pt inputshape=[640,640,3],[640,640,3],2048后报错 3.ori@WP:~/download/pnnx-20250725-linux$ ./pnnx model.pt inputshape=[640,640,3],[640,640,3],2048 pnnxparam = model.pnnx.param pnnxbin = model.pnnx.bin pnnxpy = model_pnnx.py pnnxonnx = model.pnnx.onnx ncnnparam = model.ncnn.param ncnnbin = model.ncnn.bin ncnnpy = model_ncnn.py fp16 = 1 optlevel = 2 device = cpu inputshape = [640,640,3]f32,[640,640,3]f32 inputshape2 = customop = moduleop = ############# pass_level0 inline function adaptive_avg_pool2d inline function adaptive_avg_pool3d inline function interpolate inline function rgb_to_grayscale inline function _get_softmax_dim inline function softmax inline function calculate_gradient_radius_map inline function _max_pool2d inline function _max_pool2d inline function _max_pool2d inline function simple_nms inline function _max_pool2d inline function adaptive_nms inline function iterative_adaptive_nms inline function pad_to_length inline function pad_and_stack_dynamic inline function normalize inline function grid_sample inline function normalize inline function sample_descriptors inline function cdist inline function cdist inline function normalize_keypoints inline function normalize_keypoints inline function normalize inline function normalize inline function compute_similarity inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function rotate_half inline function apply_cached_rotary_emb inline function apply_cached_rotary_emb inline function softmax inline function softmax inline function softmax inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function _get_softmax_dim inline function log_softmax inline function log_softmax inline function sigmoid_log_double_softmax inline function filter_matches inline function softmax inline function softmax inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.Attention inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.CrossBlock inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.LearnableFourierPositionalEncoding inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.MatchAssignment inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.Matcher inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.SelfBlock inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.TransformerLayer inline module = LightGlue.superpoint_new_pt.SES inline module = torch.autograd.grad_mode.no_grad inline module = torch.nn.modules.linear.Identity inline function adaptive_avg_pool2d inline function adaptive_avg_pool3d inline function interpolate inline function rgb_to_grayscale inline function _get_softmax_dim inline function softmax inline function calculate_gradient_radius_map inline function _max_pool2d inline function _max_pool2d inline function _max_pool2d inline function simple_nms inline function _max_pool2d inline function adaptive_nms inline function iterative_adaptive_nms inline function pad_to_length inline function pad_and_stack_dynamic inline function normalize inline function grid_sample inline function normalize inline function sample_descriptors inline function cdist inline function cdist inline function normalize_keypoints inline function normalize_keypoints inline function normalize inline function normalize inline function compute_similarity inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function rotate_half inline function apply_cached_rotary_emb inline function apply_cached_rotary_emb inline function softmax inline function softmax inline function softmax inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function select_top_k_indices inline function compute_similarity inline function select_top_k_indices inline function _get_softmax_dim inline function log_softmax inline function log_softmax inline function sigmoid_log_double_softmax inline function filter_matches inline function softmax inline function softmax inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.Attention inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.CrossBlock inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.LearnableFourierPositionalEncoding inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.MatchAssignment inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.Matcher inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.SelfBlock inline module = LightGlue.lightglue_lightgluemask_pt_multigpu_name.TransformerLayer inline module = LightGlue.superpoint_new_pt.SES inline module = torch.autograd.grad_mode.no_grad inline module = torch.nn.modules.linear.Identity


terminate called after throwing an instance of 'c10::Error' what(): forward() is missing value for argument 'max_num_keypoints.1'. Declaration: forward(torch.___torch_mangle_15.MapGlue self.1, Tensor image0.3, Tensor image1.3, int max_num_keypoints.1) -> ((Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor) 17347) Exception raised from checkAndNormalizeInputs at /project/pytorch-v2.7.1/aten/src/ATen/core/function_schema_inl.h:61 (most recent call first): frame #0: ./pnnx() [0x3042850] frame #1: ./pnnx() [0x3041d95] frame #2: ./pnnx() [0x47ce23] frame #3: ./pnnx() [0x85103e] frame #4: ./pnnx() [0x8511f8] frame #5: ./pnnx() [0x2b9be1d] frame #6: ./pnnx() [0x615f7e] frame #7: ./pnnx() [0x63bdde] frame #8: ./pnnx() [0x48417d] frame #9: __libc_start_main + 0xe7 (0x7ff47482cc87 in /lib/x86_64-linux-gnu/libc.so.6) frame #10: ./pnnx() [0x4f2d6e]

已放弃 (核心已转储)

sen-O avatar Aug 11 '25 10:08 sen-O

pnnx 转换 trace 出来的 torchscript,不支持scripting,输出信息中大量 inline function 是有问题的 标量输入需要修改模型 forward 接口,改为传入 tensor,如果标量是固定的,那么写死参数,模型不输入这个标量

nihui avatar Aug 22 '25 06:08 nihui