Coder Social home page Coder Social logo

xiaomi / mace Goto Github PK

View Code? Open in Web Editor NEW
4.9K 230.0 820.0 31.07 MB

MACE is a deep learning inference framework optimized for mobile heterogeneous computing platforms.

License: Apache License 2.0

Python 9.49% C++ 85.48% C 2.66% Shell 0.33% CMake 0.75% HTML 0.08% Smarty 0.01% Dockerfile 0.10% Starlark 0.63% Jinja 0.47%
deep-learning neural-network opencl neon hvx machine-learning

mace's Introduction

MACE

License Build Status pipeline status doc build status

Documentation | FAQ | Release Notes | Roadmap | MACE Model Zoo | Demo | Join Us | 中文

Mobile AI Compute Engine (or MACE for short) is a deep learning inference framework optimized for mobile heterogeneous computing on Android, iOS, Linux and Windows devices. The design focuses on the following targets:

  • Performance
    • Runtime is optimized with NEON, OpenCL and Hexagon, and Winograd algorithm is introduced to speed up convolution operations. The initialization is also optimized to be faster.
  • Power consumption
    • Chip dependent power options like big.LITTLE scheduling, Adreno GPU hints are included as advanced APIs.
  • Responsiveness
    • UI responsiveness guarantee is sometimes obligatory when running a model. Mechanism like automatically breaking OpenCL kernel into small units is introduced to allow better preemption for the UI rendering task.
  • Memory usage and library footprint
    • Graph level memory allocation optimization and buffer reuse are supported. The core library tries to keep minimum external dependencies to keep the library footprint small.
  • Model protection
    • Model protection has been the highest priority since the beginning of the design. Various techniques are introduced like converting models to C++ code and literal obfuscations.
  • Platform coverage
    • Good coverage of recent Qualcomm, MediaTek, Pinecone and other ARM based chips. CPU runtime supports Android, iOS and Linux.
  • Rich model formats support

Getting Started

Performance

MACE Model Zoo contains several common neural networks and models which will be built daily against a list of mobile phones. The benchmark results can be found in the CI result page (choose the latest passed pipeline, click release step and you will see the benchmark results). To get the comparison results with other frameworks, you can take a look at MobileAIBench project.

Communication

  • GitHub issues: bug reports, usage issues, feature requests
  • Slack: mace-users.slack.com
  • QQ群: 756046893

Contributing

Any kind of contribution is welcome. For bug reports, feature requests, please just open an issue without any hesitation. For code contributions, it's strongly suggested to open an issue for discussion first. For more details, please refer to the contribution guide.

License

Apache License 2.0.

Acknowledgement

MACE depends on several open source projects located in the third_party directory. Particularly, we learned a lot from the following projects during the development:

Finally, we also thank the Qualcomm, Pinecone and MediaTek engineering teams for their help.

mace's People

Contributors

allen0125 avatar baijunhui avatar byronhsu avatar chung-pi-lee avatar dustless avatar eclipse9527 avatar efeiefei avatar gasgallo avatar herbakamil avatar icyhearts avatar idstein avatar l2dy avatar lee-bin avatar liyinhgqw avatar lk375273991 avatar llhe avatar lu229 avatar lydoc avatar mwtarnowski avatar nolanliou avatar onetaken avatar tonymou avatar w-adamski avatar yejw5 avatar yi-kai-chen avatar yll3518974 avatar yuanlonglong-xiaomi avatar yungchienhsu avatar yytdfc avatar zhenhuaw-me avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mace's Issues

DSP benchmark scripts forget to push libhexagon_controller.so

This command runs well:
python tools/converter.py run --config mace-models/inception-v3/inception-v3-dsp.yml //pass

This command run failed , error message as below:
python tools/converter.py benchmark --config mace-models/inception-v3/inception-v3-dsp.yml //fail

CANNOT LINK EXECUTABLE "/data/local/tmp/mace_run/benchmark_model_static": library "libhexagon_controller.so" not found
Aborted
Traceback (most recent call last):
File "tools/converter.py", line 1376, in
flags.func(flags)
File "tools/converter.py", line 1221, in benchmark_model
target_soc, serial_num)
File "tools/converter.py", line 1198, in bm_specific_target
linkshared=linkshared)
File "/local/mnt/mace/tools/sh_commands.py", line 1302, in benchmark_model
_fg=True)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1413, in call
raise exc
sh.ErrorReturnCode_134:

RAN: /usr/bin/adb -s c249ac33 shell sh /data/local/tmp/mace_run/cmd_file-inception_v3_dsp-1531204162.26

STDOUT:

STDERR:

set proper ANDROID_NDK_HOME, why still cannot find some head files

using ndk-r16b , when run command: "python tools/converter.py build --config=docs/getting_started/models/demo_app_models.yaml"

ERROR HAPPEN as below, any idea?

external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/cwchar:44:10: fatal error: 'wchar.h' file not found
#include <wchar.h>
^~~~~~~~~
1 error generated.
Target //mace/tools/validation:mace_run_static failed to build
INFO: Elapsed time: 3.311s, Critical Path: 0.59s
FAILED: Build did NOT complete successfully
Traceback (most recent call last):
File "tools/converter.py", line 1348, in
flags.func(flags)
File "tools/converter.py", line 888, in build_library
flags.disable_openmp, flags.address_sanitizer)
File "tools/converter.py", line 862, in generate_library
address_sanitizer)
File "tools/converter.py", line 720, in build_specific_lib
address_sanitizer=address_sanitizer
File "/local/mnt/mace/tools/sh_commands.py", line 323, in bazel_build
*bazel_args)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1413, in call
raise exc
sh.ErrorReturnCode_1:

RAN: /usr/local/bin/bazel build //mace/tools/validation:mace_run_static --config android --cpu=armeabi-v7a --define neon=true --define openmp=true --define hexagon=false --config optimization

STDOUT:

STDERR:

A/MACE: eltwise.h:815 Check failed

安卓调用的时候库的时候出现如下错误:

I/MACE: mace.cc:127 Creating MaceEngine, MACE version: unknown-20180630
I/MACE: mace.cc:135 Initializing MaceEngine
A/MACE: eltwise.h:815 Check failed: (input0->dim_size() == 4) && ((input1->dim_size() == 0) || (input1->dim_size() == 4 && input1->dim(1) == input0->dim(1) && (input1->dim(0) == input0->dim(0) || input1->dim(0) == 1)) || (input1->dim_size() == 1 && input1->dim(0) == input0->dim(1))) only support broadcast channel dimension
A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 15844 (ang.imuqueryapp)

        [ 06-30 17:31:34.473   439:  439 W/         ]
        debuggerd: handling request: pid=15844 uid=10143 gid=10143 tid=15844
Application terminated.

android C++ jni部分代码如下:

namespace {
    struct ModelInfo {
        std::string input_name;
        std::string output_name;
        std::vector<int64_t> input_shape;
        std::vector<int64_t> output_shape;
    };


    struct MaceContext {
        std::shared_ptr<mace::MaceEngine> engine;
        std::shared_ptr<mace::KVStorageFactory> storage_factory;
        std::string model_name="ecard_captcha_crack";
        mace::DeviceType device_type = mace::DeviceType::CPU;
        std::map<std::string, ModelInfo> model_infos = {
                {"ecard_captcha_crack", {"input", "output", {1, 218, 82, 3}, {5, 10}}},
        };
    };

    mace::DeviceType ParseDeviceType(const std::string &device) {
        if (device.compare("CPU") == 0) {
            return mace::DeviceType::CPU;
        } else if (device.compare("GPU") == 0) {
            return mace::DeviceType::GPU;
        } else if (device.compare("HEXAGON") == 0) {
            return mace::DeviceType::HEXAGON;
        } else {
            return mace::DeviceType::CPU;
        }
    }

    MaceContext& GetMaceContext() {
        // stay for the app's life time, only initialize once
        static auto *mace_context = new MaceContext;

        return *mace_context;
    }

}  // namespace

JNIEXPORT jint JNICALL
Java_me_hupeng_sdk_ecardcaptchacrack_ECardCaptchaCrack2_createEngine(JNIEnv *env, jobject instance) {

    MaceContext &mace_context = GetMaceContext();

    auto model_info_iter =
            mace_context.model_infos.find(mace_context.model_name);


    const ModelInfo &model_info = model_info_iter->second;
    const std::string &input_name = model_info.input_name;
    const std::string &output_name = model_info.output_name;
    const std::vector<int64_t> &input_shape = model_info.input_shape;
    const std::vector<int64_t> &output_shape = model_info.output_shape;

    mace::MaceStatus create_engine_status =
            CreateMaceEngineFromCode(mace_context.model_name,
                                     std::string(),
                                     input_name,
                                     output_name,
                                     mace_context.device_type,
                                     &mace_context.engine);
    return create_engine_status == mace::MaceStatus::MACE_SUCCESS ?
           JNI_OK : JNI_ERR;
}


JNIEXPORT jstring JNICALL
Java_me_hupeng_sdk_ecardcaptchacrack_ECardCaptchaCrack2_crack(JNIEnv *env, jobject instance,
                                                              jfloatArray input_data) {
    MaceContext &mace_context = GetMaceContext();
    //  prepare input and output
    auto model_info_iter =
            mace_context.model_infos.find(mace_context.model_name);


    const ModelInfo &model_info = model_info_iter->second;
    const std::string &input_name = model_info.input_name;
    const std::string &output_name = model_info.output_name;
    const std::vector<int64_t> &input_shape = model_info.input_shape;
    const std::vector<int64_t> &output_shape = model_info.output_shape;
    const int64_t input_size =
            std::accumulate(input_shape.begin(), input_shape.end(), 1,
                            std::multiplies<int64_t>());
    const int64_t output_size =
            std::accumulate(output_shape.begin(), output_shape.end(), 1,
                            std::multiplies<int64_t>());

    std::map<std::string, mace::MaceTensor> inputs;
    std::map<std::string, mace::MaceTensor> outputs;

    jfloat *input_data_ptr  = env->GetFloatArrayElements(input_data, NULL);
    jsize length = env->GetArrayLength(input_data);

    auto buffer_in = std::shared_ptr<float>(new float[input_size],
                                            std::default_delete<float[]>());
    std::copy_n(input_data_ptr, input_size, buffer_in.get());
    env->ReleaseFloatArrayElements(input_data, input_data_ptr, 0);
    inputs[input_name] = mace::MaceTensor(input_shape, buffer_in);

    // construct output
    auto buffer_out = std::shared_ptr<float>(new float[output_size],
                                             std::default_delete<float[]>());
    outputs[output_name] = mace::MaceTensor(output_shape, buffer_out);

    // run model
    mace_context.engine->Run(inputs, &outputs);

    // transform output
//    jfloatArray jOutputData = env->NewFloatArray(output_size);  // allocate
//    if (jOutputData == nullptr) return nullptr;
//    env->SetFloatArrayRegion(jOutputData, 0, output_size,
//                             outputs[output_name].data().get());  // copy
//

    return env->NewStringUTF("hello world");
}

运行到下面一行的时候crash

 mace_context.engine->Run(inputs, &outputs);

yaml文件如下:

# The name of library
library_name: ppnet
target_abis: [arm64-v8a,armeabi-v7a]
embed_model_data: 1
# The build mode for model(s).
# 'code' stand for transfer model(s) into cpp code, 'proto' for model(s) in protobuf file(s).
build_type: code
linkshared: 0
# One yaml config file can contain multi models' config message.
models:
  ecard_captcha_crack: # model tag, which will be used in model loading and must be specific.
    platform: tensorflow
    # support local path, http:// and https://
    model_file_path: /home/hupeng/tf_model_opt.pb 
    model_sha256_checksum: 05b347ab8ff512ebd5ca467e64c33809b2a6b259be15b29eec07591d3c6ddda9
    subgraphs:
      - input_tensors: input
        input_shapes: 1,218,82,3
        output_tensors: output
        output_shapes: 5,10
    runtime: cpu
    limit_opencl_kernel_time: 0
    nnlib_graph_mode: 0
    obfuscate: 0
    winograd: 0

Try to build the caffemodel,but the script needed tensorflow

My deepLearning development framework is Caffe,When I use the tools/converter.py to build the squeezenet-v11 caffemodel,the python script is needed to import tensorflow,but I have never install tensorflow,so build failed.

yaml file:

library_name: squeezenet-v11
target_abis: [armeabi-v7a]
embed_model_data: 0
build_type: code
models:
  squeezenet_v11:
    platform: caffe
    model_file_path: https://cnbj1.fds.api.xiaomi.com/mace/miai-models/squeezenet/squeezenet-v1.1.prototxt
    weight_file_path: https://cnbj1.fds.api.xiaomi.com/mace/miai-models/squeezenet/squeezenet-v1.1.caffemodel
    model_sha256_checksum: 625c952063da1569e22d2f499dc454952244d42cd8feca61f05502566e70ae1c
    weight_sha256_checksum: 72b912ace512e8621f8ff168a7d72af55910d3c7c9445af8dfbff4c2ee960142
    subgraphs:
      - input_tensors: data
        output_tensors: prob
        input_shapes: 1,227,227,3
        output_shapes: 1,1,1,1000
    runtime: cpu+gpu
    limit_opencl_kernel_time: 0
    nnlib_graph_mode: 0
    obfuscate: 0
    winograd: 0

cmd:

bug1989@ubuntu:~/mace$ python tools/converter.py build --config=../mace-models/squeezenet/squeezenet-v11.yml

Terminal info:

bug1989@ubuntu:~/mace$ python tools/converter.py build --config=../mace-models/squeezenet/squeezenet-v11.yml 
------------------------------------
        Common Configuration        
------------------------------------
|       key       |     value      |
====================================
|     library_name|  squeezenet-v11|
------------------------------------
|      target_abis| ['armeabi-v7a']|
------------------------------------
|      target_socs|              []|
------------------------------------
|       build_type|            code|
------------------------------------
| embed_model_data|               0|
------------------------------------
|       linkshared|               0|
------------------------------------
|           Tuning|            True|
------------------------------------

* Genearte mace engine creator source
Genearte mace engine creator source done!

************************************************
          Convert squeezenet_v11 model          
************************************************

Downloading model, please wait ...
Model downloaded successfully.
INFO: Analysed target //mace/python/tools:converter (0 packages loaded).
INFO: Found 1 target...
Target //mace/python/tools:converter up-to-date:
  bazel-bin/mace/python/tools/converter
INFO: Elapsed time: 2.665s, Critical Path: 0.01s
INFO: Build completed successfully, 1 total action

Traceback (most recent call last):
  File "/home/bug1989/mace/bazel-bin/mace/python/tools/converter.runfiles/mace/mace/python/tools/converter.py", line 22, in <module>
    from mace.python.tools import tf_dsp_converter_lib
  File "/home/bug1989/mace/bazel-bin/mace/python/tools/converter.runfiles/mace/mace/python/tools/tf_dsp_converter_lib.py", line 17, in <module>
    import tensorflow as tf
ImportError: No module named tensorflow
Traceback (most recent call last):
  File "tools/converter.py", line 1386, in <module>
    flags.func(flags)
  File "tools/converter.py", line 902, in build_library
    convert_model(configs)
  File "tools/converter.py", line 667, in convert_model
    ",".join(model_config.get(YAMLKeyword.graph_optimize_options, [])))
  File "/home/bug1989/mace/tools/sh_commands.py", line 524, in gen_model_code
    _fg=True)
  File "/home/bug1989/.local/lib/python2.7/site-packages/sh.py", line 1413, in __call__
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /usr/bin/python bazel-bin/mace/python/tools/converter -u --platform=caffe --model_file=build/squeezenet-v11/_tmp/squeezenet_v11/f71c295b8a511d160c6c3fadcb5537e1/model.pb --weight_file=build/squeezenet-v11/_tmp/squeezenet_v11/f71c295b8a511d160c6c3fadcb5537e1/model.caffemodel --model_checksum=625c952063da1569e22d2f499dc454952244d42cd8feca61f05502566e70ae1c --weight_checksum=72b912ace512e8621f8ff168a7d72af55910d3c7c9445af8dfbff4c2ee960142 --input_node=data --output_node=prob --runtime=cpu+gpu --template=mace/python/tools --model_tag=squeezenet_v11 --input_shape=1,227,227,3 --dsp_mode=0 --embed_model_data=0 --winograd=0 --obfuscate=0 --output_dir=mace/codegen/models/squeezenet_v11 --model_build_type=code --data_type=fp16_fp32 --graph_optimize_options=

  STDOUT:


  STDERR:

How to build without Docker

Hi, there
Thank you for your amazing work.

I can not access the docker server, so, are there solution to build without docker?
And I can not find the example about how to use caffe model.
Would you please make more introduction about caffe model usage? Thank you so much~

Mac Android example gradlew build

Packaging Done!


                       Library

| key | value |

| library package| builds/mobilenet/libmace_mobilenet.tar.gz|

Configure project :app
Observed package id 'platforms;android-26' in inconsistent location '/Users/xxx/Library/Android/sdk/platforms/android-8.0.0' (Expected '/Users/xxx/Library/Android/sdk/platforms/android-26')
Already observed package id 'platforms;android-26' in '/Users/xxx/Library/Android/sdk/platforms/android-26'. Skipping duplicate at '/Users/xxx/Library/Android/sdk/platforms/android-8.0.0'

Task :app:compileAppDebugJavaWithJavac
注: /Users/xxx/Downloads/mace/mace/examples/android/app/src/main/java/com/xiaomi/mace/demo/camera/CameraApiLessM.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。

Task :macelibrary:generateJsonModelDebug
-- Check for working C compiler: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
-- Check for working C compiler: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/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: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
-- Check for working CXX compiler: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- FILE URL = /Users/xxx/Downloads/mace/mace/examples/android/macelibrary
-- FILE URL =
CMake Error at CMakeLists.txt:28 (set_target_properties):
set_target_properties called with incorrect number of arguments.
-- Configuring incomplete, errors occurred!
See also "/Users/xxx/Downloads/mace/mace/examples/android/macelibrary/.externalNativeBuild/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log".

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':macelibrary:generateJsonModelDebug'.

Build command failed.
Error while executing process /Users/xxx/Library/Android/sdk/cmake/3.6.4111459/bin/cmake with arguments {-H/Users/xxx/Downloads/mace/mace/examples/android/macelibrary -B/Users/xxx/Downloads/mace/mace/examples/android/macelibrary/.externalNativeBuild/cmake/debug/arm64-v8a -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-23 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/xxx/Downloads/mace/mace/examples/android/macelibrary/build/intermediates/cmake/debug/obj/arm64-v8a -DCMAKE_BUILD_TYPE=Debug -DANDROID_NDK=/Users/xxx/Library/Android/sdk/ndk-bundle -DCMAKE_CXX_FLAGS=-std=c++14 -fopenmp -DCMAKE_TOOLCHAIN_FILE=/Users/xxx/Library/Android/sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=/Users/xxx/Library/Android/sdk/cmake/3.6.4111459/bin/ninja -GAndroid Gradle - Ninja}
-- Check for working C compiler: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang
-- Check for working C compiler: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/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: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++
-- Check for working CXX compiler: /Users/xxx/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- FILE URL = /Users/xxx/Downloads/mace/mace/examples/android/macelibrary
-- FILE URL =
CMake Error at CMakeLists.txt:28 (set_target_properties):
set_target_properties called with incorrect number of arguments.

-- Configuring incomplete, errors occurred!
See also "/Users/xxx/Downloads/mace/mace/examples/android/macelibrary/.externalNativeBuild/cmake/debug/arm64-v8a/CMakeFiles/CMakeOutput.log".

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 11s
38 actionable tasks: 35 executed, 3 up-to-date

Benchmark results

A benchmark results of a previous version is available here:

model_name                     device_name   soc        abi           runtime   init       warmup     run_avg    tuned
mobilenet_v2                   polaris       sdm845     armeabi-v7a   GPU       42.868     11.087     9.908      True
mobilenet_v2                   MI MAX        msm8952    armeabi-v7a   GPU       122.791    43.038     39.875     True
mobilenet_v2                   BKL-AL00      kirin970   armeabi-v7a   GPU       767.932    1226.373   47.597     True
mobilenet_v2                   polaris       sdm845     arm64-v8a     GPU       42.3       10.737     10.004     True
mobilenet_v2                   MI MAX        msm8952    arm64-v8a     GPU       129.123    42.584     39.552     True
mobilenet_v2                   BKL-AL00      kirin970   arm64-v8a     GPU       753.43     1170.291   48.016     True
mobilenet_v2                   polaris       sdm845     armeabi-v7a   CPU       16.035     69.761     41.627     False
mobilenet_v2                   MI MAX        msm8952    armeabi-v7a   CPU       31.319     86.206     67.586     False
mobilenet_v2                   BKL-AL00      kirin970   armeabi-v7a   CPU       22.521     137.963    132.012    False
mobilenet_v2                   polaris       sdm845     arm64-v8a     CPU       10.641     80.509     31.985     False
mobilenet_v2                   MI MAX        msm8952    arm64-v8a     CPU       32.225     86.345     54.7       False
mobilenet_v2                   BKL-AL00      kirin970   arm64-v8a     CPU       20.208     97.295     93.987     False
deeplab_v3_plus_mobilenet_v2   polaris       sdm845     armeabi-v7a   GPU       56.512     129.422    128.976    True
deeplab_v3_plus_mobilenet_v2   MI MAX        msm8952    armeabi-v7a   GPU       145.582    899.824    896.452    True
deeplab_v3_plus_mobilenet_v2   BKL-AL00      kirin970   armeabi-v7a   GPU       771.122    2096.33    651.999    True
deeplab_v3_plus_mobilenet_v2   polaris       sdm845     armeabi-v7a   CPU       34.084     951.812    932.764    False
deeplab_v3_plus_mobilenet_v2   MI MAX        msm8952    armeabi-v7a   CPU       91.383     1543.423   1628.255   False
deeplab_v3_plus_mobilenet_v2   BKL-AL00      kirin970   armeabi-v7a   CPU       67.022     2885.098   2872.558   False
deeplab_v3_plus_mobilenet_v2   polaris       sdm845     arm64-v8a     CPU       29.376     656.16     614.679    False
deeplab_v3_plus_mobilenet_v2   MI MAX        msm8952    arm64-v8a     CPU       99.986     1170.636   1469.199   False
deeplab_v3_plus_mobilenet_v2   BKL-AL00      kirin970   arm64-v8a     CPU       55.476     1796.491   1793.253   False
mobilenet_v1                   polaris       sdm845     armeabi-v7a   GPU       45.551     13.858     13.544     True
mobilenet_v1                   MI MAX        msm8952    armeabi-v7a   GPU       114.037    65.088     61.603     True
mobilenet_v1                   BKL-AL00      kirin970   armeabi-v7a   GPU       734.51     1211.078   49.318     True
mobilenet_v1                   polaris       sdm845     arm64-v8a     GPU       45.378     13.689     12.826     True
mobilenet_v1                   MI MAX        msm8952    arm64-v8a     GPU       110.526    64.566     61.696     True
mobilenet_v1                   BKL-AL00      kirin970   arm64-v8a     GPU       730.271    1135.675   48.124     True
mobilenet_v1                   polaris       sdm845     armeabi-v7a   CPU       6.874      79.032     49.676     False
mobilenet_v1                   MI MAX        msm8952    armeabi-v7a   CPU       18.332     121.923    88.207     False
mobilenet_v1                   BKL-AL00      kirin970   armeabi-v7a   CPU       13.0       172.239    164.469    False
mobilenet_v1                   polaris       sdm845     arm64-v8a     CPU       11.347     90.748     32.888     False
mobilenet_v1                   MI MAX        msm8952    arm64-v8a     CPU       18.358     113.023    71.16      False
mobilenet_v1                   BKL-AL00      kirin970   arm64-v8a     CPU       11.666     111.706    107.818    False
resnet_v2_50                   polaris       sdm845     armeabi-v7a   GPU       124.229    95.537     93.047     True
resnet_v2_50                   MI MAX        msm8952    armeabi-v7a   GPU       280.575    637.789    636.295    True
resnet_v2_50                   BKL-AL00      kirin970   armeabi-v7a   GPU       747.875    1596.039   450.651    True
resnet_v2_50                   polaris       sdm845     armeabi-v7a   CPU       18.57      556.961    394.792    False
resnet_v2_50                   MI MAX        msm8952    armeabi-v7a   CPU       44.175     1240.632   734.156    False
resnet_v2_50                   BKL-AL00      kirin970   armeabi-v7a   CPU       26.034     2505.979   1284.285   False
resnet_v2_50                   polaris       sdm845     arm64-v8a     CPU       17.241     438.925    261.949    False
resnet_v2_50                   MI MAX        msm8952    arm64-v8a     CPU       48.691     1143.032   566.313    False
resnet_v2_50                   BKL-AL00      kirin970   arm64-v8a     CPU       23.979     2169.373   499.587    False
vgg16                          polaris       sdm845     armeabi-v7a   CPU       15.537     924.855    438.6      False
vgg16                          MI MAX        msm8952    armeabi-v7a   CPU       40.055     2926.202   800.783    False
vgg16                          BKL-AL00      kirin970   armeabi-v7a   CPU       21.732     2514.862   1242.532   False
vgg16                          polaris       sdm845     arm64-v8a     CPU       12.837     786.419    332.642    False
vgg16                          MI MAX        msm8952    arm64-v8a     CPU       40.693     2794.225   666.285    False
vgg16                          BKL-AL00      kirin970   arm64-v8a     CPU       20.855     2581.558   1043.35    False
vgg16                          polaris       sdm845     armeabi-v7a   GPU       679.21     128.214    125.523    True
vgg16                          MI MAX        msm8952    armeabi-v7a   GPU       1527.823   806.779    761.073    True
vgg16                          BKL-AL00      kirin970   armeabi-v7a   GPU       1893.529   2551.389   1042.256   True
inception_v3_dsp               polaris       sdm845     armeabi-v7a   HEXAGON   585.899    77.921     38.875     False
inception_v3                   polaris       sdm845     armeabi-v7a   CPU       19.726     631.444    481.732    False
inception_v3                   MI MAX        msm8952    armeabi-v7a   CPU       47.674     958.758    839.108    False
inception_v3                   BKL-AL00      kirin970   armeabi-v7a   CPU       29.131     760.945    1194.063   False
inception_v3                   polaris       sdm845     arm64-v8a     CPU       22.251     578.611    425.145    False
inception_v3                   MI MAX        msm8952    arm64-v8a     CPU       50.948     888.531    761.826    False
inception_v3                   BKL-AL00      kirin970   arm64-v8a     CPU       27.106     668.552    789.08     False
inception_v3                   polaris       sdm845     armeabi-v7a   GPU       101.199    92.578     91.602     True
inception_v3                   MI MAX        msm8952    armeabi-v7a   GPU       257.311    588.829    586.779    True
inception_v3                   BKL-AL00      kirin970   armeabi-v7a   GPU       770.779    1621.834   436.877    True
squeezenet_v1_1                polaris       sdm845     armeabi-v7a   GPU       33.615     10.905     10.971     True
squeezenet_v1_1                MI MAX        msm8952    armeabi-v7a   GPU       83.183     47.273     44.548     True
squeezenet_v1_1                BKL-AL00      kirin970   armeabi-v7a   GPU       268.714    437.084    39.404     True
squeezenet_v1_0                polaris       sdm845     armeabi-v7a   GPU       45.145     16.719     15.0       True
squeezenet_v1_0                MI MAX        msm8952    armeabi-v7a   GPU       98.571     76.282     72.081     True
squeezenet_v1_0                BKL-AL00      kirin970   armeabi-v7a   GPU       403.515    1165.101   63.392     True
squeezenet_v1_0                polaris       sdm845     armeabi-v7a   CPU       7.393      94.284     60.057     False
squeezenet_v1_0                MI MAX        msm8952    armeabi-v7a   CPU       27.664     171.195    110.325    False
squeezenet_v1_0                BKL-AL00      kirin970   armeabi-v7a   CPU       14.84      169.715    93.174     False
squeezenet_v1_0                polaris       sdm845     arm64-v8a     CPU       11.9       117.696    49.342     False
squeezenet_v1_0                MI MAX        msm8952    arm64-v8a     CPU       27.554     170.987    95.552     False
squeezenet_v1_0                BKL-AL00      kirin970   arm64-v8a     CPU       13.76      121.544    79.353     False
squeezenet_v1_1                polaris       sdm845     arm64-v8a     CPU       9.583      61.783     25.376     False
squeezenet_v1_1                MI MAX        msm8952    arm64-v8a     CPU       21.424     98.661     53.031     False
squeezenet_v1_1                BKL-AL00      kirin970   arm64-v8a     CPU       11.005     67.381     41.086     False

More recent results will be available in the gitlab mirror project CI page soon.

A dedicated mobile device deep learning framework benchmark project MobileAIBench is available here: https://github.com/XiaoMi/mobile-ai-bench

When I run fast_style_transfer_scream model ,I met this error.Please help me.

lyp@lyp:~/mace-master/bazel-bin/mace/tools/validation$ ./mace_run_static --input_file=input/4.jpg
I mace/tools/validation/fast.cc:428] model name: fast_style_transfer_scream
I mace/tools/validation/fast.cc:429] mace version: unknown-20180705
I mace/tools/validation/fast.cc:430] input node: img_placeholder
I mace/tools/validation/fast.cc:431] input shape: 1,480,640,3
I mace/tools/validation/fast.cc:432] output node: add_37
I mace/tools/validation/fast.cc:433] output shape: 1,480,640,3
I mace/tools/validation/fast.cc:434] input_file: input/4.jpg
I mace/tools/validation/fast.cc:435] output_file: 2.txt
I mace/tools/validation/fast.cc:436] model_data_file: /home/lyp/mace-master/build/fast_style_transfer_scream/model/fast_style_transfer_scream.data
I mace/tools/validation/fast.cc:437] model_file:
I mace/tools/validation/fast.cc:438] device: CPU
I mace/tools/validation/fast.cc:439] round: 1
I mace/tools/validation/fast.cc:440] restart_round: 1
I mace/tools/validation/fast.cc:441] gpu_perf_hint: 3
I mace/tools/validation/fast.cc:442] gpu_priority_hint: 3
I mace/tools/validation/fast.cc:443] omp_num_threads: -1
I mace/tools/validation/fast.cc:444] cpu_affinity_policy: 1
I mace/tools/validation/fast.cc:467] restart round 0
W mace/core/runtime/cpu/cpu_runtime.cc:140] Set OpenMP threads number failed: OpenMP not enabled.
I mace/core/mace.cc:127] Creating MaceEngine, MACE version: unknown-20180705
I mace/core/mace.cc:135] Initializing MaceEngine
I mace/tools/validation/fast.cc:263] Total init latency: 44.215 ms
I mace/tools/validation/fast.cc:311] Warm up run
F ./mace/core/tensor.h:143] Check failed: index < shape_.size() Dim out of range: 3 >= 0

Support cross compilation for ARM Linux

有需求的可以在这里提一下。顺便提供一下:

  1. 芯片类型和参数
  2. Linux版本
  3. 交叉编译器版本
  4. 如果支持GPU的话支持提供一下OpenCL的版本和动态库的路径(32/64位)

关于新加入caffe模型数据后显示数据的问题

HI:
贵司自带的tensorflow对应的cachelabel.txt里面都是固定的字符。如果我在贵司的基础上加入caffe的模型数据,我这个模型数据的识别字符,比如是人名,并不在cachelabel里面,如何添加对应的字符到cachelabel.txt里面?并在识别到后,正确显示对应的字符?

Do you modified nnlib as well?

By checking src code, it looks like there are several API call made which are not support by native nnlib.
like:
hexagon_nn_append_const_node_list
hexagon_nn_append_node_list
hexagon_nn_set_graph_mode

Do you have plan to open the modified nnlib?

Thanks,

build library and test tools error

Hi, I downloaded deeplab-v3-plus-mobilenet-v2.yml from https://github.com/XiaoMi/mace-models. I want to test the model runtime, but when I run the command like below:
python tools/converter.py build --config=mace/models/deeplab-v3-plus/deeplab-v3-plus-mobilenet-v2.yml
I got the error message:

-------------------------------------------------
               Common Configuration
-------------------------------------------------
|       key       |            value            |
=================================================
|     library_name| deeplab-v3-plus-mobilenet-v2|
-------------------------------------------------
|      target_abis| ['armeabi-v7a', 'arm64-v8a']|
-------------------------------------------------
|      target_socs|                           []|
-------------------------------------------------
|       build_type|                         code|
-------------------------------------------------
| embed_model_data|                            0|
-------------------------------------------------
|       linkshared|                            0|
-------------------------------------------------
|           Tuning|                         True|
-------------------------------------------------

* Genearte mace engine creator source
Genearte mace engine creator source done!

**************************************************************
          Convert deeplab_v3_plus_mobilenet_v2 model
**************************************************************

Downloading model, please wait ...
Model downloaded successfully.
ERROR: [Model Converter] model file sha256checksum not match

Can you help me? Thank you!

Is this the framework used by MIUI?

Other questions:

Mobile AI Compute Engine (or MACE for short) is a deep learning inference framework optimized for mobile heterogeneous computing platforms.

  • Where is the deep learning embodied in the framework?
  • Over time, will it automatically optimize computing?

Does it support mobilenet ssd?

From the benchmark result, it has the data about mobilenet_v2, Does it support mobilenet ssd? If not, is there any plan?

Docker build android demo error

Docker could build model successfully in mace-models floder, but run build.sh in mace/exampls/android to build docs/getting_started/models/demo_app_models.yaml error.

error info:


      Model mobilenet_v2 converted          


      Building library          

  • generate common source files...
    generate common source files done

  • Build //mace/tools/validation:mace_run_static with ABI arm64-v8a
    INFO: Analysed target //mace/tools/validation:mace_run_static (23 packages loaded).
    INFO: Found 1 target...
    ERROR: /home/xiaomi/mace/mace/codegen/BUILD:8:1: C++ compilation of rule '//mace/codegen:generated_models' failed (Exit 4): aarch64-linux-android-gcc failed: error executing command
    (cd /root/.cache/bazel/_bazel_root/fa4ec98d408ae719cd72ee65a9d3e6e4/execroot/mace &&
    exec env -
    PWD=/proc/self/cwd
    external/androidndk/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc -fpic -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-canonical-system-headers -O2 -g -DNDEBUG -MD -MF bazel-out/arm64-v8a-opt/bin/mace/codegen/_objs/generated_models/mace/codegen/models/mobilenet_v1/tensor_data.d '-frandom-seed=bazel-out/arm64-v8a-opt/bin/mace/codegen/_objs/generated_models/mace/codegen/models/mobilenet_v1/tensor_data.o' -iquote . -iquote bazel-out/arm64-v8a-opt/genfiles -iquote external/bazel_tools -iquote bazel-out/arm64-v8a-opt/genfiles/external/bazel_tools -iquote external/com_google_protobuf -iquote bazel-out/arm64-v8a-opt/genfiles/external/com_google_protobuf -iquote external/opencl_clhpp -iquote bazel-out/arm64-v8a-opt/genfiles/external/opencl_clhpp -iquote external/opencl_headers -iquote bazel-out/arm64-v8a-opt/genfiles/external/opencl_headers -iquote external/half -iquote bazel-out/arm64-v8a-opt/genfiles/external/half -Ibazel-out/arm64-v8a-opt/bin/external/opencl_headers/_virtual_includes/opencl20_headers -isystem external/com_google_protobuf/src -isystem bazel-out/arm64-v8a-opt/genfiles/external/com_google_protobuf/src -isystem bazel-out/arm64-v8a-opt/bin/external/com_google_protobuf/src '-std=c++11' -D_GLIBCXX_USE_C99_MATH_TR1 -DMACE_OBFUSCATE_LITERALS -O3 -ffunction-sections -fdata-sections -Werror -Wextra -Wno-missing-field-initializers '--sysroot=external/androidndk/ndk/platforms/android-21/arch-arm64' -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -c mace/codegen/models/mobilenet_v1/tensor_data.cc -o bazel-out/arm64-v8a-opt/bin/mace/codegen/_objs/generated_models/mace/codegen/models/mobilenet_v1/tensor_data.o)
    aarch64-linux-android-gcc: internal compiler error: Killed (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See http://source.android.com/source/report-bugs.html for instructions.
    Target //mace/tools/validation:mace_run_static failed to build
    INFO: Elapsed time: 318.051s, Critical Path: 87.93s
    INFO: 109 processes, local.
    FAILED: Build did NOT complete successfully
    Traceback (most recent call last):
    File "tools/converter.py", line 1348, in
    flags.func(flags)
    File "tools/converter.py", line 888, in build_library
    flags.disable_openmp, flags.address_sanitizer)
    File "tools/converter.py", line 851, in generate_library
    tuning, enable_openmp, address_sanitizer)
    File "tools/converter.py", line 720, in build_specific_lib
    address_sanitizer=address_sanitizer
    File "/home/xiaomi/mace/tools/sh_commands.py", line 323, in bazel_build
    *bazel_args)
    File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1413, in call
    raise exc
    sh.ErrorReturnCode_1:

    RAN: /usr/local/bin/bazel build //mace/tools/validation:mace_run_static --config android --cpu=arm64-v8a --define neon=true --define openmp=true --define hexagon=false --config optimization

    STDOUT:

    STDERR:

Suggestion: keep downloaded models to avoid repeated downloading

If the model_file_path of yml file is a URL. Every time I run python tools/converter.py build ***.yml , it will download the model again, even though the model has already downloaded before.

It is a waste of time downloading again and again. Some models are large and costs time.

So, my suggestion is that keep the downloaded models in a separate directory, not temp file.
Then converter.py can firstly check if the model already downloaded in the separate directory. If already there and the checksum is right, then skip the downloading process.

Thanks!

Can it deploy the model on PC?

Like the tile, can it deploy the model on personal computer use MACE? I also want to compile with other cross-compilation tools instead of NDK, is it supported? Thanks!

question about example.cc

python tools/converter.py build --config=docs/getting_started/models/demo_app_models.yaml
运行后生成如下文件:
├── include
│   └── mace
│   └── public
│   ├── mace_engine_factory.h
│   ├── mace.h
│   ├── mace_runtime.h
│   ├── mobilenet_v1.h
│   └── mobilenet_v2.h
├── lib
│   └── arm64-v8a
│   └── libmace_mobilenet.a
├── libmace_mobilenet.tar.gz
├── model
└── _tmp
├── arm64-v8a_e2a4c8972fefd2c3d18824a4b1c58ed9
│   ├── benchmark_model_static
│   └── mace_run_static
├── mobilenet_v1
│   └── f330dec17e45a8626cfb225ddce95051
│   ├── general
│   │   └── arm64-v8a
│   │   └── model_input_input
│   └── model.pb
└── mobilenet_v2
└── d4e627ce1b15ed6f96aefffe315a8dc8
├── general
│   └── arm64-v8a
│   └── model_input_input
└── model.pb

按照这个转换模型之后,example.cc 中有几个参数不知道怎么设置:
FLAGS_opencl_binary_file 这个是什么?
CreateMaceEngineFromProto 和 CreateMaceEngineFromCode 只需要调其中的一个就行了吧?
FLAGS_model_name 是 demo_app_models.yaml中的 mobilenet_v1 或者 mobilenet_v2?
调用 CreateMaceEngineFromCode 的时候,第二个参数 FLAGS_model_data_file 直接设NULL ?

我参考example.cc写了个test文件,用ndk独立编译(不放在mace用bazel编译)
除了要链接 libmace_mobilenet.a ,还需要链接什么别的库吗?

非常感谢

Build library error

python tools/converter.py build --config=models/config.yaml
执行完这个后报错,无法编译通过,错误如下:
ERROR: /home/asd/log_07_01/xiaomi/mace-masternew/mace-master/mace/core/BUILD:19:1: C++ compilation of rule '//mace/core:core' failed (Exit 1): clang failed: error executing command
(cd /home/asd/.cache/bazel/_bazel_asd/aa66681cc04c699005bd8258b00b7111/execroot/mace &&
帮忙确认一下是哪里的问题,谢谢

[sdm660][Inception-v3]Failed to disable DSP DCVS: 2c

step1,
diff --git a/inception-v3/inception-v3-dsp.yml b/inception-v3/inception-v3-dsp.yml
index edba4cb..50d3f7a 100644
--- a/inception-v3/inception-v3-dsp.yml
+++ b/inception-v3/inception-v3-dsp.yml
@@ -1,6 +1,6 @@
library_name: inception-v3-dsp
target_abis: [armeabi-v7a]
-target_socs: [sdm845]
+target_socs: [all]
embed_model_data: 0
build_type: code
models:

step2.
python tools/converter.py build --config=mace-models/inception-v3/inception-v3-dsp.yml

step3.
python tools/converter.py run --config=mace-models/inception-v3/inception-v3-dsp.yml

--------After step3 -----------
It shows error as below:

Init hexagon with max attributes.

Failed to disable DSP DCVS: 2c

F mace.cc:165 Check failed: hexagon_controller_->Config() hexagon config error
Aborted
Traceback (most recent call last):
File "tools/converter.py", line 1348, in
flags.func(flags)
File "tools/converter.py", line 1087, in run_mace
target_soc, serial_num)
File "tools/converter.py", line 1038, in run_specific_target
linkshared=linkshared,
File "/local/mnt/mace/tools/sh_commands.py", line 792, in tuning_run
_err_to_out=True)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1427, in call
return RunningCommand(cmd, call_args, stdin, stdout, stderr)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 774, in init
self.wait()
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 792, in wait
self.handle_command_exit_code(exit_code)
File "/usr/local/lib/python2.7/dist-packages/sh.py", line 815, in handle_command_exit_code
raise exc
sh.ErrorReturnCode_134:

RAN: /usr/bin/adb -s a358dab1 shell sh /data/local/tmp/mace_run/cmd_file-inception_v3_dsp-1530522619.74

STDOUT:

STDERR:

Could you help on this? Thanks!

How to generate inception_v3_q_2015.pb for DSP runtime?

I used below command to generated pb for DSP runtime. The generated graph is not the same as XiaoMi official one(https://cnbj1.fds.api.xiaomi.com/mace/miai-models/inception-v3/inception_v3_q_2015.pb).

~/tensorflow/tensorflow/bazel-bin/tensorflow/tools/graph_transforms/transform_graph
--in_graph=inception-v3.pb
--out_graph=inception-v3_dsp.pb
--inputs='input'
--outputs='InceptionV3/Predictions/Reshape_1'
--transforms='strip_unused_nodes(type=float, shape="1,299,299,3")
strip_unused_nodes(type=float, shape="1,299,299,3")
remove_nodes(op=Identity, op=CheckNumerics)
fold_constants(ignore_errors=true)
fold_batch_norms
fold_old_batch_norms
backport_concatv2
quantize_weights(minimum_size=2)
quantize_nodes
strip_unused_nodes
sort_by_execution_order'

And my generated pb has problem when run in DSP runtime:
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'input' with dtype float and shape [?,299,299,3]
[[Node: input = Placeholderdtype=DT_FLOAT, shape=[?,299,299,3], _device="/job:localhost/replica:0/task:0/device:CPU:0"]]

While XiaoMi's official pb(inception_v3_q_2015.pb) is ok to run .
So how can I generate the pb like inception_v3_q_2015.pb?

Thanks!

Open input file failed

Can anyone help me,thank u!

cloud@cloud-System-Product-Name:~/lyp/mace/bazel-bin/mace/tools/validation$ ./mace_run_static
I mace/tools/validation/mace_run.cc:420] model name: fast_style_transfer_scream
I mace/tools/validation/mace_run.cc:421] mace version: v0.8.1-85-g4c24c63-20180710
I mace/tools/validation/mace_run.cc:422] input node: img_placeholder
I mace/tools/validation/mace_run.cc:423] input shape: 1,480,640,3
I mace/tools/validation/mace_run.cc:424] output node: add_37
I mace/tools/validation/mace_run.cc:425] output shape: 1,480,640,3
I mace/tools/validation/mace_run.cc:426] input_file: /home/cloud/lyp/mace/bazel-bin/mace/tools/validation/chicago.npy
I mace/tools/validation/mace_run.cc:427] output_file:
I mace/tools/validation/mace_run.cc:428] model_data_file: /home/cloud/lyp/mace/builds/fast_style_transfer_scream/model/fast_style_transfer_scream.data
I mace/tools/validation/mace_run.cc:429] model_file: /home/cloud/lyp/mace/builds/fast_style_transfer_scream/model/fast_style_transfer_scream.pb
I mace/tools/validation/mace_run.cc:430] device: CPU
I mace/tools/validation/mace_run.cc:431] round: 1
I mace/tools/validation/mace_run.cc:432] restart_round: 1
I mace/tools/validation/mace_run.cc:433] gpu_perf_hint: 3
I mace/tools/validation/mace_run.cc:434] gpu_priority_hint: 3
I mace/tools/validation/mace_run.cc:435] omp_num_threads: -1
I mace/tools/validation/mace_run.cc:436] cpu_affinity_policy: 1
I mace/tools/validation/mace_run.cc:459] restart round 0
W mace/core/runtime/cpu/cpu_runtime.cc:145] Set OpenMP threads number failed: OpenMP not enabled.
I mace/core/mace.cc:379] Create MaceEngine from model pb
I mace/core/mace.cc:165] Creating MaceEngine, MACE version: v0.8.1-85-g4c24c63-20180710
I mace/core/mace.cc:233] Loading Model Data
I mace/core/mace.cc:173] Initializing MaceEngine
I mace/tools/validation/mace_run.cc:265] Total init latency: 43.999 ms
I mace/tools/validation/mace_run.cc:290] Open input file failed
I mace/core/mace.cc:252] Destroying MaceEngine

fatal error: 'omp.h' file not found

运行命令:

python tools/converter.py build --config=/home/hupeng/model.yaml

应该是在交叉编译阶段,找不到头文件,错误信息如下:

ERROR: /home/hupeng/mace-0.8.1/mace/core/BUILD:19:1: C++ compilation of rule '//mace/core:core' failed (Exit 1): clang failed: error executing command 
  (cd /home/hupeng/.cache/bazel/_bazel_hupeng/38fa9861103f3de5771ea45d946ddd14/execroot/mace && \
  exec env - \
    PATH=/home/hupeng/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:/home/hupeng/bin:/home/hupeng/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin \
    PWD=/proc/self/cwd \
  external/androidndk/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -gcc-toolchain external/androidndk/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64 -target aarch64-none-linux-android -ffunction-sections -funwind-tables -fstack-protector-strong -fpic -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -O2 -g -DNDEBUG -MD -MF bazel-out/arm64-v8a-opt/bin/mace/core/_objs/core/mace/core/runtime/cpu/cpu_runtime.d '-frandom-seed=bazel-out/arm64-v8a-opt/bin/mace/core/_objs/core/mace/core/runtime/cpu/cpu_runtime.o' -iquote . -iquote bazel-out/arm64-v8a-opt/genfiles -iquote external/bazel_tools -iquote bazel-out/arm64-v8a-opt/genfiles/external/bazel_tools -iquote external/com_google_protobuf -iquote bazel-out/arm64-v8a-opt/genfiles/external/com_google_protobuf -iquote external/opencl_clhpp -iquote bazel-out/arm64-v8a-opt/genfiles/external/opencl_clhpp -iquote external/opencl_headers -iquote bazel-out/arm64-v8a-opt/genfiles/external/opencl_headers -iquote external/half -iquote bazel-out/arm64-v8a-opt/genfiles/external/half -Ibazel-out/arm64-v8a-opt/bin/external/opencl_headers/_virtual_includes/opencl20_headers -isystem external/com_google_protobuf/src -isystem bazel-out/arm64-v8a-opt/genfiles/external/com_google_protobuf/src -isystem bazel-out/arm64-v8a-opt/bin/external/com_google_protobuf/src '-std=c++11' -D_GLIBCXX_USE_C99_MATH_TR1 -DMACE_OBFUSCATE_LITERALS -O3 -ffunction-sections -fdata-sections -Werror -Wextra -Wno-missing-field-initializers -fopenmp -DMACE_ENABLE_OPENMP -DMACE_ENABLE_OPENCL -DMACE_ENABLE_NEON '--sysroot=external/androidndk/ndk/platforms/android-21/arch-arm64' -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include -isystem external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/backward -c mace/core/runtime/cpu/cpu_runtime.cc -o bazel-out/arm64-v8a-opt/bin/mace/core/_objs/core/mace/core/runtime/cpu/cpu_runtime.o)

Use --sandbox_debug to see verbose messages from the sandbox
mace/core/runtime/cpu/cpu_runtime.cc:18:10: fatal error: 'omp.h' file not found
#include <omp.h>
         ^
1 error generated.
Target //mace/tools/validation:mace_run_static failed to build
INFO: Elapsed time: 136.445s, Critical Path: 109.80s
INFO: 186 processes: 186 linux-sandbox.
FAILED: Build did NOT complete successfully
Traceback (most recent call last):
  File "tools/converter.py", line 1348, in <module>
    flags.func(flags)
  File "tools/converter.py", line 888, in build_library
    flags.disable_openmp, flags.address_sanitizer)
  File "tools/converter.py", line 851, in generate_library
    tuning, enable_openmp, address_sanitizer)
  File "tools/converter.py", line 720, in build_specific_lib
    address_sanitizer=address_sanitizer
  File "/home/hupeng/mace-0.8.1/tools/sh_commands.py", line 323, in bazel_build
    *bazel_args)
  File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1413, in __call__
    raise exc
sh.ErrorReturnCode_1: 

  RAN: /usr/bin/bazel build //mace/tools/validation:mace_run_static --config android --cpu=arm64-v8a --define neon=true --define openmp=true --define hexagon=false --config optimization

  STDOUT:


  STDERR:

android studio贵司的examples无法编译通过

我用的是armeabi-v7a
用贵司的demo.yaml,j
改了对应的arm64_v8a,为armeabi-v7a
把build生成的include和静态库也放到应的目录下了
cmakelist.txt内 file(GLOB static_file ${CMAKE_SOURCE_DIR}/src/main/cpp/lib/armeabi-v7a/.a)这个位置也调整了
mace-master/mace/examples/android/macelibrary/build.gradle
这个位置也调整abiFilters "armeabi-v7a"
Error:error: undefined reference to 'mace::MaceEngine::Init(mace::NetDef const
, std::__ndk1::vector<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator >, std::__ndk1::allocator<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > > > const&, std::__ndk1::vector<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator >, std::__ndk1::allocator<std::__ndk1::basic_string<char, std::__ndk1::char_traits, std::__ndk1::allocator > > > const&, unsigned char const*)'
最后link时报未定义,帮忙确认一下是哪里的问题,谢谢

webgl 加速卷积神经网络计算

本人是前端工程师,近期研究一个基础项目:如何用webgl来加速大尺度卷积神经网络的计算。很赞成你们专注前端的观点,更进一步,我坚信浏览器能力会不断提升,会承担越来越大的作用。
我们团队在上海仪电AI大赛里演示了这个项目,并获得三等奖。
下面这个链接是宣讲keynote:http://hdcafe.com/new_computing/new_computing.key
希望能够一起探讨合作

Android Example building Macbook Error

homedembp:android home$ ./build.sh 
~/mace ~/mace/mace/examples/android
----------------------------------
       Common Configuration       
----------------------------------
|       key       |    value     |
==================================
|     library_name|     mobilenet|
----------------------------------
|      target_abis| ['arm64-v8a']|
----------------------------------
|      target_socs|            []|
----------------------------------
|       build_type|          code|
----------------------------------
| embed_model_data|             1|
----------------------------------
|       linkshared|             0|
----------------------------------
|           Tuning|          True|
----------------------------------

* Genearte mace engine creator source
Genearte mace engine creator source done!

**********************************************
          Convert mobilenet_v1 model          
**********************************************

Downloading model, please wait ...
Model downloaded successfully.
ERROR: [Model Converter] model file sha256checksum not match
homedembp:android home$ ./build.sh 
~/mace ~/mace/mace/examples/android
----------------------------------
       Common Configuration       
----------------------------------
|       key       |    value     |
==================================
|     library_name|     mobilenet|
----------------------------------
|      target_abis| ['arm64-v8a']|
----------------------------------
|      target_socs|            []|
----------------------------------
|       build_type|          code|
----------------------------------
| embed_model_data|             1|
----------------------------------
|       linkshared|             0|
----------------------------------
|           Tuning|          True|
----------------------------------

* Genearte mace engine creator source
Genearte mace engine creator source done!

**********************************************
          Convert mobilenet_v1 model          
**********************************************

Downloading model, please wait ...
Model downloaded successfully.
INFO: Analysed target //mace/python/tools:converter (0 packages loaded).
INFO: Found 1 target...
Target //mace/python/tools:converter up-to-date:
  bazel-bin/mace/python/tools/converter
INFO: Elapsed time: 1.172s, Critical Path: 0.01s
INFO: Build completed successfully, 1 total action

/Library/Python/2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
Transform model to one that can better run on device
Fold reshape and softmax: MobilenetV1/Predictions/Softmax(Softmax)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_0/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D(Conv2D)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_0/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_0/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D(Conv2D)
Transpose filters to OIHW
Reshape fully connected weight shape
Transform buffer to image
update op with float data type
Sort by execution
Final ops:
input (BufferToImage): [[1L, 224L, 224L, 3L]]
MobilenetV1/Conv2d_0/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_0/Relu6 (Conv2D): [[1L, 112L, 112L, 32L]]
MobilenetV1/Conv2d_1_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6 (DepthwiseConv2d): [[1L, 112L, 112L, 32L]]
MobilenetV1/Conv2d_1_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6 (Conv2D): [[1L, 112L, 112L, 64L]]
MobilenetV1/Conv2d_2_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6 (DepthwiseConv2d): [[1L, 56L, 56L, 64L]]
MobilenetV1/Conv2d_2_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6 (Conv2D): [[1L, 56L, 56L, 128L]]
MobilenetV1/Conv2d_3_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6 (DepthwiseConv2d): [[1L, 56L, 56L, 128L]]
MobilenetV1/Conv2d_3_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6 (Conv2D): [[1L, 56L, 56L, 128L]]
MobilenetV1/Conv2d_4_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6 (DepthwiseConv2d): [[1L, 28L, 28L, 128L]]
MobilenetV1/Conv2d_4_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6 (Conv2D): [[1L, 28L, 28L, 256L]]
MobilenetV1/Conv2d_5_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6 (DepthwiseConv2d): [[1L, 28L, 28L, 256L]]
MobilenetV1/Conv2d_5_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6 (Conv2D): [[1L, 28L, 28L, 256L]]
MobilenetV1/Conv2d_6_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 256L]]
MobilenetV1/Conv2d_6_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6 (Conv2D): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_7_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_7_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6 (Conv2D): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_8_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_8_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6 (Conv2D): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_9_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_9_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6 (Conv2D): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_10_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_10_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6 (Conv2D): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_11_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_11_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6 (Conv2D): [[1L, 14L, 14L, 512L]]
MobilenetV1/Conv2d_12_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6 (DepthwiseConv2d): [[1L, 7L, 7L, 512L]]
MobilenetV1/Conv2d_12_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6 (Conv2D): [[1L, 7L, 7L, 1024L]]
MobilenetV1/Conv2d_13_depthwise/depthwise_weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6 (DepthwiseConv2d): [[1L, 7L, 7L, 1024L]]
MobilenetV1/Conv2d_13_pointwise/weights_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6 (Conv2D): [[1L, 7L, 7L, 1024L]]
MobilenetV1/Logits/AvgPool_1a/AvgPool (Pooling): [[1L, 1L, 1L, 1024L]]
MobilenetV1/Logits/Conv2d_1c_1x1/weights_0_b2i (BufferToImage): []
MobilenetV1/Logits/Conv2d_1c_1x1/biases_0_b2i (BufferToImage): []
MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D (Conv2D): [[1L, 1L, 1L, 1001L]]
MobilenetV1/Logits/SpatialSqueeze (Squeeze): [[1L, 1001L]]
MobilenetV1/Predictions/Softmax (Softmax): [[1L, 1001L]]
mace_output_node_MobilenetV1/Predictions/Reshape_1 (ImageToBuffer): []
start optimize gpu memory.
total op: 89
20000 [224L, 224L]
20001 [1792L, 112L]
20002 [1792L, 112L]
origin mem: 5197243, optimized mem: 1806336
GPU memory optimization done.
Fold reshape and softmax: MobilenetV1/Predictions/Softmax(Softmax)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_0/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D(Conv2D)
Fold conv and bn: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D(Conv2D)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_0/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D(Conv2D)
Fold biasadd: MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_0/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Conv2D(Conv2D)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Conv2D(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_0/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6(Conv2D)
Transpose output shapes: MobilenetV1/Logits/AvgPool_1a/AvgPool(Pooling)
Transpose output shapes: MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D(Conv2D)
Transpose squeeze args: MobilenetV1/Logits/SpatialSqueeze(Squeeze)
Transpose output shapes: MobilenetV1/Logits/SpatialSqueeze(Squeeze)
Transpose output shapes: MobilenetV1/Predictions/Softmax(Softmax)
Transpose input/output to NCHW
Reshape fully connected weight shape
update op with float data type
Sort by execution
Final ops:
input (Transpose): [[1L, 3L, 224L, 224L]]
MobilenetV1/MobilenetV1/Conv2d_0/Relu6 (Conv2D): [[1L, 32L, 112L, 112L]]
MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6 (DepthwiseConv2d): [[1L, 32L, 112L, 112L]]
MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6 (Conv2D): [[1L, 64L, 112L, 112L]]
MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6 (DepthwiseConv2d): [[1L, 64L, 56L, 56L]]
MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6 (Conv2D): [[1L, 128L, 56L, 56L]]
MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6 (DepthwiseConv2d): [[1L, 128L, 56L, 56L]]
MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6 (Conv2D): [[1L, 128L, 56L, 56L]]
MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6 (DepthwiseConv2d): [[1L, 128L, 28L, 28L]]
MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6 (Conv2D): [[1L, 256L, 28L, 28L]]
MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6 (DepthwiseConv2d): [[1L, 256L, 28L, 28L]]
MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6 (Conv2D): [[1L, 256L, 28L, 28L]]
MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6 (DepthwiseConv2d): [[1L, 256L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6 (Conv2D): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6 (DepthwiseConv2d): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6 (Conv2D): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6 (DepthwiseConv2d): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6 (Conv2D): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6 (DepthwiseConv2d): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6 (Conv2D): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6 (DepthwiseConv2d): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6 (Conv2D): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6 (DepthwiseConv2d): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6 (Conv2D): [[1L, 512L, 14L, 14L]]
MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6 (DepthwiseConv2d): [[1L, 512L, 7L, 7L]]
MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6 (Conv2D): [[1L, 1024L, 7L, 7L]]
MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6 (DepthwiseConv2d): [[1L, 1024L, 7L, 7L]]
MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6 (Conv2D): [[1L, 1024L, 7L, 7L]]
MobilenetV1/Logits/AvgPool_1a/AvgPool (Pooling): [[1L, 1024L, 1L, 1L]]
MobilenetV1/Logits/Conv2d_1c_1x1/Conv2D (Conv2D): [[1L, 1001L, 1L, 1L]]
MobilenetV1/Logits/SpatialSqueeze (Squeeze): [[1L, 1001L]]
MobilenetV1/Predictions/Softmax (Softmax): [[1L, 1001L]]
mace_output_node_MobilenetV1/Predictions/Reshape_1 (Identity): [[1L, 1001L]]
start optimize cpu memory.
total op: 33
0 [401408L]
1 [802816L]
origin mem: 5198244, optimized mem: 1204224
CPU memory optimization done.
Merge cpu and gpu ops together
Merge done
************************************************
          Model mobilenet_v1 converted          
************************************************

**********************************************
          Convert mobilenet_v2 model          
**********************************************

Downloading model, please wait ...
Model downloaded successfully.
INFO: Analysed target //mace/python/tools:converter (0 packages loaded).
INFO: Found 1 target...
Target //mace/python/tools:converter up-to-date:
  bazel-bin/mace/python/tools/converter
INFO: Elapsed time: 0.197s, Critical Path: 0.01s
INFO: Build completed successfully, 1 total action

/Library/Python/2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
Transform model to one that can better run on device
Fold reshape and softmax: MobilenetV2/Predictions/Softmax(Softmax)
Fold depthwise conv and bn: MobilenetV2/expanded_conv/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_1/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_2/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_3/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_4/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_5/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_6/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_7/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_8/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_9/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_10/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_11/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_12/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_13/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_14/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_15/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_16/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/Conv/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_1/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_1/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_1/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_2/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_2/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_2/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_3/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_3/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_3/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_4/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_4/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_4/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_5/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_5/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_5/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_6/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_6/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_6/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_7/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_7/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_7/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_8/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_8/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_8/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_9/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_9/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_9/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_10/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_10/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_10/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_11/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_11/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_11/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_12/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_12/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_12/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_13/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_13/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_13/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_14/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_14/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_14/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_15/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_15/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_15/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_16/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_16/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_16/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/Conv_1/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D(Conv2D)
Fold activation: MobilenetV2/Conv/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_1/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_1/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_2/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_2/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_3/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_3/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_4/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_4/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_5/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_5/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_6/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_6/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_7/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_7/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_8/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_8/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_9/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_9/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_10/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_10/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_11/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_11/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_12/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_12/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_13/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_13/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_14/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_14/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_15/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_15/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_16/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_16/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/Conv_1/Conv2D(Conv2D)
Transpose filters to OIHW
Reshape fully connected weight shape
Transform buffer to image
update op with float data type
Sort by execution
Final ops:
input (BufferToImage): [[1L, 224L, 224L, 3L]]
Const_90_0_b2i (BufferToImage): []
MobilenetV2/Conv/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/Conv/Relu6 (Conv2D): [[1L, 112L, 112L, 32L]]
Const_238_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv/depthwise/Relu6 (DepthwiseConv2d): [[1L, 112L, 112L, 32L]]
Const_167_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv/project/Conv2D (Conv2D): [[1L, 112L, 112L, 16L]]
Const_165_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_1/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_1/expand/Relu6 (Conv2D): [[1L, 112L, 112L, 96L]]
Const_99_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_1/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_1/depthwise/Relu6 (DepthwiseConv2d): [[1L, 56L, 56L, 96L]]
Const_73_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_1/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_1/project/Conv2D (Conv2D): [[1L, 56L, 56L, 24L]]
Const_3_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_2/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_2/expand/Relu6 (Conv2D): [[1L, 56L, 56L, 144L]]
Const_119_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_2/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_2/depthwise/Relu6 (DepthwiseConv2d): [[1L, 56L, 56L, 144L]]
Const_115_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_2/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_2/project/Conv2D (Conv2D): [[1L, 56L, 56L, 24L]]
MobilenetV2/expanded_conv_2/add (Eltwise): [[1L, 56L, 56L, 24L]]
Const_255_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_3/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_3/expand/Relu6 (Conv2D): [[1L, 56L, 56L, 144L]]
Const_216_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_3/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_3/depthwise/Relu6 (DepthwiseConv2d): [[1L, 28L, 28L, 144L]]
Const_157_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_3/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_3/project/Conv2D (Conv2D): [[1L, 28L, 28L, 32L]]
Const_227_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_4/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_4/expand/Relu6 (Conv2D): [[1L, 28L, 28L, 192L]]
Const_221_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_4/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_4/depthwise/Relu6 (DepthwiseConv2d): [[1L, 28L, 28L, 192L]]
Const_193_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_4/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_4/project/Conv2D (Conv2D): [[1L, 28L, 28L, 32L]]
MobilenetV2/expanded_conv_4/add (Eltwise): [[1L, 28L, 28L, 32L]]
Const_243_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_5/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_5/expand/Relu6 (Conv2D): [[1L, 28L, 28L, 192L]]
Const_102_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_5/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_5/depthwise/Relu6 (DepthwiseConv2d): [[1L, 28L, 28L, 192L]]
Const_215_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_5/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_5/project/Conv2D (Conv2D): [[1L, 28L, 28L, 32L]]
MobilenetV2/expanded_conv_5/add (Eltwise): [[1L, 28L, 28L, 32L]]
Const_226_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_6/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_6/expand/Relu6 (Conv2D): [[1L, 28L, 28L, 192L]]
Const_163_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_6/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_6/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 192L]]
Const_229_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_6/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_6/project/Conv2D (Conv2D): [[1L, 14L, 14L, 64L]]
Const_104_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_7/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_7/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 384L]]
Const_254_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_7/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_7/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 384L]]
Const_143_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_7/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_7/project/Conv2D (Conv2D): [[1L, 14L, 14L, 64L]]
MobilenetV2/expanded_conv_7/add (Eltwise): [[1L, 14L, 14L, 64L]]
Const_25_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_8/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_8/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 384L]]
Const_142_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_8/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_8/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 384L]]
Const_202_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_8/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_8/project/Conv2D (Conv2D): [[1L, 14L, 14L, 64L]]
MobilenetV2/expanded_conv_8/add (Eltwise): [[1L, 14L, 14L, 64L]]
Const_225_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_9/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_9/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 384L]]
Const_129_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_9/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_9/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 384L]]
Const_98_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_9/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_9/project/Conv2D (Conv2D): [[1L, 14L, 14L, 64L]]
MobilenetV2/expanded_conv_9/add (Eltwise): [[1L, 14L, 14L, 64L]]
Const_169_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_10/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_10/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 384L]]
Const_2_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_10/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_10/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 384L]]
Const_246_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_10/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_10/project/Conv2D (Conv2D): [[1L, 14L, 14L, 96L]]
Const_162_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_11/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_11/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 576L]]
Const_87_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_11/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_11/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 576L]]
Const_106_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_11/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_11/project/Conv2D (Conv2D): [[1L, 14L, 14L, 96L]]
MobilenetV2/expanded_conv_11/add (Eltwise): [[1L, 14L, 14L, 96L]]
Const_52_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_12/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_12/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 576L]]
Const_22_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_12/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_12/depthwise/Relu6 (DepthwiseConv2d): [[1L, 14L, 14L, 576L]]
Const_40_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_12/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_12/project/Conv2D (Conv2D): [[1L, 14L, 14L, 96L]]
MobilenetV2/expanded_conv_12/add (Eltwise): [[1L, 14L, 14L, 96L]]
Const_114_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_13/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_13/expand/Relu6 (Conv2D): [[1L, 14L, 14L, 576L]]
Const_65_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_13/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_13/depthwise/Relu6 (DepthwiseConv2d): [[1L, 7L, 7L, 576L]]
Const_242_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_13/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_13/project/Conv2D (Conv2D): [[1L, 7L, 7L, 160L]]
Const_203_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_14/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_14/expand/Relu6 (Conv2D): [[1L, 7L, 7L, 960L]]
Const_250_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_14/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_14/depthwise/Relu6 (DepthwiseConv2d): [[1L, 7L, 7L, 960L]]
Const_92_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_14/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_14/project/Conv2D (Conv2D): [[1L, 7L, 7L, 160L]]
MobilenetV2/expanded_conv_14/add (Eltwise): [[1L, 7L, 7L, 160L]]
Const_133_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_15/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_15/expand/Relu6 (Conv2D): [[1L, 7L, 7L, 960L]]
Const_130_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_15/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_15/depthwise/Relu6 (DepthwiseConv2d): [[1L, 7L, 7L, 960L]]
Const_258_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_15/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_15/project/Conv2D (Conv2D): [[1L, 7L, 7L, 160L]]
MobilenetV2/expanded_conv_15/add (Eltwise): [[1L, 7L, 7L, 160L]]
Const_60_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_16/expand/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_16/expand/Relu6 (Conv2D): [[1L, 7L, 7L, 960L]]
Const_248_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_16/depthwise/BatchNorm/offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_16/depthwise/Relu6 (DepthwiseConv2d): [[1L, 7L, 7L, 960L]]
Const_100_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_16/project/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/expanded_conv_16/project/Conv2D (Conv2D): [[1L, 7L, 7L, 320L]]
Const_71_0_b2i (BufferToImage): []
MobilenetV2/Conv_1/Conv2D_bn_offset_0_b2i (BufferToImage): []
MobilenetV2/Conv_1/Relu6 (Conv2D): [[1L, 7L, 7L, 1280L]]
MobilenetV2/Logits/AvgPool (Pooling): [[1L, 1L, 1L, 1280L]]
Const_222_0_b2i (BufferToImage): []
Const_69_0_b2i (BufferToImage): []
MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D (Conv2D): [[1L, 1L, 1L, 1001L]]
MobilenetV2/Logits/Squeeze (Squeeze): [[1L, 1001L]]
MobilenetV2/Predictions/Softmax (Softmax): [[1L, 1001L]]
mace_output_node_MobilenetV2/Predictions/Reshape_1 (ImageToBuffer): []
start optimize gpu memory.
total op: 174
20000 [224L, 224L]
20001 [2016L, 112L]
20002 [2688L, 112L]
20003 [2016L, 56L]
origin mem: 7049307, optimized mem: 2759680
GPU memory optimization done.
Fold reshape and softmax: MobilenetV2/Predictions/Softmax(Softmax)
Fold depthwise conv and bn: MobilenetV2/expanded_conv/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_1/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_2/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_3/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_4/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_5/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_6/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_7/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_8/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_9/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_10/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_11/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_12/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_13/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_14/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_15/depthwise/depthwise(DepthwiseConv2d)
Fold depthwise conv and bn: MobilenetV2/expanded_conv_16/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/Conv/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_1/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_1/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_1/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_2/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_2/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_2/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_3/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_3/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_3/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_4/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_4/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_4/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_5/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_5/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_5/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_6/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_6/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_6/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_7/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_7/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_7/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_8/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_8/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_8/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_9/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_9/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_9/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_10/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_10/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_10/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_11/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_11/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_11/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_12/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_12/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_12/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_13/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_13/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_13/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_14/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_14/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_14/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_15/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_15/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_15/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_16/expand/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/expanded_conv_16/depthwise/depthwise(DepthwiseConv2d)
Fold biasadd: MobilenetV2/expanded_conv_16/project/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/Conv_1/Conv2D(Conv2D)
Fold biasadd: MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D(Conv2D)
Fold activation: MobilenetV2/Conv/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_1/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_1/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_2/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_2/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_3/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_3/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_4/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_4/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_5/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_5/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_6/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_6/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_7/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_7/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_8/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_8/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_9/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_9/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_10/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_10/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_11/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_11/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_12/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_12/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_13/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_13/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_14/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_14/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_15/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_15/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/expanded_conv_16/expand/Conv2D(Conv2D)
Fold activation: MobilenetV2/expanded_conv_16/depthwise/depthwise(DepthwiseConv2d)
Fold activation: MobilenetV2/Conv_1/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/Conv/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_1/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_1/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_1/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_2/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_2/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_2/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_2/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_3/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_3/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_3/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_4/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_4/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_4/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_4/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_5/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_5/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_5/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_5/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_6/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_6/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_6/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_7/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_7/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_7/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_7/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_8/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_8/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_8/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_8/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_9/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_9/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_9/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_9/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_10/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_10/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_10/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_11/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_11/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_11/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_11/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_12/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_12/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_12/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_12/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_13/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_13/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_13/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_14/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_14/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_14/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_14/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_15/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_15/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_15/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_15/add(Eltwise)
Transpose output shapes: MobilenetV2/expanded_conv_16/expand/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/expanded_conv_16/depthwise/Relu6(DepthwiseConv2d)
Transpose output shapes: MobilenetV2/expanded_conv_16/project/Conv2D(Conv2D)
Transpose output shapes: MobilenetV2/Conv_1/Relu6(Conv2D)
Transpose output shapes: MobilenetV2/Logits/AvgPool(Pooling)
Transpose output shapes: MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D(Conv2D)
Transpose squeeze args: MobilenetV2/Logits/Squeeze(Squeeze)
Transpose output shapes: MobilenetV2/Logits/Squeeze(Squeeze)
Transpose output shapes: MobilenetV2/Predictions/Softmax(Softmax)
Transpose input/output to NCHW
Reshape fully connected weight shape
update op with float data type
Sort by execution
Final ops:
input (Transpose): [[1L, 3L, 224L, 224L]]
MobilenetV2/Conv/Relu6 (Conv2D): [[1L, 32L, 112L, 112L]]
MobilenetV2/expanded_conv/depthwise/Relu6 (DepthwiseConv2d): [[1L, 32L, 112L, 112L]]
MobilenetV2/expanded_conv/project/Conv2D (Conv2D): [[1L, 16L, 112L, 112L]]
MobilenetV2/expanded_conv_1/expand/Relu6 (Conv2D): [[1L, 96L, 112L, 112L]]
MobilenetV2/expanded_conv_1/depthwise/Relu6 (DepthwiseConv2d): [[1L, 96L, 56L, 56L]]
MobilenetV2/expanded_conv_1/project/Conv2D (Conv2D): [[1L, 24L, 56L, 56L]]
MobilenetV2/expanded_conv_2/expand/Relu6 (Conv2D): [[1L, 144L, 56L, 56L]]
MobilenetV2/expanded_conv_2/depthwise/Relu6 (DepthwiseConv2d): [[1L, 144L, 56L, 56L]]
MobilenetV2/expanded_conv_2/project/Conv2D (Conv2D): [[1L, 24L, 56L, 56L]]
MobilenetV2/expanded_conv_2/add (Eltwise): [[1L, 24L, 56L, 56L]]
MobilenetV2/expanded_conv_3/expand/Relu6 (Conv2D): [[1L, 144L, 56L, 56L]]
MobilenetV2/expanded_conv_3/depthwise/Relu6 (DepthwiseConv2d): [[1L, 144L, 28L, 28L]]
MobilenetV2/expanded_conv_3/project/Conv2D (Conv2D): [[1L, 32L, 28L, 28L]]
MobilenetV2/expanded_conv_4/expand/Relu6 (Conv2D): [[1L, 192L, 28L, 28L]]
MobilenetV2/expanded_conv_4/depthwise/Relu6 (DepthwiseConv2d): [[1L, 192L, 28L, 28L]]
MobilenetV2/expanded_conv_4/project/Conv2D (Conv2D): [[1L, 32L, 28L, 28L]]
MobilenetV2/expanded_conv_4/add (Eltwise): [[1L, 32L, 28L, 28L]]
MobilenetV2/expanded_conv_5/expand/Relu6 (Conv2D): [[1L, 192L, 28L, 28L]]
MobilenetV2/expanded_conv_5/depthwise/Relu6 (DepthwiseConv2d): [[1L, 192L, 28L, 28L]]
MobilenetV2/expanded_conv_5/project/Conv2D (Conv2D): [[1L, 32L, 28L, 28L]]
MobilenetV2/expanded_conv_5/add (Eltwise): [[1L, 32L, 28L, 28L]]
MobilenetV2/expanded_conv_6/expand/Relu6 (Conv2D): [[1L, 192L, 28L, 28L]]
MobilenetV2/expanded_conv_6/depthwise/Relu6 (DepthwiseConv2d): [[1L, 192L, 14L, 14L]]
MobilenetV2/expanded_conv_6/project/Conv2D (Conv2D): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_7/expand/Relu6 (Conv2D): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_7/depthwise/Relu6 (DepthwiseConv2d): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_7/project/Conv2D (Conv2D): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_7/add (Eltwise): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_8/expand/Relu6 (Conv2D): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_8/depthwise/Relu6 (DepthwiseConv2d): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_8/project/Conv2D (Conv2D): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_8/add (Eltwise): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_9/expand/Relu6 (Conv2D): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_9/depthwise/Relu6 (DepthwiseConv2d): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_9/project/Conv2D (Conv2D): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_9/add (Eltwise): [[1L, 64L, 14L, 14L]]
MobilenetV2/expanded_conv_10/expand/Relu6 (Conv2D): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_10/depthwise/Relu6 (DepthwiseConv2d): [[1L, 384L, 14L, 14L]]
MobilenetV2/expanded_conv_10/project/Conv2D (Conv2D): [[1L, 96L, 14L, 14L]]
MobilenetV2/expanded_conv_11/expand/Relu6 (Conv2D): [[1L, 576L, 14L, 14L]]
MobilenetV2/expanded_conv_11/depthwise/Relu6 (DepthwiseConv2d): [[1L, 576L, 14L, 14L]]
MobilenetV2/expanded_conv_11/project/Conv2D (Conv2D): [[1L, 96L, 14L, 14L]]
MobilenetV2/expanded_conv_11/add (Eltwise): [[1L, 96L, 14L, 14L]]
MobilenetV2/expanded_conv_12/expand/Relu6 (Conv2D): [[1L, 576L, 14L, 14L]]
MobilenetV2/expanded_conv_12/depthwise/Relu6 (DepthwiseConv2d): [[1L, 576L, 14L, 14L]]
MobilenetV2/expanded_conv_12/project/Conv2D (Conv2D): [[1L, 96L, 14L, 14L]]
MobilenetV2/expanded_conv_12/add (Eltwise): [[1L, 96L, 14L, 14L]]
MobilenetV2/expanded_conv_13/expand/Relu6 (Conv2D): [[1L, 576L, 14L, 14L]]
MobilenetV2/expanded_conv_13/depthwise/Relu6 (DepthwiseConv2d): [[1L, 576L, 7L, 7L]]
MobilenetV2/expanded_conv_13/project/Conv2D (Conv2D): [[1L, 160L, 7L, 7L]]
MobilenetV2/expanded_conv_14/expand/Relu6 (Conv2D): [[1L, 960L, 7L, 7L]]
MobilenetV2/expanded_conv_14/depthwise/Relu6 (DepthwiseConv2d): [[1L, 960L, 7L, 7L]]
MobilenetV2/expanded_conv_14/project/Conv2D (Conv2D): [[1L, 160L, 7L, 7L]]
MobilenetV2/expanded_conv_14/add (Eltwise): [[1L, 160L, 7L, 7L]]
MobilenetV2/expanded_conv_15/expand/Relu6 (Conv2D): [[1L, 960L, 7L, 7L]]
MobilenetV2/expanded_conv_15/depthwise/Relu6 (DepthwiseConv2d): [[1L, 960L, 7L, 7L]]
MobilenetV2/expanded_conv_15/project/Conv2D (Conv2D): [[1L, 160L, 7L, 7L]]
MobilenetV2/expanded_conv_15/add (Eltwise): [[1L, 160L, 7L, 7L]]
MobilenetV2/expanded_conv_16/expand/Relu6 (Conv2D): [[1L, 960L, 7L, 7L]]
MobilenetV2/expanded_conv_16/depthwise/Relu6 (DepthwiseConv2d): [[1L, 960L, 7L, 7L]]
MobilenetV2/expanded_conv_16/project/Conv2D (Conv2D): [[1L, 320L, 7L, 7L]]
MobilenetV2/Conv_1/Relu6 (Conv2D): [[1L, 1280L, 7L, 7L]]
MobilenetV2/Logits/AvgPool (Pooling): [[1L, 1280L, 1L, 1L]]
MobilenetV2/Logits/Conv2d_1c_1x1/Conv2D (Conv2D): [[1L, 1001L, 1L, 1L]]
MobilenetV2/Logits/Squeeze (Squeeze): [[1L, 1001L]]
MobilenetV2/Predictions/Softmax (Softmax): [[1L, 1001L]]
mace_output_node_MobilenetV2/Predictions/Reshape_1 (Identity): [[1L, 1001L]]
start optimize cpu memory.
total op: 68
0 [1204224L]
1 [451584L]
2 [451584L]
origin mem: 7050308, optimized mem: 2107392
CPU memory optimization done.
Merge cpu and gpu ops together
Merge done
************************************************
          Model mobilenet_v2 converted          
************************************************

************************************
          Building library          
************************************

* generate common source files...
generate common source files done
* Build //mace/tools/validation:mace_run_static with ABI arm64-v8a
WARNING: The major revision of the Android NDK referenced by android_ndk_repository rule 'androidndk' is 15. The major revisions supported by Bazel are [10, 11, 12, 13, 14]. Defaulting to revision 14.
INFO: Analysed target //mace/tools/validation:mace_run_static (1 packages loaded).
INFO: Found 1 target...
Target //mace/tools/validation:mace_run_static up-to-date:
  bazel-bin/mace/tools/validation/mace_run_static
INFO: Elapsed time: 8.865s, Critical Path: 5.34s
INFO: Build completed successfully, 7 total actions
Build done!

* Build //mace/benchmark:benchmark_model_static with ABI arm64-v8a
WARNING: The major revision of the Android NDK referenced by android_ndk_repository rule 'androidndk' is 15. The major revisions supported by Bazel are [10, 11, 12, 13, 14]. Defaulting to revision 14.
INFO: Analysed target //mace/benchmark:benchmark_model_static (0 packages loaded).
INFO: Found 1 target...
Target //mace/benchmark:benchmark_model_static up-to-date:
  bazel-bin/mace/benchmark/benchmark_model_static
INFO: Elapsed time: 1.896s, Critical Path: 1.61s
INFO: Build completed successfully, 2 total actions
Build done!

* Merge mace lib
Traceback (most recent call last):
  File "tools/converter.py", line 1348, in <module>
    flags.func(flags)
  File "tools/converter.py", line 888, in build_library
    flags.disable_openmp, flags.address_sanitizer)
  File "tools/converter.py", line 851, in generate_library
    tuning, enable_openmp, address_sanitizer)
  File "tools/converter.py", line 823, in build_specific_lib
    hexagon_mode)
  File "/Users/home/mace/tools/sh_commands.py", line 1024, in merge_libs
    "bin/aarch64-linux-android-ar")
  File "/Library/Python/2.7/site-packages/sh.py", line 1202, in __init__
    raise CommandNotFound(path)
sh.CommandNotFound: /Users/home/android-ndk-r15c/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar

I think it can be figured out by revising tools/export.sh: line 118

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.