Giter Club home page Giter Club logo

alibaba / mnn Goto Github PK

View Code? Open in Web Editor NEW
8.3K 201.0 1.6K 190.56 MB

MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba

Home Page: http://www.mnn.zone/

CMake 0.14% Ruby 0.01% Shell 0.11% C++ 92.57% C 2.42% Python 1.98% Objective-C 0.01% Objective-C++ 0.30% Assembly 1.18% Metal 0.11% GLSL 0.04% PowerShell 0.03% Batchfile 0.01% Cuda 1.03% Dockerfile 0.01% Java 0.08%
mnn convolution vulkan embedded-devices winograd-algorithm machine-learning deep-learning ml deep-neural-networks arm

mnn's Issues

bench_android.sh failed for adb with version 1.0.32

please change
adb push benchmark.out timeProfile.out $ANDROID_DIR
to

adb push benchmark.out $ANDROID_DIR
adb push timeProfile.out $ANDROID_DIR

otherwise it reports error:
failed to copy 'benchmark.out' to 'timeProfile.out': couldn't create file: Read-only file system

Convert onnx model err

I hava compiled the mnn converter successful. When i convert a onnx model to mnn use :

./MNNConvert -f ONNX --modelFile mobilefacenet.onnx --MNNModel mobilefacenet.mnn --bizCode MNN

and i face this error:
MNNConverter Version: 0.0.0.1 - MNN @ 2018

Start to Convert Other Model Format To MNN Model...
[09:36:17] /home/yuanhao/osc/MNN/tools/converter/source/onnx/onnxConverter.cpp:29: ONNX Model ir version: 3
terminate called after throwing an instance of 'Error'
what(): [09:36:17] /home/yuanhao/osc/MNN/tools/converter/source/onnx/onnxConverter.cpp:83: Check failed: opConverter ==> MNN Converter NOT_SUPPORTED_OP: [ PRelu ]
Aborted (core dumped)

How can i solve this problem, thanks!

运行MNNConvert时出现错误

OS:Centos 7
GCC:4.8,4.9,5.3
各个GCC版本都能成功编译MNNConvert,但是运行的时候出现提示:
terminate called after throwing an instance of 'std::regex_error'
whar(): regex_error

直接运行:./MNNConvert 或 ./MNNConvert -version 都出现上面的错误。

install MNN lib failed

swqa@swqa-dgx-1v-01:~/MNN/build$ make -j4
*** done ***
[ 0%] Built target MNN_SCHEMA
Scanning dependencies of target MNN
[ 0%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBackend.cpp.o
[ 1%] Linking CXX shared library libMNN.so
[ 90%] Built target MNN
[ 91%] Linking CXX executable ../../getPerformance.out
[ 92%] Linking CXX executable ../../testModel.out
[ 92%] Linking CXX executable ../../MNNV2Basic.out
[ 92%] Linking CXX executable ../../backendTest.out
../../libMNN.so: undefined reference to _______()' collect2: error: ld returned 1 exit status tools/cpp/CMakeFiles/testModel.out.dir/build.make:95: recipe for target 'testModel.out' failed make[2]: *** [testModel.out] Error 1 CMakeFiles/Makefile2:298: recipe for target 'tools/cpp/CMakeFiles/testModel.out.dir/all' failed make[1]: *** [tools/cpp/CMakeFiles/testModel.out.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... ../../libMNN.so: undefined reference to ()'
collect2: error: ld returned 1 exit status
tools/cpp/CMakeFiles/backendTest.out.dir/build.make:95: recipe for target 'backendTest.out' failed
make[2]: *** [backendTest.out] Error 1
CMakeFiles/Makefile2:187: recipe for target 'tools/cpp/CMakeFiles/backendTest.out.dir/all' failed
make[1]: *** [tools/cpp/CMakeFiles/backendTest.out.dir/all] Error 2
../../libMNN.so: undefined reference to `
()'
collect2: error: ld returned 1 exit status
tools/cpp/CMakeFiles/MNNV2Basic.out.dir/build.make:121: recipe for target 'MNNV2Basic.out' failed
make[2]: *** [MNNV2Basic.out] Error 1
CMakeFiles/Makefile2:261: recipe for target 'tools/cpp/CMakeFiles/MNNV2Basic.out.dir/all' failed
make[1]: *** [tools/cpp/CMakeFiles/MNNV2Basic.out.dir/all] Error 2
[ 92%] Built target getPerformance.out
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

my env:
x86 ubuntu 18.04

How to use MNN as a submodule/subproject?

There is an MNN_DEPEND cmake variable, however, cmake variable is not visible to parent scope. So the super-project cannot get the correct MNN library path and compile flags.

The ideal solution is that the CMakeLists.txt of MNN adds a library target (named "mnn" or something else), and this target depends on vulkan, opengl and so on. So that users can simply depend on target "mnn" without concern about all the dependencies and compile flags.

What's more, I believe MNN should export a target (on make install or cmake -P cmake_install.cmake) as all modern cmake files do.

"NV-GLX" missing when using vulkan backend

OS: CentOS 7.6
GPU: 1080Ti + 430.14 driver
VULKAN: 1.1.106.0
Any help is appreciated, Thanks !

# ./backendTest.out 
Xlib:  extension "NV-GLX" missing on display ":0".
Invalide device for support vulkan
Invalide device for support vulkan
Test forward type: 0
Tolerance Rate: 0.050000
Open Model (null)
Segmentation fault (core dumped)

iOS can't use MNN in framework way (Only pod way valid).

Target:
I want to integrate MNN by using iOS static framework.
But I can't find an elegant way to archive it.

Try:

  1. I open the framework project (MNN-master/project/ios/MNN.xcodeproj) and build it.
  2. Use the output framework and try a single MNN demo.

Visibal Problem:
The app crashed in Interpreter.cpp (MNN_ASSERT(nullptr != session) )
And I found out the message like this:

Cant't Find type=0 backend, use 0 instead
Create Backend Failed because no creator for 0
Invalide Session

Real Problem:
IOS Static Framework may not support using global variable initial function as an app-before-launch initial function.

I debug the problem and found that the real problem is the CPUBackend and MetalBackEnd can't initial themselves automatically. mean the following global variable can't initial automatic.

/* In CPUBackend.cpp */
static bool registerCPUBackendCreator = [] {
    MNNInsertExtraBackendCreator(MNN_ForWARD_CPU, new CPUBackendCreator);
    return true;
}

/* In MetalBackend.mm */
static bool __reg = MNNInsertExtraBackendCreator(MNN_FORWARD_METAL, new MetalBackendCreator);

Then we can't find a valid Creator in gExtraCreator.

Target Again
So, could you please support me a way to use MNN in iOS static framework way?
Thanks a lot.

Convert tensorflow model err

./MNNConvert -f TF --modelFile ./frozen_model.pb --MNNModel testTRmodel.mnn --bizCode MNN

MNNConverter Version: 0.0.0.1 - MNN @ 2018

Start to Convert Other Model Format To MNN Model...
terminate called after throwing an instance of 'Error'
what(): [10:45:39] /data1/image_data/data/online_pushed_data/parse_result/illegalPicCls/MNN/tools/converter/source/tensorflow/FusedBatchNormTf.cpp:46: Check failed: channels > 0 ==> Batchnorm Channels Paramter is Wrong! 0 name: MobileNet/batch_normalization/FusedBatchNorm
Aborted (core dumped)

是我模型有问题吗? 但是tensorflow跑起来没有错误呀,pb文件也测试过

build demo on linux failed.

Hello, I tried to build the demo on linux by using following instructions,
cd path/to/MNN
mkdir build
cmake -DMNN_FREEIMAGE_VALID=ON ..
make -j8

but failed,
/home/ian/Downloads/face_pro/MNN-master/demo/exec/multiPose.cpp: In function ‘int main(int, char**)’:
/home/ian/Downloads/face_pro/MNN-master/demo/exec/multiPose.cpp:327:19: error: ‘shared_ptr’ is not a member of ‘std’
auto mnnNet = std::shared_ptrMNN::Interpreter(MNN::Interpreter::createFro
^
/home/ian/Downloads/face_pro/MNN-master/demo/exec/multiPose.cpp:327:51: error: expected primary-expression before ‘>’ token
auto mnnNet = std::shared_ptrMNN::Interpreter(MNN::Interpreter::createFro
^
/home/ian/Downloads/face_pro/MNN-master/demo/exec/multiPose.cpp:351:25: error: ‘shared_ptr’ is not a member of ‘std’
auto pretreat = std::shared_ptrCV::ImageProcess(CV::ImageProcess::cre
^
/home/ian/Downloads/face_pro/MNN-master/demo/exec/multiPose.cpp:351:57: error: expected primary-expression before ‘>’ token
auto pretreat = std::shared_ptrCV::ImageProcess(CV::ImageProcess::cre
^
demo/exec/CMakeFiles/multiPose.out.dir/build.make:62: recipe for target 'demo/exec/CMakeFiles/multiPose.out.dir/multiPose.cpp.o' failed
make[2]: *** [demo/exec/CMakeFiles/multiPose.out.dir/multiPose.cpp.o] Error 1
CMakeFiles/Makefile2:237: recipe for target 'demo/exec/CMakeFiles/multiPose.out.dir/all' failed
make[1]: *** [demo/exec/CMakeFiles/multiPose.out.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

ubuntu 16.04 converter error

os:ubuntu16.04
gcc:5.4.0

Follow the doc , try convert caffe mobilenet-v1 to MNN, MNNConvert crushed.

(gdb) r -f CAFFE --prototxt mobilenet_v1.caffe.prototxt --modelFile mobilenet_v1.caffe.caffemodel --bizCode MNN --MNNModel mobilenet.mnn
Starting program: /home/jack/MNN/resource/build/MNNConvert -f CAFFE --prototxt mobilenet_v1.caffe.prototxt --modelFile mobilenet_v1.caffe.caffemodel --bizCode MNN --MNNModel mobilenet.mnn
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

MNNConverter Version: 0.0.0.1 - MNN @ 2018

Start to Convert Other Model Format To MNN Model...
Start to Optimize the MNN Net...

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff67b1970 in std::__cxx11::basic_string<char, std::char_traits, std::allocator >::empty() const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff67b1970 in std::__cxx11::basic_string<char, std::char_traits, std::allocator >::empty() const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x0000000000530f87 in MNN::CreateNet(flatbuffers::FlatBufferBuilder&, MNN::NetT const*, std::function<unsigned long (void*)> const*) (_fbb=..., _o=0x0, _rehasher=0x0)
at /home/jack/MNN/tools/converter/source/IR/MNN_generated.h:2962
#2 0x0000000000530e11 in MNN::Net::Pack(flatbuffers::FlatBufferBuilder&, MNN::NetT const*, std::function<unsigned long (void*)> const*) (_fbb=..., _o=0x0, _rehasher=0x0)
at /home/jack/MNN/tools/converter/source/IR/MNN_generated.h:2955
#3 0x0000000000520661 in writeFb (netT=std::unique_ptrMNN::NetT containing 0x0,
MNNModelFile="mobilenet.mnn", benchmarkModel=false)
at /home/jack/MNN/tools/converter/source/common/writeFb.cpp:58
#4 0x00000000004d64ba in main (argc=11, argv=0x7fffffffdcb8)
at /home/jack/MNN/tools/converter/source/MNNConverter.cpp:46

onnx to mnn error

error message:
./MNNConvert -f ONNX --modelFile ~/GitHub/DFace/mobile_v2_pnet.onnx --MNNModel ~/GitHub/DFace/mobile_v2_pnet.mnn --bizCode MNN

MNNConverter Version: 0.0.0.1 - MNN @ 2018

Start to Convert Other Model Format To MNN Model...
[22:08:27] /Users/feipeng/GitHub/MNN/tools/converter/source/onnx/onnxConverter.cpp:29: ONNX Model ir version: 3
libc++abi.dylib: terminating with uncaught exception of type Error: [22:08:27] /Users/feipeng/GitHub/MNN/tools/converter/source/onnx/onnxConverter.cpp:83: Check failed: opConverter ==> MNN Converter NOT_SUPPORTED_OP: [ Clip ]
[1] 22273 abort ./MNNConvert -f ONNX --modelFile ~/GitHub/DFace/mobile_v2_pnet.onnx --MNNMode

how can i solve it?

INT8 support.

I can find int8 terms in source code here and there.
Does MNN support INT8 operation?
And if so, how to get it work?
Thanks for great framework.

Mnn model with input size None

I had a tf model which the model input size is 1xNonexNonex4, it's support variable input , so how to setup the mnn input coding ?
3q

An android demo error, solved by turn off the instant run, but why can't instant run been applied?

Android Studio报错

2019-05-13 14:38:26.816 21653-21653/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.taobao.android.mnndemo, PID: 21653
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.taobao.android.mnndemo/com.taobao.android.mnndemo.VideoActivity}: java.lang.ClassNotFoundException: Didn't find class "com.taobao.android.mnndemo.VideoActivity" on path: DexPathList[[zip file "/data/app/com.taobao.android.mnndemo-XLHXc1msoLEj8_JRUFdEiQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.taobao.android.mnndemo-XLHXc1msoLEj8_JRUFdEiQ==/lib/arm64, /data/app/com.taobao.android.mnndemo-XLHXc1msoLEj8_JRUFdEiQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2901)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3078)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:187)
        at android.app.ActivityThread.main(ActivityThread.java:7021)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:514)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.taobao.android.mnndemo.VideoActivity" on path: DexPathList[[zip file "/data/app/com.taobao.android.mnndemo-XLHXc1msoLEj8_JRUFdEiQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.taobao.android.mnndemo-XLHXc1msoLEj8_JRUFdEiQ==/lib/arm64, /data/app/com.taobao.android.mnndemo-XLHXc1msoLEj8_JRUFdEiQ==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1174)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2891)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3078at android.app.ActivityThread.-wrap11(Unknown Source:0at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794at android.os.Handler.dispatchMessage(Handler.java:106at android.os.Looper.loop(Looper.java:187at android.app.ActivityThread.main(ActivityThread.java:7021at java.lang.reflect.Method.invoke(Native Methodat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:514at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:888

解决办法

迷之解决

File -> Settings -> Build,Execution, Deployment -> Instant Run -> Uncheck the checkbox for instant run

20190513-150957

rk3399用clang编译

pi@NanoPi-M4:/MNN/build$ cmake .. -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_SYSTEM_PROCESSOR=aarch64 -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
-- The C compiler identification is Clang 6.0.0
-- The CXX compiler identification is Clang 6.0.0
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The ASM compiler identification is Clang
-- Found assembler: /usr/bin/clang
-- >>>>>>>>>>>>>
-- MNN BUILD INFO:
-- System: Linux
-- Processor: aarch64
-- DEBUG: OFF
-- Metal: OFF
-- OpenCL: OFF
-- OpenGL: OFF
-- Vulkan: OFF
-- OpenMP: ON
-- Hideen: TRUE
-- [*] searching .c
-- [
] searching .cc
-- [
] searching .cpp
-- [
] searching *.s .S
-- [
] Checking OpenMP
-- Found OpenMP_C: -fopenmp=libomp (found version "3.1")
-- Found OpenMP_CXX: -fopenmp=libomp (found version "3.1")
-- Found OpenMP: TRUE (found version "3.1")
-- /home/pi/MNN/build/benchmark
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/MNN/build
pi@NanoPi-M4:
/MNN/build$ make -j4
Scanning dependencies of target MNN
[ 0%] Building C object CMakeFiles/MNN.dir/source/core/MNNMemoryUtils.c.o
[ 0%] Building CXX object CMakeFiles/MNN.dir/source/core/AutoTime.cpp.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/Backend.cpp.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/BackendFactory.cpp.o
[ 1%] Building CXX object CMakeFiles/MNN.dir/source/core/BufferAllocator.cpp.o
[ 2%] Building CXX object CMakeFiles/MNN.dir/source/core/Execution.cpp.o
[ 2%] Building CXX object CMakeFiles/MNN.dir/source/core/Interpreter.cpp.o
[ 3%] Building CXX object CMakeFiles/MNN.dir/source/core/Pipeline.cpp.o
[ 3%] Building CXX object CMakeFiles/MNN.dir/source/core/Schedule.cpp.o
[ 3%] Building CXX object CMakeFiles/MNN.dir/source/core/Session.cpp.o
[ 4%] Building CXX object CMakeFiles/MNN.dir/source/core/SizeComputer.cpp.o
[ 4%] Building CXX object CMakeFiles/MNN.dir/source/core/Tensor.cpp.o
[ 5%] Building CXX object CMakeFiles/MNN.dir/source/core/TensorUtils.cpp.o
[ 5%] Building CXX object CMakeFiles/MNN.dir/source/core/WrapExecution.cpp.o
[ 5%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUArgMax.cpp.o
[ 6%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUAsString.cpp.o
[ 6%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBackend.cpp.o
[ 7%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBatchMatMul.cpp.o
[ 7%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBatchToSpaceND.cpp.o
[ 7%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUBinary.cpp.o
[ 8%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUCast.cpp.o
[ 8%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConcat.cpp.o
[ 9%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConst.cpp.o
[ 9%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConvolution.cpp.o
[ 9%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUConvolutionDepthwise.cpp.o
[ 10%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUCrop.cpp.o
[ 10%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUCropAndResize.cpp.o
[ 11%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUDeconvolution.cpp.o
[ 11%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUDeconvolutionDepthwise.cpp.o
[ 11%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUDequantize.cpp.o
[ 12%] Building CXX object CMakeFiles/MNN.dir/source/backend/cpu/CPUDetectionOutput.cpp.o
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
CONV_SETUP_KERNELSIZE(4);
^
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:36:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int dst_depth_quad = UP_DIV(output->channel(), KB)...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:36:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int dst_depth_quad = UP_DIV(output->channel(), KB)...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:38:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int src_z_step = input->width() * input->height() * KB...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:38:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int src_z_step = input->width() * input->height() * KB...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:39:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int src_batch_step = input->stride(0)...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:39:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int src_batch_step = input->stride(0)...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:42:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int dst_batch_step = output->stride(0)...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:42:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int dst_batch_step = output->stride(0)...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:56:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int strideX_step = strideX * KB...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:56:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int strideX_step = strideX * KB...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:57:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int weight_sy_step = KB * KB * kernel_width...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:57:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int weight_sy_step = KB * KB * kernel_width...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:58:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int weight_sz_step = KB * KB * kernel_width * kernel_height...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:58:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int weight_sz_step = KB * KB * kernel_width * kernel_height...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: unknown type name
'__unused'
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:59:5: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int weight_z_step = kernel_height * kernel_width * src_depth_qua...
^
/home/pi/MNN/include/MNNDefine.h:23:19: note: expanded from macro 'MNNUnused'
#define MNNUnused __unused
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: error: expected
unqualified-id
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:59:15: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
MNNUnused int weight_z_step = kernel_height * kernel_width * src_depth_qua...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:155:71: error: use of undeclared
identifier 'dst_depth_quad'; did you mean 'src_depth_quad'?
...= [this, width, height, count, tileCount, threadNumber, dst_depth_quad, kernelCo...
^~~~~~~~~~~~~~
src_depth_quad
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: note: 'src_depth_quad'
declared here
CONV_SETUP_KERNELSIZE(4);
^
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:37:9: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
int src_depth_quad = UP_DIV(input->channel(), KB)...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:156:53: error: use of undeclared
identifier 'src_z_step'
padX, padY, src_height, src_width, src_z_step, dilateX, dilateY...
^
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:168:39: error: use of undeclared
identifier 'dst_depth_quad'; did you mean 'src_depth_quad'?
for (int dz = 0; dz < dst_depth_quad; ++dz) {
^~~~~~~~~~~~~~
src_depth_quad
/home/pi/MNN/source/backend/cpu/CPUDeconvolution.cpp:148:5: note: 'src_depth_quad'
declared here
CONV_SETUP_KERNELSIZE(4);
^
/home/pi/MNN/source/backend/cpu/compute/ConvOpt.h:37:9: note: expanded from macro
'CONV_SETUP_KERNELSIZE'
int src_depth_quad = UP_DIV(input->channel(), KB)...
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
CMakeFiles/MNN.dir/build.make:710: recipe for target 'CMakeFiles/MNN.dir/source/backend/cpu/CPUDeconvolution.cpp.o' failed
make[2]: *** [CMakeFiles/MNN.dir/source/backend/cpu/CPUDeconvolution.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MNN.dir/all' failed
make[1]: *** [CMakeFiles/MNN.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

./schema/generate.sh failed

Reproduction step:

git clone 
cd path/to/mnn
./schema/generate.sh

Outputs:

$ ./schema/generate.sh
*** building flatc ***
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in

CMake Error: Error executing cmake::LoadCache(). Aborting.

*** cleaning up ***
*** generating fbs under default ***
xargs: ../../3rd_party/flatbuffers/tmp/flatc: No such file or directory
===> Generating Schema...
*** building flatc ***
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in

CMake Error: Error executing cmake::LoadCache(). Aborting.

xargs: ../../3rd_party/flatbuffers/tmp/flatc: No such file or directory
./generate_schema.sh: line 39: ../../3rd_party/flatbuffers/tmp/flatc: No such file or directory
===> Done!
*** done ***

Environments

ubuntu 18.04
gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
cmake version 3.10.2
export CMAKE_ROOT=/usr/share/cmake-3.10

[Build] Cross Compiling for armv7(hisi platform) got "redefined" error.

1. System Info

  • Host : Linux 4.15.0-47-generic #50~16.04.1-Ubuntu SMP x86_64 GNU/Linux
  • Target: Linux 4.9.37 #2 SMP armv7l GNU/Linux
  • Compiler: arm-himix200-linux-XX

2. Operation

cd path/to/MNN
./schema/generate.sh

mkdir build
cmake .. -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_SYSTEM_PROCESSOR=armv7 -DCMAKE_C_COMPILER=path/to/arm-himix200-linux-gcc -DCMAKE_CXX_COMPILER=path/to/arm-himix200-linux-g++

make -j4

Problem

All files were compiled but got some redefination errors for linking:

CMakeFiles/MNN.dir/source/backend/cpu/arm/arm32/MNNAddBias.S.o: In function `MNNAddBias':
(.text+0x0): multiple definition of `MNNAddBias'
CMakeFiles/MNN.dir/source/backend/cpu/compute/CommonOptFunction.cpp.o:CommonOptFunction.cpp:(.text.MNNAddBias+0x0): first defined here
CMakeFiles/MNN.dir/source/backend/cpu/arm/arm32/MNNAddBiasRelu.S.o: In function `MNNAddBiasRelu':
(.text+0x0): multiple definition of `MNNAddBiasRelu'
CMakeFiles/MNN.dir/source/backend/cpu/compute/CommonOptFunction.cpp.o:CommonOptFunction.cpp:(.text.MNNAddBiasRelu+0x0): first defined here

...

collect2: error: ld returned 1 exit status
CMakeFiles/MNN.dir/build.make:3533: recipe for target 'libMNN.so' failed
make[2]: *** [libMNN.so] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/MNN.dir/all' failed
make[1]: *** [CMakeFiles/MNN.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

How to set input data manuly

The ios demo use a '->convert' function to set input images to inputtensor, buy my input data is not a image, i want to copy my data manuly, can i use memcpy to copy my data to temptensor, and then use copyfromhosttensor?
so what's the requirement of the inputdimenison type? if i wanto to do that above ,do i need to convert my NHWC type to another type?

run get_model.sh error

[ 39%] Built target caffe
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
cp: cannot stat '../tools/converter/build/MNNConvert': No such file or directory
downloading model for MobileNet V1

iOS playground assertion failed

Assertion failed: (TensorUtils::compareTensors(infer(net, GPU), infer(net, CPU), 0.01)), function operator(), file /Users/tudou/Downloads/MNN-master/test/op/QuantizedSoftmaxTest.cpp, line 136.

model in gpu

how can i know my model whether run in gpu or not.i compiled opencl mnn and passed,but test time as long as cpu MNN

Add op error

I am following https://github.com/alibaba/MNN/blob/master/doc/AddOp_EN.md this doc to add a caffe Op named AffineCrop. After finish 4 steps in the doc, compile error

Scanning dependencies of target MNNConvert
[ 98%] Building CXX object CMakeFiles/MNNConvert.dir/source/MNNConverter.cpp.o
[ 99%] Building CXX object CMakeFiles/MNNConvert.dir/source/cli.cpp.o
[100%] Building CXX object CMakeFiles/MNNConvert.dir/source/config.cpp.o
[100%] Linking CXX executable MNNConvert
source/caffe/libcaffe.so: undefined reference to `vtable for AffineCrop'
collect2: error: ld returned 1 exit status
CMakeFiles/MNNConvert.dir/build.make:121: recipe for target 'MNNConvert' failed
make[2]: *** [MNNConvert] Error 1
CMakeFiles/Makefile2:152: recipe for target 'CMakeFiles/MNNConvert.dir/all' failed
make[1]: *** [CMakeFiles/MNNConvert.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Sorry about my poor knowledge of flatbuffers, can someone gives any suggestion, thanks

MNNConverter not support [Equal, SparseToDense]

MNNConverter Version: 0.0.0.1 - MNN @ 2018

Start to Convert Other Model Format To MNN Model...


Strongly Recommended: Apply Tensorflow Tool [graph transform] firstly!!! ==> fold_constants


terminate called after throwing an instance of 'Error'
what(): [09:58:18] /disk2/shawn/MNN_workspace/MNN/tools/converter/source/tensorflow/TmpGraph.cpp:64:

===========This Model Has NOT_SUPPORTED_OP===========!!!

MNN NOT_SUPPORTED_OP: ======>[ Equal, SparseToDense, ]<======

error when make converter folder

try to compile MNN on my x64 PC with WSL environment. The Ubuntu version is 18.04 from Microsoft store, with libprotobuf 3.0.0.9 installed by apt-get.
this script https://github.com/alibaba/MNN/blob/master/doc/Install_EN.md can be compiled without any error. but when I try to compile converter folder, errors occur like

In file included from /mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/ArgMaxTf.cpp:9:0:
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:55:14: error: ‘function’ in namespace ‘std’ does not name a template type
typedef std::function<bool(const NodeDef& node, const OpTypePattern& pattern, const NodeMatch* match)>
^~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:60:45: error: ‘match_constraint_fun’ has not been declared
GraphMatcher(const GraphDef& graph_def, match_constraint_fun func);
^~~~~~~~~~~~~~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:62:37: error: ‘match_constraint_fun’ has not been declared
void SetMatchConstraintFunction(match_constraint_fun func);
^~~~~~~~~~~~~~~~~~~~
[ 10%] Building CXX object source/onnx/CMakeFiles/onnx.dir/BinaryOpOnnx.cpp.o
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:72:5: error: ‘match_constraint_fun’ does not name a type
match_constraint_fun match_constraint_;
^~~~~~~~~~~~~~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:78:16: error: ‘function’ in namespace ‘std’ does not name a template type
const std::function<int(const NodeMatch&, const std::setstd::string&, const std::setstd::string&,
^~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:78:24: error: expected ‘,’ or ‘...’ before ‘<’ token
const std::function<int(const NodeMatch&, const std::setstd::string&, const std::setstd::string&,
^
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:144:14: error: ‘function’ in namespace ‘std’ does not name a template type
typedef std::function<int(const GraphDef&, const TransformFuncContext& context, GraphDef*)> TransformFunc;
^~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:146:31: error: ‘TransformFunc’ was not declared in this scope
typedef std::map<std::string, TransformFunc> TransformRegistry;
^~~~~~~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:146:31: note: suggested alternative: ‘TransformFuncContext’
typedef std::map<std::string, TransformFunc> TransformRegistry;
^~~~~~~~~~~~~
TransformFuncContext
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:146:44: error: template argument 2 is invalid
typedef std::map<std::string, TransformFunc> TransformRegistry;
^
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:146:44: error: template argument 4 is invalid
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:150:49: error: ‘TransformFunc’ has not been declared
TransformRegistrar(const std::string& name, TransformFunc transform_func) {
^~~~~~~~~~~~~
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp: In constructor ‘TFModelOptimizer::TransformRegistrar::TransformRegistrar(const string&, int)’:
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/TfUtils.hpp:152:30: error: no match for ‘operator[]’ (operand types are ‘int’ and ‘const string {aka const std::__cxx11::basic_string}’)
(*transform_registry)[name] = transform_func;
^
[ 11%] Linking CXX static library libCOMMON_LIB.a
[ 11%] Built target COMMON_LIB
[ 12%] Building CXX object source/tflite/CMakeFiles/tflite.dir/ConvolutionTflite.cpp.o
source/tensorflow/CMakeFiles/tensorflow.dir/build.make:142: recipe for target 'source/tensorflow/CMakeFiles/tensorflow.dir/ArgMaxTf.cpp.o' failed

then I add #include <functional> to tfUtils.hpp to fix this error. but got this

/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/SplitTf.cpp: In member function ‘virtual void SplitVTf::run(MNN::OpT*, TmpNode*, TmpGraph*)’:
/mnt/d/3rdparty/MNN/tools/converter/source/tensorflow/SplitTf.cpp:106:53: error: no match for ‘operator[]’ (operand types are ‘const google::protobuf::RepeatedField’ and ‘int’)
splitvParam->axis = value.tensor().int_val()[0];
^
source/tensorflow/CMakeFiles/tensorflow.dir/build.make:1462: recipe for target 'source/tensorflow/CMakeFiles/tensorflow.dir/SplitTf.cpp.o' failed
make[2]: *** [source/tensorflow/CMakeFiles/tensorflow.dir/SplitTf.cpp.o] Error 1
CMakeFiles/Makefile2:202: recipe for target 'source/tensorflow/CMakeFiles/tensorflow.dir/all' failed
make[1]: *** [source/tensorflow/CMakeFiles/tensorflow.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

can I get any help ? seems its a protobuf problem but I cannot get the reason.

MNN/OpRegister.sh has some grammar error

one error:
it should use bash instead of sh if you want to use function because some shell version has some different usage for function

one error:
read_dir should be put behind findword

one error:
result=echo $line| awk -F $3 '{ should be : result=echo $line| awk -F '$3' '{

one error:
when fix these error, and run it during cmake .. in the build folder:

Register Op Begin
Start Register CPU
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Start Register Shape
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Start Register Metal
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Error: no such file "[(,)]"
Register Op End

run ./tools/script/get_model.sh error

swqa@swqa-dgx-1v-01:~/MNN$ ./tools/script/get_model.sh
building converter ...
===> Generating Schema...
===> Done!
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.10/Modules/FindProtobuf.cmake:543 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:32 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/swqa/MNN/tools/converter/build/CMakeFiles/CMakeOutput.log".
See also "/home/swqa/MNN/tools/converter/build/CMakeFiles/CMakeError.log".
make: *** No rule to make target 'clean'. Stop.
make: *** No targets specified and no makefile found. Stop.
cp: cannot stat '../tools/converter/build/MNNConvert': No such file or directory
./tools/script/get_model.sh: line 28: ./build/MNNConvert: No such file or directory
./tools/script/get_model.sh: line 28: ./build/MNNConvert: No such file or directory
./tools/script/get_model.sh: line 28: ./build/MNNConvert: No such file or directory
./tools/script/get_model.sh: line 28: ./build/MNNConvert: No such file or directory
./tools/script/get_model.sh: line 38: ./build/MNNConvert: No such file or directory
./tools/script/get_model.sh: line 38: ./build/MNNConvert: No such file or directory
./tools/script/get_model.sh: line 47: ./build/MNNConvert: No such file or directory

NOT_SUPPORTED_OP: [ Constant ]

My conversion path: pytorch-->onnx-->mmn, the error log as follow:

MNNConverter Version: 0.0.0.1 - MNN @ 2018

Start to Convert Other Model Format To MNN Model...
[10:34:35] /disk2/shawn/MNN_workspace/MNN/tools/converter/source/onnx/onnxConverter.cpp:29: ONNX Model ir version: 3
terminate called after throwing an instance of 'Error'
what(): [10:34:35] /disk2/shawn/MNN_workspace/MNN/tools/converter/source/onnx/onnxConverter.cpp:83: Check failed: opConverter ==> MNN Converter NOT_SUPPORTED_OP: [ Constant ]
./convert.sh: line 1: 5391 Aborted (core dumped) ../tools/converter/build/MNNConvert -f ONNX --modelFile r18-small_18_0.9500.onnx --MNNModel r18-small_18.mnn --bizCode MNN

how to use caffe model with ReverseLayer?

I have one caffe model with Reverse layer.
official caffe doesn't include Reverse layer.
but there are some caffe branch has this layer.
when converting, crash happens:

text_format.cc:288] Error parsing text-format caffe.NetParameter: 344:17: Message type "caffe.LayerParameter" has no field named "reverse_param".
terminate called after throwing an instance of 'Error'

How to convert ONNX "Upsample" to MNN "interp"?

Hi,
When I tried to convert my ONNX model to MNN model, i got the following error:
Check failed: opConverter ==> MNN Converter NOT_SUPPORTED_OP: [ Upsample ].
But i found there is an "interp" operator in MNN supported Op-list.
image
I think both of them have the same function. Could you give me some suggestions for fixing it?

model not fount ?

mobilenet_v2.caffe.mnn 、 mobilenet_v2_1.0_224.tflite.mnn 、squeezenet_v1.1.caffe.mnn not fount ?

编译convert是出错,tensorflow1.10, anaconda3 3.6

source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::ArenaImpl::AllocateAlignedAndAddCleanup(unsigned long, void (*)(void*))' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Add(float const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<long>::InternalSwap(google::protobuf::RepeatedField<long>*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::unsafe_data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::AddDescriptors(google::protobuf::internal::DescriptorTable const*)' source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField::Add(unsigned long const&)'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::~RepeatedField()' source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<bool>::RepeatedField(google::protobuf::RepeatedField<bool> const&)' source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField::InternalSwap(google::protobuf::RepeatedField)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::DecrementRecursionDepthAndPopLimit(int)' source/caffe/libcaffe.so: undefined reference to google::protobuf::internal::WireFormatLite::UInt32Size(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::~RepeatedField()'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::RepeatedField(google::protobuf::RepeatedField<unsigned int> const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::Get(int) const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::Capacity() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::WireFormatLite::VerifyUtf8String(char const
, int, google::protobuf::internal::WireFormatLite::Operation, char const*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Add()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<bool>::RepeatedField(google::protobuf::Arena*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteFloatArray(float const*, int, google::protobuf::io::CodedOutputStream*)'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::unsafe_data() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::MapFieldBase::SyncRepeatedFieldWithMapNoLock() const'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::AddAlreadyReserved(unsigned int const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::mutable_data()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::AddAlreadyReserved(int const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Add(double const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::ReadVarint64Fallback()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Capacity() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteBoolArray(bool const*, int, google::protobuf::io::CodedOutputStream*)' source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField::data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::UnknownFieldSet::default_instance()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Clear()'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::MergeFrom(google::protobuf::RepeatedField<unsigned long> const&)' source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField::Clear()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::MapFieldBase::SyncMapWithRepeatedField() const' source/caffe/libcaffe.so: undefined reference to google::protobuf::internal::WireFormat::ReadPackedEnumPreserveUnknowns(google::protobuf::io::CodedInputStream*, unsigned int, bool ()(int), google::protobuf::UnknownFieldSet, google::protobuf::RepeatedField)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::IncrementRecursionDepthAndPushLimit(int)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Capacity() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::WireFormatLite::Int64Size(google::protobuf::RepeatedField<long> const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::data() const'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::InternalSwap(google::protobuf::RepeatedField<unsigned long>*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::AddAlreadyReserved(float const&)'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::Capacity() const' source/tensorflow/libtensorflow.so: undefined reference to vtable for google::protobuf::internal::MapFieldBase'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::DestroyMessage(void const*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<float>::InternalSwap(google::protobuf::RepeatedField<float>*)' source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField::MergeFrom(google::protobuf::RepeatedField const&)'
source/onnx/libonnx.so: undefined reference to google::protobuf::internal::WireFormatLite::UInt64Size(google::protobuf::RepeatedField<unsigned long> const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::WireFormatLite::Int32Size(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<long>::data() const' source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField::AddAlreadyReserved(unsigned long const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::Clear()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField()'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::~RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::begin() const'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::unsafe_data() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::mutable_data()'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<float>::Truncate(int)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Add(int const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::ReadVarint32Fallback(unsigned int)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::InitSCCImpl(google::protobuf::internal::SCCInfoBase
)'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::Capacity() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::Arena*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::size() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedOutputStream::WriteVarint64SlowPath(unsigned long)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<bool>::MergeFrom(google::protobuf::RepeatedField<bool> const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Add(long const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::RepeatedPtrField(google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::RepeatedPtrField(google::protobuf::Arena*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::MapFieldBase::SetMapDirty()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::AddAlreadyReserved(bool const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedOutputStream::WriteVarint32SlowPath(unsigned int)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::unsafe_data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::end() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::Arena*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<float>::~RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::MergeFrom(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to typeinfo for google::protobuf::internal::MapFieldBase' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Clear()'
source/caffe/libcaffe.so: undefined reference to google::protobuf::internal::DestroyString(void const*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::fixed_address_empty_string[abi:cxx11]'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::Message::SpaceUsedLong() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::SkipFallback(int, int)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::InternalSwap(google::protobuf::RepeatedField<double>*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::size() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Add(bool const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<bool>::Clear()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::Arena::OnArenaAllocation(std::type_info const*, unsigned long) const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::Resize(int, double const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::GetOwnedMessageInternal(google::protobuf::Arena*, google::protobuf::MessageLite*, google::protobuf::Arena*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Clear()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::InternalSwap(google::protobuf::RepeatedField)'
source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField<unsigned long>::size() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::unsafe_data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::MergeFrom(google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::ArenaImpl::AllocateAligned(unsigned long)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::unsafe_data() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const
)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::WireFormatLite::WriteDoubleArray(double const*, int, google::protobuf::io::CodedOutputStream*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::ArenaImpl::AddCleanup(void*, void ()(void))'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<long>::AddAlreadyReserved(long const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::MergeFrom(google::protobuf::RepeatedField const&)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<long>::Clear()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField(google::protobuf::Arena*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::AddAlreadyReserved(double const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::MapFieldBase::~MapFieldBase()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<float>::MergeFrom(google::protobuf::RepeatedField<float> const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::RepeatedPtrField()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::RepeatedField(google::protobuf::Arena*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::size() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::ReadVarintSizeAsIntFallback()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::InternalSwap(google::protobuf::RepeatedField*)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<bool>::size() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<bool>::~RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<float>::RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::~RepeatedField()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::ReadTagFallback(unsigned int)' source/onnx/libonnx.so: undefined reference to google::protobuf::RepeatedField::Clear()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::Capacity() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::data() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::OnShutdownRun(void (*)(void const*), void const*)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Truncate(int)'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::io::CodedInputStream::SetTotalBytesLimit(int)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::~RepeatedField()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::RepeatedPtrFieldBase::InternalExtend(int)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::RepeatedField()'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<double>::RepeatedField(google::protobuf::RepeatedField<double> const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField::Capacity() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<float>::Resize(int, float const&)' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::size() const'
source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedField<int>::unsafe_data() const' source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField::Add(unsigned int const&)'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::RepeatedField()' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >::~RepeatedPtrField()'
source/caffe/libcaffe.so: undefined reference to google::protobuf::RepeatedField<unsigned int>::size() const' source/tensorflow/libtensorflow.so: undefined reference to google::protobuf::internal::MapFieldBase::SpaceUsedExcludingSelfNoLock() const'
source/tensorflow/libtensorflow.so: undefined reference to `google::protobuf::RepeatedField::size() const'
collect2: error: ld returned 1 exit status
CMakeFiles/MNNConvert.dir/build.make:154: recipe for target 'MNNConvert' failed
make[2]: *** [MNNConvert] Error 1
CMakeFiles/Makefile2:147: recipe for target 'CMakeFiles/MNNConvert.dir/all' failed
make[1]: *** [CMakeFiles/MNNConvert.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

make failed

After run cmake .. on my Ubuntu 16.04 CUDA8.0 ,then run make -j4 ,I got this error:

/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:50:33: error: expected initializer before ‘OpType_Size__’
extern void SizeOpComputer OpType_Size_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:51:32: error: expected initializer before ‘OpType_Slice__’
extern void SliceComputer OpType_Slice_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:52:34: error: expected initializer before ‘OpType_SliceTf__’
extern void SliceTfComputer OpType_SliceTf_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:53:45: error: expected initializer before ‘OpType_SpaceToBatchND__’
extern void SpaceToBatchNDSizeComputer OpType_SpaceToBatchND_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:54:38: error: expected initializer before ‘OpType_Squeeze__’
extern void SqueezeSizeComputer OpType_Squeeze_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:55:39: error: expected initializer before ‘OpType_StridedSlice__’
extern void StridedSliceComputer OpType_StridedSlice_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:56:44: error: expected initializer before ‘OpType_ConvertTensor__’
extern void TensorConvertSizeComputer OpType_ConvertTensor_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:57:44: error: expected initializer before ‘OpType_TfQuantizedConv2D__’
extern void TFQuantizedConv2DComputer OpType_TfQuantizedConv2D_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:58:44: error: expected initializer before ‘OpType_QuantizedDepthwiseConv2D__’
extern void TFQuantizedConv2DComputer OpType_QuantizedDepthwiseConv2D_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:59:31: error: expected initializer before ‘OpType_Tile__’
extern void TileComputer OpType_Tile_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:60:37: error: expected initializer before ‘OpType_TopKV2__’
extern void TopKV2SizeComputer OpType_TopKV2_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:61:36: error: expected initializer before ‘OpType_Transpose__’
extern void TransposeComputer OpType_Transpose_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:62:33: error: expected initializer before ‘OpType_Unpack__’
extern void UnpackComputer OpType_Unpack_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:63:36: error: expected initializer before ‘OpType_Where__’
extern void WhereSizeComputer OpType_Where_();
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:64:2: error: ‘nvoid’ does not name a type
\nvoid registerShapeOps() {
^
/home/t702/lianghua/MNN/source/shape/ShapeRegister.hpp:127:3: error: ‘n’ does not name a type
}\n}

undefined reference to'__emutls_get_address'

when i follow build for Android, the last step,i met linking error.

[ 92%] Linking CXX shared library libMNN.so
/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/libgomp/libgomp.h:494: error: undefined reference to '__emutls_get_address'
/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/libgomp/libgomp.h:494: error: undefined reference to '__emutls_get_address'
/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/libgomp/libgomp.h:494: error: undefined reference to '__emutls_get_address'
/usr/local/google/buildbot/src/android/gcc/toolchain/build/../gcc/gcc-4.9/libgomp/parallel.c:178: error: undefined reference to '__emutls_get_address'
collect2: error: ld returned 1 exit status
CMakeFiles/MNN.dir/build.make:3533: recipe for target 'libMNN.so' failed
make[2]: *** [libMNN.so] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/MNN.dir/all' failed
make[1]: *** [CMakeFiles/MNN.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

how can i fix this???

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.