alibaba / mnn Goto Github PK
View Code? Open in Web Editor NEWMNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
Home Page: http://www.mnn.zone/
MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba
Home Page: http://www.mnn.zone/
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
How can I get the file ?
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!
1、如何支持八位量化的推理?
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 都出现上面的错误。
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
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.
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)
I tried to convert a onnx format model (which is converted from a tensorflow model),
following error was reported:
Check failed: opConverter ==> MNN Converter NOT SUPPORTED_OP: [ Transpose ]
Dose MNN Converter support onnx format model with layer Transpose?
Target:
I want to integrate MNN by using iOS static framework.
But I can't find an elegant way to archive it.
Try:
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.
./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文件也测试过
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
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
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?
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.
Due to no proper cmake configuration, it is not possible to compile it.
if you can provide the update for the environment, it will be very appreciated.
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
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: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)
File -> Settings -> Build,Execution, Deployment -> Instant Run -> Uncheck the checkbox for instant run
Can I use it on the windows platform, such as windows 10?
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++/MNN/build$ make -j4
-- 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:
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
git clone
cd path/to/mnn
./schema/generate.sh
$ ./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 ***
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
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
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
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?
I am following https://github.com/alibaba/MNN/blob/master/doc/AddOp_EN.md this doc to add a tensorflow Op named LinSpace. Compile successfully and passed unit test. But there still a error of MNN NOT_SUPPORTED_OP: ======>[ LinSpace, ]<======.
What should I do to solve the problem? Thanks.
[ 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
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.
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
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 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, ]<======
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.
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
需要内网才能看图片
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
plan to support mxnet converter?
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
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'
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.
I think both of them have the same function. Could you give me some suggestions for fixing it?
Typo "Compilter" in cmake/macros.cmake. "Compilter" should be spelled as "Compiler"
mobilenet_v2.caffe.mnn 、 mobilenet_v2_1.0_224.tflite.mnn 、squeezenet_v1.1.caffe.mnn not fount ?
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
How to build arm arch64 binary?
Tried Install_EN.md, , not work
Hi,
赞大佬们的工作,这篇文章中有些benchmark结果,非常赞。
不过MACE相关的Benchmark结果跟我们测的出入较大,咨询一下你们测的是MACE的哪个版本呢,还有是怎么测得呢?
Thanks
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}
CMake Error at CMakeLists.txt:34 (add_library):
add_library cannot create imported target "MNN" because another target with
the same name already exists.
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???
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.