pfnet-research / chainer-compiler

Experimental toolchain to compile and run Chainer models
MIT License
112 stars 23 forks source link

Run Mask R-CNN R-50-FPN in model zoo #612

Open take-cheeze opened 5 years ago

take-cheeze commented 5 years ago

https://github.com/onnx/models/tree/master/vision/object_detection_segmentation/mask-rcnn

Blockers:

shinh commented 5 years ago

and NMS plumbing

shinh commented 5 years ago

+TopK

take-cheeze commented 5 years ago

👀 https://github.com/pfnet-research/chainer-compiler/pull/618

take-cheeze commented 5 years ago

Scatter missing too: https://github.com/onnx/onnx/blob/master/docs/Operators.md#Scatter

take-cheeze commented 5 years ago

Current state after https://github.com/pfnet-research/chainer-compiler/pull/639:

Initializing ChainerX...
Loading model...
Loading data...
Found 1 test cases
Constructing model...
Generate code...
Running for ~/dev/archive/mask_rcnn_R_50_FPN_1x/test_data_set_0
run_onnx: ~/dev/chainer-compiler/third_party/chainer/chainerx_cc/chainerx/cuda/cuda_device/indexing.cu:37: chainerx::Axes chainerx::cuda::_GLOBAL__N__43_tmpxft_000006b2_00000000_6_indexing_cpp1_ii_48d72df5::MakeRollingPermutation(int8_t, int8_t, int8_t): Assertion `first_axis < last_axis' failed.
/bin/bash: line 1: 11092 Aborted                 (core dumped) ./build/tools/run_onnx -d cuda:0 --test ~/dev/archive/mask_rcnn_R_50_FPN_1x
pfn-ci-bot commented 5 years ago
  [INVALID_ARGUMENT] unknown command: bin/bash: (62696e2f626173683a)
  2019-09-04 15:37:04.039060 github_issue_comment.go:99] unknown command: bin/bash: (62696e2f626173683a)

  Stack trace:
    github.com/pfnet/imosci/util/frontend/handler/apihandler.(*githubWebhookIssueCommentFlow).Do (github_issue_comment.go:99)
    github.com/pfnet/imosci/util/frontend/handler/apihandler.githubIssueCommentHandler (github_issue_comment.go:45)
    runtime.call64 (asm_amd64.s:523)
    reflect.Value.call (value.go:447)
    reflect.Value.Call (value.go:308)
    github.com/pfnet/imosci/util/frontend/core.RegisterAPIHandlerInternal.func1 (handler.go:417)
    github.com/pfnet/imosci/util/frontend/core.RegisterHandler.func1 (handler.go:173)
    github.com/pfnet/imosci/util/frontend/core.RegisterHandler.func2.1 (handler.go:275)
    github.com/pfnet/imosci/util/frontend/core.RegisterHandler.func2 (handler.go:280)
    net/http.HandlerFunc.ServeHTTP (server.go:1964)
    net/http.(*ServeMux).ServeHTTP (server.go:2361)
    github.com/pfnet/imosci/util/api.callInternal.func2 (call.go:196)
    github.com/pfnet/imosci/util/api.callInternal (call.go:204)
    github.com/pfnet/imosci/util/api.Call (call.go:120)
    github.com/pfnet/imosci/util/api.GithubIssueComment (call.go:492)
    github.com/pfnet/imosci/util/frontend/handler/xternalhandler.githubWebhookHandler (github_webhook.go:118)
    github.com/pfnet/imosci/util/frontend/core.RegisterHandler.func1 (handler.go:173)
    github.com/pfnet/imosci/util/frontend/core.RegisterHandler.func2.1 (handler.go:275)
    github.com/pfnet/imosci/util/frontend/core.RegisterHandler.func2 (handler.go:280)
    net/http.HandlerFunc.ServeHTTP (server.go:1964)
    net/http.(*ServeMux).ServeHTTP (server.go:2361)
    google.golang.org/appengine/internal.executeRequestSafely (api.go:162)
    google.golang.org/appengine/internal.handleHTTP (api.go:121)
    net/http.HandlerFunc.ServeHTTP (server.go:1964)
    net/http.serverHandler.ServeHTTP (server.go:2741)
    net/http.(*conn).serve (server.go:1847)
    runtime.goexit (asm_amd64.s:1333)
take-cheeze commented 4 years ago
Unknown Tensor shape: 6803 producer=Expand
Unknown Tensor shape: 6831 producer=Expand
Unknown Tensor shape: 6748 producer=Cast
Unknown Tensor shape: 6776 producer=Cast
Unknown Tensor shape: 6804 producer=Cast
Unknown Tensor shape: 6832 producer=Cast
Unknown Tensor shape: 6749 producer=Scatter
Unknown Tensor shape: 6777 producer=Scatter
Unknown Tensor shape: 6805 producer=Scatter
Unknown Tensor shape: 6833 producer=Scatter
Unknown Tensor shape: 6836 producer=Conv
Unknown Tensor shape: 6837 producer=Relu
Unknown Tensor shape: 6840 producer=Conv
Unknown Tensor shape: 6841 producer=Relu
Unknown Tensor shape: 6844 producer=Conv
Unknown Tensor shape: 6845 producer=Relu
Unknown Tensor shape: 6848 producer=Conv
Unknown Tensor shape: 6849 producer=Relu
Unknown Tensor shape: 6852 producer=ConvTranspose
Unknown Tensor shape: 6853 producer=Relu
Unknown Tensor shape: 6856 producer=Conv
Unknown Tensor shape: 6857 producer=Sigmoid
Unknown Tensor shape: 6864 producer=ConstantFill
Unknown Tensor shape: 6865 producer=Cast
Unknown Tensor shape: 6880 producer=Reshape
Unknown Tensor shape: 6866 producer=NonZero
Unknown Tensor shape: 6867 producer=Transpose
Unknown Tensor shape: 6868 producer=Squeeze
Unknown Tensor shape: 6884 producer=Mul
Unknown Tensor shape: 6885 producer=Add
Unknown Tensor shape: 6886 producer=Gather
Unknown Tensor shape: 6887 producer=Unsqueeze
WARNING: Incomplete memory simulation due to unknown shapes (3637/6838)
Simulated memory usage: param=0MB peak=177MB all=177MB
Incomplete flops clalculation
Total flops: 474
Generate code...
Running for /home/twata/dev/archive/mask_rcnn_R_50_FPN_1x/test_data_set_0

Thread 1 "run_onnx" received signal SIGFPE, Arithmetic exception.
0x00007ffff779b695 in chainerx::IndexIterator<(signed char)-1>::Set (i=0, this=0x7fffffffb0c0) at ../third_party/chainer/chainerx_cc/chainerx/index_iterator.h:251
251                 index_[j] = i % shape_[j];  // NOLINT(cppcoreguidelines-pro-bounds-constant-array-index)
(gdb) bt
#0  0x00007ffff779b695 in chainerx::IndexIterator<(signed char)-1>::Set (i=0, this=0x7fffffffb0c0) at ../third_party/chainer/chainerx_cc/chainerx/index_iterator.h:251
#1  chainerx::IndexIterator<(signed char)-1>::Restart (this=0x7fffffffb0c0) at ../third_party/chainer/chainerx_cc/chainerx/index_iterator.h:216
#2  chainerx::native::(anonymous namespace)::NativeTakeKernel::<lambda(auto:5)>::operator()<chainerx::PrimitiveType<long int> >(void) const (__closure=__closure@entry=0x7fffffffb730, pt=...)
    at ../third_party/chainer/chainerx_cc/chainerx/native/native_device/indexing.cc:90
#3  0x00007ffff779f2ea in chainerx::VisitDtype<chainerx::native::(anonymous namespace)::NativeTakeKernel::Call(const chainerx::Array&, const chainerx::Array&, int8_t, const chainerx::Array&, chainerx::IndexBoundsMode)::<lambda(auto:
5)> > (f=..., dtype=chainerx::Dtype::kInt64) at ../third_party/chainer/chainerx_cc/chainerx/dtype.h:148
#4  chainerx::native::(anonymous namespace)::NativeTakeKernel::Call (this=<optimized out>, a=..., indices=..., axis=<optimized out>, out=..., mode=chainerx::IndexBoundsMode::kDefault)
    at ../third_party/chainer/chainerx_cc/chainerx/native/native_device/indexing.cc:39
#5  0x00007ffff75683b2 in chainerx::Backend::CallKernel<chainerx::TakeKernel, chainerx::Array const&, chainerx::Array const&, signed char&, chainerx::Array&, chainerx::IndexBoundsMode&> (this=<optimized out>)
    at ../third_party/chainer/chainerx_cc/chainerx/backend.h:60
#6  chainerx::Take (a=..., indices=..., axis=axis@entry=1 '\001', mode=mode@entry=chainerx::IndexBoundsMode::kDefault) at ../third_party/chainer/chainerx_cc/chainerx/routines/indexing.cc:188
#7  0x00007ffff74bc310 in chainerx::Array::Take (this=this@entry=0x7fffffffbbd0, indices=..., axis=axis@entry=1 '\001', mode=mode@entry=chainerx::IndexBoundsMode::kDefault)
    at ../third_party/chainer/chainerx_cc/chainerx/array.cc:378
#8  0x000055555584cb84 in chainer_compiler::runtime::GatherOp::RunImpl (this=this@entry=0x5555728126e0, st=st@entry=0x555555de53f0, data=..., indices=...) at ../runtime/ops/indexing.cc:246
#9  0x00005555557bc28f in chainer_compiler::runtime::GatherOp::Run (this=0x5555728126e0, st=0x555555de53f0) at runtime/gen_chxvm_ops.cc:1846
#10 0x000055555577f913 in chainer_compiler::runtime::ChxVM::Run (this=this@entry=0x555555e631a0, state=0x555555de53f0) at ../runtime/chxvm.cc:186
#11 0x0000555555783d93 in chainer_compiler::runtime::ChxVM::Run (this=0x555555e631a0, program_inputs=std::map with 1 element = {...}, options=...) at ../runtime/chxvm.cc:164
#12 0x0000555555593090 in chainer_compiler::runtime::(anonymous namespace)::ModelRunner::Run (inputs=std::map with 1 element = {...}, this=<optimized out>, this=<optimized out>) at ../tools/run_onnx.cc:215
#13 chainer_compiler::runtime::(anonymous namespace)::RunMain (argv=...) at ../tools/run_onnx.cc:430
#14 0x000055555558b6a8 in main (argc=<optimized out>, argv=<optimized out>) at ../tools/run_onnx_main.cc:8