Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

利用MNNConvert工具转换ONNX模型报Tensor.hpp:247 247,return mBuffer.dim[0].extent; #488

Closed
wuqingshan2010 opened this issue Nov 29, 2019 · 2 comments

Comments

@wuqingshan2010
Copy link

利用MNNConvert工具转换ONNX模型,自己已经实现Tanh,ReduceMean,ReduceMax,L2_Norm等自定义算子, 在onnx2MNNNet步能够成功,但是在writeFb步骤中报Tensor.hpp,return mBuffer.dim[0].extent;
通过该出错误定位到生成onnx中源码中有torch.cat([avg_out, max_out], dim=1)操作;在转onnx源码中有多次torch.cat操作,若不添加该操作或者只使用一次能够成功,否则不能成功。

@wuqingshan2010
Copy link
Author

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5fff23a in MNN::Tensor::batch (this=0x583cc1e0) at /home/work/sdk/MNN-0.2.1.5/include/Tensor.hpp:247
247 return mBuffer.dim[0].extent;
(gdb) where
#0 0x00007ffff5fff23a in MNN::Tensor::batch (this=0x583cc1e0) at /home/work/sdk/MNN-0.2.1.5/include/Tensor.hpp:247
#1 0x00007ffff60d37d7 in MNN::ConvolutionTiledExecutorBasic::<lambda(int)>::operator()(int) const (__closure=0x555559c67eb0, tId=0)
at /home/work/sdk/MNN-0.2.1.5/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp:137
#2 0x00007ffff60d60c0 in std::_Function_handler<void(int), MNN::ConvolutionTiledExecutorBasic::onResize(const std::vectorMNN::Tensor*&, const std::vectorMNN::Tensor*&)::<lambda(int)> >::_M_invoke(const std::_Any_data &, <unknown type in libMNN.so, CU 0x1c69a43, DIE 0x1cac00a>) (__functor=...,
__args#0=<unknown type in libMNN.so, CU 0x1c69a43, DIE 0x1cac00a>) at /usr/include/c++/7/bits/std_function.h:316
#3 0x00007ffff602b0a6 in std::function<void (int)>::operator()(int) const (this=0x555559c67f58, __args#0=0) at /usr/include/c++/7/bits/std_function.h:706
#4 0x00007ffff60d5c19 in MNN::ConvolutionTiledExecutorBasic::<lambda(int)>::operator()(int) const (__closure=0x7fffffffb780, tId=0)
at /home/work/sdk/MNN-0.2.1.5/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp:283
#5 0x00007ffff60d6d13 in std::_Function_handler<void(int), MNN::ConvolutionTiledExecutorBasic::onExecute(const std::vectorMNN::Tensor*&, const std::vectorMNN::Tensor*&)::<lambda(int)> >::_M_invoke(const std::_Any_data &, <unknown type in libMNN.so, CU 0x1c69a43, DIE 0x1caa599>) (__functor=...,
__args#0=<unknown type in libMNN.so, CU 0x1c69a43, DIE 0x1caa599>) at /usr/include/c++/7/bits/std_function.h:316
#6 0x00007ffff602b0a6 in std::function<void (int)>::operator()(int) const (this=0x7fffffffb780, __args#0=0) at /usr/include/c++/7/bits/std_function.h:706
#7 0x00007ffff60afe81 in MNN::ThreadPool::enqueue(std::pair<std::function<void (int)>, int>&&, int) (task=<unknown type in libMNN.so, CU 0x1a32f0e, DIE 0x1a4a4a3>, index=-1)
at /home/work/sdk/MNN-0.2.1.5/source/backend/cpu/ThreadPool.cpp:248
#8 0x00007ffff60d5d04 in MNN::ConvolutionTiledExecutorBasic::onExecute (this=0x555559c67d90, inputs=std::vector of length 1, capacity 1 = {...},
outputs=std::vector of length 1, capacity 1 = {...}) at /home/work/sdk/MNN-0.2.1.5/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp:285
#9 0x00007ffff60d266b in MNN::ConvolutionTiledExecutor::onExecute (this=0x555559c30980, inputs=std::vector of length 1, capacity 1 = {...},
outputs=std::vector of length 1, capacity 1 = {...}) at /home/work/sdk/MNN-0.2.1.5/source/backend/cpu/compute/ConvolutionTiledExecutor.hpp:56
#10 0x00007ffff654aae6 in MNN::Express::InsideExpr::onComputeContent (this=0x5555583c4320, inputs=std::vector of length 1, capacity 1 = {...},
outputs=std::vector of length 1, capacity 1 = {...}) at /home/work/sdk/MNN-0.2.1.5/express/source/InsideExpr.cpp:408
#11 0x00007ffff6515857 in MNN::Express::Expr::requireCompute (this=0x555555a947f0) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:228
#12 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x555555aa2990) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#13 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555559ac910) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#14 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555559a8f60) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#15 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x555555aa2da0) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#16 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555559bff30) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#17 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x555555a2a730) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#18 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x555555a54290) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#19 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x555555a3f7d0) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#20 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555557de5f0) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#21 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555557fc610) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#22 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555557f27a0) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#23 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x555555994300) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#24 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555557f34a0) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#25 0x00007ffff651577c in MNN::Express::Expr::requireCompute (this=0x5555557ea740) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:214
#26 0x00007ffff65172de in MNN::Express::Variable::readInternal (this=0x5555557f3d50) at /home/work/sdk/MNN-0.2.1.5/express/source/Expr.cpp:517
#27 0x00007ffff6eb290a in std::_Function_handler<bool (std::shared_ptrMNN::Express::Variable), MNN::Express::{lambda()#1}::operator()() const::{lambda(std::shared_ptrMNN::Express::Variable)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptrMNN::Express::Variable&&) ()
from /home/work/sdk/MNN-0.2.1.5/build/tools/converter/source/optimizer/liboptimizer.so
#28 0x00007ffff6eb0015 in MNN::Express::TemplateMerge::onExecute(std::vector<std::shared_ptrMNN::Express::Variable, std::allocator<std::shared_ptrMNN::Express::Variable > > const&, std::shared_ptrMNN::Express::Optimizer::Parameters) () from /home/work/sdk/MNN-0.2.1.5/build/tools/converter/source/optimizer/liboptimizer.so
---Type to continue, or q to quit---
#29 0x00007ffff6e9b0a1 in optimizeNet(std::unique_ptr<MNN::NetT, std::default_deleteMNN::NetT >&) ()
from /home/work/sdk/MNN-0.2.1.5/build/tools/converter/source/optimizer/liboptimizer.so

@wuqingshan2010
Copy link
Author

inputParam->dformat = MNN::MNN_DATA_FORMAT_NCHW;更改为inputParam->dformat = MNN::MNN_DATA_FORMAT_NC4HW4;即可解决问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant