You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by GitBox <gi...@apache.org> on 2019/06/26 16:48:24 UTC

[GitHub] [incubator-mxnet] songweijia opened a new issue #15373: CPP inference example behaves different from Python one

songweijia opened a new issue #15373: CPP inference example behaves different from Python one
URL: https://github.com/apache/incubator-mxnet/issues/15373
 
 
   ## The CPP inference example (inception_inference) seems not working
   I followed the [CPP tutorial](https://mxnet.incubator.apache.org/versions/master/tutorials/c++/mxnet_cpp_inference_tutorial.html). But found the CPP inference does not work as I expected. The python code works totally fine:
   ```
   $ ./inference.py data/test/watercress/image_00672.jpg 
   probability=11.384139, class=watercress, idx=98
   ```
   But when I use the code at incubator-mxnet/cpp-package/example/inference/inception_inference.cpp, loading EXACTLY THE SAME parameter file, symbol json file, and mean/std file, it gives me a DIFFERENT result:
   ```
   [12:27:12] inception_inference.cpp:150: Loading the model from /home/weijia/workspace/learn-mxnet/flower-recognition-symbol.json
   
   [12:27:12] inception_inference.cpp:163: Loading the model parameters from /home/weijia/workspace/learn-mxnet/flower-recognition-0010.params
   
   [12:27:12] inception_inference.cpp:190: Loading the synset file.
   [12:27:12] inception_inference.cpp:212: Load the mean image data that will be used to normalize the image before running forward pass.
   [12:27:12] inception_inference.cpp:257: Loading the image /home/weijia/workspace/learn-mxnet/data/test/watercress/image_00672.jpg
   
   [12:27:12] inception_inference.cpp:290: Running the forward pass on model to predict the image
   [12:27:13] inception_inference.cpp:325: The model predicts the input image to be a [ ] with Accuracy = 11.5736
   ```
   I checked the `best_idx`, which is evaluated to 73.
   
   ## Environment info (Required)
   ```
   $uname -a
   Linux compute26 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
   ```
   
   ## Build info (Required if built from source)
   
   Compiler (gcc/clang/mingw/visual studio):
   ```
   $ gcc -v
   Using built-in specs.
   COLLECT_GCC=gcc
   COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
   OFFLOAD_TARGET_NAMES=nvptx-none
   OFFLOAD_TARGET_DEFAULT=1
   Target: x86_64-linux-gnu
   Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
   Thread model: posix
   gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04)
   ```
   
   MXNet commit hash: `12c422697413cfd69d846cdb4d1d487c487220e2>`
   
   Build config:
   (Paste the content of config.mk, or the build command.)
   ```
   $ cmake -GNinja -DUSE_CUDA=OFF -DUSE_JEMALLOC=OFF -DUSE_MKL_IF_AVAILABLE=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DUSE_CPP_PACKAGE=ON ..
   $ ninja
   ```
   Then, go to `incubator-mxnet/cpp_package/example/inferences`, change the `Makefile` to fit my path setting:
   ```
   diff --git a/cpp-package/example/inference/Makefile b/cpp-package/example/inference/Makefile
   index 5efe6cfb6..9b01d0d97 100644
   --- a/cpp-package/example/inference/Makefile
   +++ b/cpp-package/example/inference/Makefile
   @@ -25,7 +25,7 @@ CXX=g++
   
   
    CFLAGS=$(COMMFLAGS) -I../../../3rdparty/tvm/nnvm/include -I../../../3rdparty/dmlc-core/include -I ../../include -I ../../../include -Wall -O3 -msse3 -funroll-loops -Wno-unused-parameter -Wno-unknown-pragmas
   -CPPEX_EXTRA_LDFLAGS := -L../../../lib -lmxnet $(OPENCV_LDFLAGS)
   +CPPEX_EXTRA_LDFLAGS := -L../../../build -lmxnet $(OPENCV_LDFLAGS)
   
    all: $(CPPEX_EXE)
   ```
   And then, build the CPP example:
   ```
   $ make
   ```
   ## Steps to reproduce
   Run this command:
   ```
   ./inception_inference --params ~/workspace/learn-mxnet/flower-recognition-0010.params --synset ~/workspace/learn-mxnet/synset.txt --symbol ~/workspace/learn-mxnet/flower-recognition-symbol.json --image ~/workspace/learn-mxnet/data/test/watercress/image_00672.jpg --mean ~/workspace/learn-mxnet/mean_std_224.nd --input_shape "3 224 224"
   ```
   
   ## What have you tried to solve it?
   I checked that I'm using the correct parameter files, symbol files, and mean/std files.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services