cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
jsi_wmz
Contributor
Contributor
446 Views
Registered: ‎08-09-2018

An error when using DNNC

I met an error like below when using DNNC to compile quantized yolov3 model. (I dumped the debug info)

[...]
[DNNC][DEBUG] Generate dpu instruction for node [layer79_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer80_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer81_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer85_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer82_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer86_deconv].
dnnc: /tmp/DNNC_V010_Package/dnnc/submodules/asicv2com/src/SlNode/SlNodeConv.cpp:81: void SlNodeConv::generate_convinit_op(const Arch&, const LCONV&, const YAggregationType&, const YAggregationType&, const BlockSmf&, const BlockSmf&, uint32_t, uint32_t): Assertion `conv_param.get_shift_cut() >= 0' failed.
./dnnc_yolov3.sh: line 81: 12338 Aborted                 (core dumped) dnnc --dump=all --prototxt=${model_dir}/deploy.prototxt --caffemodel=${model_dir}/deploy.caffemodel --output_dir=${output_dir} --net_name=${net} --dpu=4096FA --mode=debug --cpu_arch=arm64

I found someone has met the similar error before and he solved it. However, i doubt this problem is caused by not providing reasonable images. Because it passed the DNNC after i removed the layers from layer86_deconv(which made this happen) to the last layer.

[...]
[DNNC][DEBUG] Generate dpu instruction for node [layer78_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer79_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer80_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer81_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer85_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer82_conv].

DNNC Kernel Information

1. Overview
kernel numbers  : 1
kernel topology : yolov3_kernel_graph.jpg

2. Kernel Description in Detail
kernel id       : 0
kernel name     : yolov3
type            : DPUKernel
nodes           : NA
input node(s)   : layer1_conv(0) 
output node(s)  : layer82_conv(0) layer85_conv(0) 

AND what makes me confused is that the modified yolov3 tiny model which also has deconv layer can passed DNNC. I really want to know what this error means.

[...]
[DNNC][DEBUG] Generate dpu instruction for node [layer15_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer19_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer16_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer20_deconv].
[DNNC][DEBUG] Generate dpu instruction for node [layer22_conv].
[DNNC][DEBUG] Generate dpu instruction for node [layer23_conv].

DNNC Kernel Information

1. Overview
kernel numbers  : 1
kernel topology : yolov3tiny_kernel_graph.jpg

2. Kernel Description in Detail
kernel id       : 0
kernel name     : yolov3tiny
type            : DPUKernel
nodes           : NA
input node(s)   : layer1_conv(0) 
output node(s)  : layer16_conv(0) layer23_conv(0) 
0 Kudos
Reply
0 Replies