diff --git a/.gitignore b/.gitignore
index 532601bfe9222eae0d6be7378322ab1b9c2eb110..547e94ea11f048c9e007996d4ee716d22a13742e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,10 @@ build
# clion building directories
cmake-build-debug
cmake-build-release
+
+
+#ios demo
+demo/ios/PaddleMobileDemo/PaddleMobileDemo/googlenet_combine/
+demo/ios/PaddleMobileDemo/PaddleMobileDemo/*.jpg
+demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/*.a
+*.xcuserstate
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9baf1981afdfb7fb53df0bb99a086e0bf18d495f..f5b9ec25aa1451f466d26b2edc79296a5579b2f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,29 +2,64 @@ cmake_minimum_required(VERSION 3.0)
project(paddle-mobile)
option(DEBUGING "enable debug mode" ON)
-option(USE_OPENMP "openmp support" OFF)
+option(USE_OPENMP "openmp support" ON)
option(USE_EXCEPTION "use std exception" ON)
option(LOG_PROFILE "log profile" ON)
# select the platform to build
option(CPU "armv7 with neon" ON)
option(MALI_GPU "mali gpu" OFF)
option(FPGA "fpga" OFF)
-set(DEBUGING ON)
-if (ARM_LINUX)
-include("${CMAKE_CURRENT_LIST_DIR}/tools/arm-platform.cmake")
+file(GLOB_RECURSE PADDLE_MOBILE_CC src/*.cc src/*.cpp src/*.c src/*.mm)
+file(GLOB_RECURSE PADDLE_MOBILE_H src/*.h)
+include_directories(src/)
+
+set(CMAKE_CXX_FLAGS "-std=c++14 -O3 -s ${CMAKE_CXX_FLAGS}")
+if (DEBUGING)
+ message(STATUS "debug")
+ set(CMAKE_BUILD_TYPE Debug)
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -DNDEBUG")
+ add_definitions(-DPADDLE_MOBILE_DEBUG)
+else ()
+ set(CMAKE_BUILD_TYPE Release)
+ set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG")
+ add_definitions(-fvisibility=hidden -fvisibility-inlines-hidden)
endif ()
-file(GLOB_RECURSE PADDLE_MOBILE_CC src/*.cc src/*.cpp src/*.c)
-file(GLOB_RECURSE PADDLE_MOBILE_H src/*.h)
+if (USE_EXCEPTION)
+ message(STATUS "use exception")
+ add_definitions(-DENABLE_EXCEPTION)
+ add_definitions(-fexceptions)
+else()
+ add_definitions(-fno-exceptions)
+endif ()
+
+if (LOG_PROFILE)
+ add_definitions(-DPADDLE_MOBILE_PROFILE)
+endif()
+
+if(USE_OPENMP)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
+ add_definitions(-DPADDLE_MOBILE_USE_OPENMP)
+endif()
+
+# platform control
+if (ARM_LINUX)
+ include("${CMAKE_CURRENT_LIST_DIR}/tools/arm-platform.cmake")
+endif ()
if (CPU)
add_definitions(-DPADDLE_MOBILE_CPU)
else()
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/arm/*.h)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/arm/*.cc)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/arm/*.cpp)
-
+ file(GLOB_RECURSE _tmp_list src/operators/kernel/arm/*.cpp src/operators/kernel/arm/*.cc)
+ foreach(f ${_tmp_list})
+ list(REMOVE_ITEM PADDLE_MOBILE_CC ${f})
+ endforeach()
+
+ file(GLOB_RECURSE _tmp_list_h src/operators/kernel/arm/*.h)
+ foreach(f ${_tmp_list_h})
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${f})
+ endforeach()
endif()
if (MALI_GPU)
@@ -41,64 +76,48 @@ if (MALI_GPU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lOpenCL")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_ACL=1")
else()
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/mali/*.h)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/mali/*.cc)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/mali/*.cpp)
+ file(GLOB_RECURSE _tmp_list src/operators/kernel/mali/*.cpp src/operators/kernel/mali/*.cc)
+ foreach(f ${_tmp_list})
+ list(REMOVE_ITEM PADDLE_MOBILE_CC ${f})
+ endforeach()
+
+ file(GLOB_RECURSE _tmp_list_h src/operators/kernel/mali/*.h)
+ foreach(f ${_tmp_list_h})
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${f})
+ endforeach()
endif()
if(FPGA)
add_definitions(-DPADDLE_MOBILE_FPGA)
else()
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/fpga/*.h)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/fpga/*.cc)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/kernel/fpga/*.cpp)
+ file(GLOB_RECURSE _tmp_list src/operators/kernel/fpga/*.cpp src/operators/kernel/fpga/*.cc)
+ foreach(f ${_tmp_list})
+ list(REMOVE_ITEM PADDLE_MOBILE_CC ${f})
+ endforeach()
+
+ file(GLOB_RECURSE _tmp_list_h src/operators/kernel/fpga/*.h)
+ foreach(f ${_tmp_list_h})
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${f})
+ endforeach()
endif()
-set(CMAKE_CXX_FLAGS "-std=c++14 -O3 -s ${CMAKE_CXX_FLAGS}")
-if (DEBUGING)
- message(STATUS "debug")
- set(CMAKE_BUILD_TYPE Debug)
- set(CMAKE_CXX_FLAGS_DEBUG "-g -DNDEBUG")
- add_definitions(-DPADDLE_MOBILE_DEBUG)
- if (ANDROID_NDK_TOOLCHAIN_INCLUDED)
- add_definitions(-DARMV7)
+if (ANDROID_NDK_TOOLCHAIN_INCLUDED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -llog")
- endif ()
-else ()
- set(CMAKE_BUILD_TYPE Release)
- set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG")
- add_definitions(-fvisibility=hidden -fvisibility-inlines-hidden)
-endif ()
-
-if (USE_EXCEPTION)
- message(STATUS "use exception")
- add_definitions(-DENABLE_EXCEPTION)
- add_definitions(-fexceptions)
+ add_definitions(-DARMV7)
else()
- add_definitions(-fno-exceptions)
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/paddle_mobile_jni.h)
+ list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/paddle_mobile_jni.cpp)
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/math/math_func_neon.h)
endif ()
-if (LOG_PROFILE)
- add_definitions(-DPADDLE_MOBILE_PROFILE)
-endif()
-
-if(USE_OPENMP)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
- add_definitions(-DPADDLE_MOBILE_USE_OPENMP)
-endif()
-
-
-
-
-if (NOT ANDROID_NDK_TOOLCHAIN_INCLUDED)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/*.cpp)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/jni/*.h)
- list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/operators/math/math_func_neon.h)
+if (IS_IOS)
+else()
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/ios_io/PaddleMobile.h)
+ list(REMOVE_ITEM PADDLE_MOBILE_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/ios_io/PaddleMobile.mm)
+ list(REMOVE_ITEM PADDLE_MOBILE_H ${CMAKE_CURRENT_SOURCE_DIR}/src/ios_io/op_symbols.h)
endif ()
-include_directories(src/)
-
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY build)
@@ -108,19 +127,24 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY build)
# NET default
set(NET "defult" CACHE STRING "select net type")
set_property(CACHE NET PROPERTY STRINGS "defult" "googlenet" "mobilenet" "yolo" "squeezenet")
-
include("${CMAKE_CURRENT_LIST_DIR}/tools/op.cmake")
-# if (IS_IOS)
-# add_library(paddle-mobile STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
+
+# build library
if (ANDROID_NDK_TOOLCHAIN_INCLUDED)
list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS)
add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
+elseif(IS_IOS)
+ add_library(paddle-mobile STATIC ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
else ()
add_library(paddle-mobile SHARED ${PADDLE_MOBILE_CC} ${PADDLE_MOBILE_H})
endif ()
+# unit test
if(DEBUGING)
- add_subdirectory(test)
+ if(IS_IOS)
+ else()
+ add_subdirectory(test)
+ endif()
endif()
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f07b2eeb93daa827361acc97951483c21092135f..a33db73e109042276b686e8ab74261273df87390 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -183,7 +183,6 @@ upstream
接下来等待 review,如果有需要修改的地方,参照上述步骤更新 origin 中的对应分支即可。
-

之后就可以提交代码了
@@ -223,7 +222,6 @@ upstream
- 原因:如果仅仅修改一个文件但提交了十几个commit,每个commit只做了少量的修改,这会给评审人带来很大困扰。评审人需要逐一查看每个commit才能知道做了哪些修改,且不排除commit之间的修改存在相互覆盖的情况。
- 建议:每次提交时,保持尽量少的commit,可以通过`git commit --amend`补充上次的commit。对已经Push到远程仓库的多个commit,可以参考[squash commits after push](http://stackoverflow.com/questions/5667884/how-to-squash-commits-in-git-after-they-have-been-pushed)。
- 请注意每个commit的名称:应能反映当前commit的内容,不能太随意。
-
3. 如果解决了某个Issue的问题,请在该Pull Request的**第一个**评论框中加上:`fix #issue_number`,这样当该Pull Request被合并后,会自动关闭对应的Issue。关键词包括:close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved,请选择合适的词汇。详细可参考[Closing issues via commit messages](https://help.github.com/articles/closing-issues-via-commit-messages)。
此外,在回复评审人意见时,请您遵守以下约定:
diff --git a/README.md b/README.md
index f8957545a64fff7723bd4c1c6bc2db1fd90d728b..91b4f886a31bb839a7e513185464260b1e95c453 100644
--- a/README.md
+++ b/README.md
@@ -8,22 +8,33 @@
[](LICENSE)-->
-
欢迎来到 Paddle-Mobile GitHub 项目。
Paddle-Moible是PaddlePaddle组织下的项目,是一个致力于嵌入式平台的深度学习的框架。Paddle-Moible设计思想和PaddlePaddle的最新版fluid版本保持了高度一致,同时针对嵌入式做了大量优化。设计之初就对嵌入式的性能、体积、能耗、硬件平台覆盖等方面做了考虑。
+## 简单搜索线上效果
+
+如下gif是简单搜索app的线上主体检测应用效果
+
+
+
+## Demo目录
+
+[点我](https://github.com/PaddlePaddle/paddle-mobile/tree/develop/demo)
+
## Features
- **ARM CPU**
+
+
+
arm cpu是paddle-mobile的主要支持方向,cpu的通用性一直是其优势。嵌入式深度学习,需要大量的cpu汇编实现。我们正在紧锣密鼓的编码,为的是能充分硬件的每一点加速能力。
- arm cpu的优化工作还在进行中,现在使用了常规的cpu优化。在arm a73上paddle-mobile现在单核运行一次mobilenet 1.0是160+ms,显然这不是我们的最终目标,我们正在用大量的汇编改写,后续性能仍会有巨大提升空间。
+ arm cpu的优化工作还在进行中,现在使用了常规的cpu优化。在arm a73上paddle-mobile arm-v7现在单核运行一次mobilenet1.0是120+ms,显然这不是我们的最终目标,我们正在用大量的汇编改写,后续性能仍会有巨大提升空间。
- **Mali GPU**
Mali GPU是百度和ARM合作开发的,双方团队近期都在致力于将paddle的op能无缝运行在ACL(arm compute library)。目前已经支持squeezenet,googlenet,resnet等几个网络模型,后续会继续加大力度。使全部移动端paddle op能高效运行在mali gpu上。
- 在
- **苹果设备的GPU Metal实现**
@@ -45,7 +56,7 @@ Paddle-Moible是PaddlePaddle组织下的项目,是一个致力于嵌入式平
- **体积**
paddle-mobile从设计之初就深入考虑到移动端的包体积的问题,cpu实现中没有外部依赖。在编译过程中,如果该网络不需要的op是完全不会被打入的。同时编译选项优化也为体积压缩提供了帮助。
- 除了二进制体积,我们对代码体积极力避免过大。整个仓库不到5m的代码体积。
+ 除了二进制体积,我们对代码体积极力避免过大。整个仓库的代码体积也非常小。
## 文档
@@ -58,7 +69,7 @@ Paddle-Moible是PaddlePaddle组织下的项目,是一个致力于嵌入式平
### 开发文档
开发文档主要是关于编译、运行等问题。做为开发者,它可以和贡献文档共同结合使用。
-[开发文档]()https://github.com/PaddlePaddle/paddle-mobile/blob/develop/doc/development_doc.md
+[开发文档链接](https://github.com/PaddlePaddle/paddle-mobile/blob/develop/doc/development_doc.md)
### 贡献文档
- [贡献文档链接](https://github.com/PaddlePaddle/paddle-mobile/blob/develop/CONTRIBUTING.md)
@@ -78,17 +89,10 @@ ONNX全称为“Open Neural Network Exchange”,即“开放的神经网络切
目前,百度也在做onnx支持工作。相关转换项目在这里:[paddle-onnx](https://github.com/PaddlePaddle/paddle-onnx)。
-```flow
-st=>start: 其他模型
-op1=>operation: onnx模型
-op2=>operation: paddle-onnx
-op3=>operation: paddle fluid模型
-e=>end: paddle-mobile运行
-st->op1->op2->op3->e
-```
-
-### 4. 部分测试模型下载
-[下载链接](https://mms-mis.cdn.bcebos.com/paddle-mobile/models.zip)
+
+
+### 4. 部分测试模型和测试图片下载
+[下载链接](http://mms-graph.bj.bcebos.com/paddle-mobile%2FmodelsAndImages.zip)
## 问题解决
diff --git a/demo/android/PaddleMobile_Android/.gitignore b/demo/android/PaddleMobile_Android/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..39fb081a42a86ccf8f9cf99dbccc8bdf7c828bce
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/.gitignore
@@ -0,0 +1,9 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
+.externalNativeBuild
diff --git a/demo/android/PaddleMobile_Android/app/.gitignore b/demo/android/PaddleMobile_Android/app/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8b137891791fe96927ad78e64b0aad7bded08bdc
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/.gitignore
@@ -0,0 +1 @@
+
diff --git a/demo/android/PaddleMobile_Android/app/build.gradle b/demo/android/PaddleMobile_Android/app/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..3d61efb83a083909a0038886469e1c7fce218e8c
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/build.gradle
@@ -0,0 +1,23 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 21
+ defaultConfig {
+ applicationId "com.baidu.paddle"
+ minSdkVersion 15
+ targetSdkVersion 21
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'com.android.support:appcompat-v7:21.0.3'
+}
diff --git a/demo/android/PaddleMobile_Android/app/proguard-rules.pro b/demo/android/PaddleMobile_Android/app/proguard-rules.pro
new file mode 100644
index 0000000000000000000000000000000000000000..f1b424510da51fd82143bc74a0a801ae5a1e2fcd
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/demo/android/PaddleMobile_Android/app/src/main/AndroidManifest.xml b/demo/android/PaddleMobile_Android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b9bf81dcb9fffb855d067cc7df1633ebcf586432
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/android/PaddleMobile_Android/app/src/main/java/com/baidu/paddle/MainActivity.java b/demo/android/PaddleMobile_Android/app/src/main/java/com/baidu/paddle/MainActivity.java
new file mode 100755
index 0000000000000000000000000000000000000000..7ad712f5e8af4237964be7ecc3b4d16a909bdc40
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/java/com/baidu/paddle/MainActivity.java
@@ -0,0 +1,416 @@
+/*
+ * Copyright (c) 2016 Baidu, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
+ * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
+ * the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+package com.baidu.paddle;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Environment;
+
+import android.provider.MediaStore;
+
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+
+import static android.graphics.Color.blue;
+import static android.graphics.Color.green;
+import static android.graphics.Color.red;
+import static com.baidu.paddle.MainActivity.TYPE.googlenet;
+
+
+public class MainActivity extends Activity {
+ public static final int TAKE_PHOTO_REQUEST_CODE = 1001;
+
+ private Context mContext = null;
+
+ private int inputSize = 224;
+ private int[] ddims = {1, 3, 224, 224};
+
+ enum TYPE {
+ googlenet
+ }
+
+ private TYPE type = googlenet;
+ private ImageView imageView;
+ private TextView tvSpeed;
+ private Button button;
+ private Bitmap bmp;
+
+ static {
+ try {
+ System.loadLibrary("paddle-mobile");
+
+ } catch (SecurityException e) {
+ e.printStackTrace();
+
+ } catch (UnsatisfiedLinkError e) {
+ e.printStackTrace();
+
+ } catch (NullPointerException e) {
+ e.printStackTrace();
+
+ }
+
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mContext = this;
+ setContentView(R.layout.main_activity);
+ init();
+ }
+
+ private void init() {
+ imageView = (ImageView) findViewById(R.id.imageView);
+ tvSpeed = (TextView) findViewById(R.id.tv_speed);
+ button = (Button) findViewById(R.id.button);
+ button.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (!isHasSdCard()) {
+ Toast.makeText(mContext, R.string.sdcard_not_available,
+ Toast.LENGTH_LONG).show();
+ return;
+ }
+ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ // save pic in sdcard
+ Uri imageUri = Uri.fromFile(getTempImage());
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
+ startActivityForResult(intent, TAKE_PHOTO_REQUEST_CODE);
+
+ }
+ });
+ Button bt_load = (Button) findViewById(R.id.bt_load);
+ bt_load.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ String assetPath = "pml_demo";
+ String sdcardPath = Environment.getExternalStorageDirectory()
+ + File.separator + assetPath + File.separator + type;
+ PML.load(sdcardPath);
+ String modelPath = Environment.getExternalStorageDirectory()
+ + File.separator + assetPath +
+ File.separator + "googlenet_combine" + File.separator + "model";
+ String paramPath = Environment.getExternalStorageDirectory()
+ + File.separator + assetPath +
+ File.separator + "googlenet_combine" + File.separator + "params";
+// PML.loadCombined(modelPath, paramPath);
+
+ }
+ });
+ Button bt_clear = (Button) findViewById(R.id.bt_clear);
+ bt_clear.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ PML.clear();
+
+
+ }
+ });
+ String assetPath = "pml_demo";
+ String sdcardPath = Environment.getExternalStorageDirectory()
+ + File.separator + assetPath;
+ copyFilesFromAssets(this, assetPath, sdcardPath);
+
+
+ }
+
+ public void copyFilesFromAssets(Context context, String oldPath, String newPath) {
+ try {
+ String[] fileNames = context.getAssets().list(oldPath);
+ if (fileNames.length > 0) {
+ // directory
+ File file = new File(newPath);
+ file.mkdirs();
+ // copy recursivelyC
+ for (String fileName : fileNames) {
+ copyFilesFromAssets(context, oldPath + "/" + fileName,
+ newPath + "/" + fileName);
+ }
+ } else {
+ // file
+ InputStream is = context.getAssets().open(oldPath);
+ FileOutputStream fos = new FileOutputStream(new File(newPath));
+ byte[] buffer = new byte[1024];
+ int byteCount;
+ while ((byteCount = is.read(buffer)) != -1) {
+ fos.write(buffer, 0, byteCount);
+ }
+ fos.flush();
+ is.close();
+ fos.close();
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public File getTempImage() {
+ if (Environment.getExternalStorageState().equals(
+ Environment.MEDIA_MOUNTED)) {
+ File tempFile = new File(Environment.getExternalStorageDirectory(), "temp.jpg");
+ try {
+ tempFile.createNewFile();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return tempFile;
+ }
+ return null;
+ }
+
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ switch (requestCode) {
+ case TAKE_PHOTO_REQUEST_CODE:
+ if (resultCode == RESULT_OK) {
+ DetectionTask detectionTask = new DetectionTask();
+ detectionTask.execute(getTempImage().getPath());
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ /**
+ * draw rect on imageView
+ *
+ * @param bitmap
+ * @param predicted
+ * @param viewWidth
+ * @param viewHeight
+ */
+ private void drawRect(Bitmap bitmap, float[] predicted, int viewWidth, int viewHeight) {
+
+ Canvas canvas = new Canvas(bitmap);
+ canvas.drawBitmap(bitmap, 0, 0, null);
+ if (type == googlenet) {
+ Paint paint = new Paint();
+ paint.setColor(Color.RED);
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setStrokeWidth(3.0f);
+ float x1 = 0;
+ float x2 = 0;
+ float y1 = 0;
+ float y2 = 0;
+
+ // the googlenet result sequence is (left top right top bottom)
+ x1 = (predicted[0] * viewWidth / 224);
+ y1 = (predicted[1] * viewHeight / 224);
+ x2 = (predicted[2] * viewWidth / 224);
+ y2 = (predicted[3] * viewHeight / 224);
+
+
+ canvas.drawRect(x1, y1, x2, y2, paint);
+ }
+
+
+ imageView.setImageBitmap(bitmap);
+
+ }
+
+ float getMaxIndex(float[] predicted) {
+ float max = 0;
+ int index = 0;
+ for (int i = 0; i < predicted.length; i++) {
+ if (predicted[i] > max) {
+ max = predicted[i];
+ index = i;
+ }
+ }
+ return index;
+ }
+
+ public float[] getScaledMatrix(Bitmap bitmap, int desWidth,
+ int desHeight) {
+ float[] dataBuf = new float[3 * desWidth * desHeight];
+ int rIndex;
+ int gIndex;
+ int bIndex;
+ int[] pixels = new int[desWidth * desHeight];
+ Bitmap bm = Bitmap.createScaledBitmap(bitmap, desWidth, desHeight, false);
+ bm.getPixels(pixels, 0, desWidth, 0, 0, desWidth, desHeight);
+ int j = 0;
+ int k = 0;
+ for (int i = 0; i < pixels.length; i ++) {
+ int clr = pixels[i];
+ j = i / desHeight;
+ k = i % desWidth;
+ rIndex = j * desWidth + k;
+ gIndex = rIndex + desHeight * desWidth;
+ bIndex = gIndex + desHeight * desWidth;
+ dataBuf[rIndex] = (float)((clr & 0x00ff0000)>> 16) -148;
+ dataBuf[gIndex] = (float)((clr & 0x0000ff00)>> 8) - 148;
+ dataBuf[bIndex] = (float)((clr & 0x000000ff)) -148;
+
+ }
+ if (bm.isRecycled()) {
+ bm.recycle();
+ }
+ return dataBuf;
+
+
+ }
+ /**
+ * check whether sdcard is mounted
+ *
+ * @return
+ */
+ public boolean isHasSdCard() {
+ if (Environment.getExternalStorageState().equals(
+ Environment.MEDIA_MOUNTED)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public void dumpData(float[] results, String filename) {
+ try {
+ File writename = new File(filename);
+ writename.createNewFile();
+ BufferedWriter out = new BufferedWriter(new FileWriter(writename));
+ for (float result : results) {
+ out.write(result + " ");
+ }
+ out.flush();
+ out.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ /**
+ * scale bitmap in case of OOM
+ *
+ * @param ctx
+ * @param filePath
+ * @return
+ */
+ public Bitmap getScaleBitmap(Context ctx, String filePath) {
+ BitmapFactory.Options opt = new BitmapFactory.Options();
+ opt.inJustDecodeBounds = true;
+ BitmapFactory.decodeFile(filePath, opt);
+
+ int bmpWidth = opt.outWidth;
+ int bmpHeight = opt.outHeight;
+
+ int maxSize = 500;
+
+ opt.inSampleSize = 1;
+ while (true) {
+ if (bmpWidth / opt.inSampleSize < maxSize || bmpHeight / opt.inSampleSize < maxSize) {
+ break;
+ }
+ opt.inSampleSize *= 2;
+ }
+ opt.inJustDecodeBounds = false;
+ Bitmap bmp = BitmapFactory.decodeFile(filePath, opt);
+ return bmp;
+ }
+
+ @Override
+ public void onBackPressed() {
+ super.onBackPressed();
+ Log.d("pml", "pml clear");
+ // clear pml
+ PML.clear();
+
+ }
+
+ class DetectionTask extends AsyncTask {
+ private long time;
+
+ public DetectionTask() {
+ super();
+ }
+
+ @Override
+ protected void onPreExecute() {
+ super.onPreExecute();
+ if (type == googlenet) {
+ inputSize = 224;
+ }
+ }
+
+ @Override
+ protected void onPostExecute(float[] result) {
+ super.onPostExecute(result);
+ try {
+ Bitmap src = Bitmap.createScaledBitmap(bmp, imageView.getWidth(),
+ imageView.getHeight(), false);
+ drawRect(src, result, imageView.getWidth(), imageView.getHeight());
+ tvSpeed.setText("detection cost:" + time + "ms");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected void onProgressUpdate(Void... values) {
+ super.onProgressUpdate(values);
+ }
+
+ @Override
+ protected void onCancelled() {
+ super.onCancelled();
+ }
+
+ @Override
+ protected float[] doInBackground(String... strings) {
+ bmp = getScaleBitmap(mContext, strings[0]);
+ float[] inputData = getScaledMatrix(bmp, inputSize, inputSize);
+ float[] result = null;
+ try {
+ long start = System.currentTimeMillis();
+ result = PML.predictImage(inputData, ddims);
+ long end = System.currentTimeMillis();
+ time = end - start;
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+ }
+}
diff --git a/demo/android/PaddleMobile_Android/app/src/main/java/com/baidu/paddle/PML.java b/demo/android/PaddleMobile_Android/app/src/main/java/com/baidu/paddle/PML.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ff9af97cf1eac6c6b70a22f5f4478022656b860
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/java/com/baidu/paddle/PML.java
@@ -0,0 +1,44 @@
+package com.baidu.paddle;
+
+public class PML {
+ /**
+ * Load seperated parameters
+ * @param modelDir
+ * @return
+ */
+ public static native boolean load(String modelDir);
+
+ /**
+ * Load combined parameters
+ * @param modelPath
+ * @param paramPath
+ * @return
+ */
+ public static native boolean loadCombined(String modelPath,String paramPath);
+
+
+ /**
+ * object detection
+ *
+ * @param buf
+ * @return
+ */
+ public static native float[] predictImage(float[] buf, int[]ddims);
+
+ /**
+ *
+ * @param buf yuv420格式的字节数组
+ * @param imgWidth yuv数据的宽
+ * @param imgHeight yuv数据的高
+ * @param ddims 输入数据的形状
+ * @param meanValues 模型训练时各通道的均值
+ * @return
+ */
+
+ public static native float[] predictYuv(byte[] buf, int imgWidth, int imgHeight, int[] ddims, float[]meanValues);
+
+
+
+ public static native void clear();
+
+}
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/drawable/ic_launcher_background.xml b/demo/android/PaddleMobile_Android/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d5fccc538c179838bfdce779c26eebb4fa0b5ce9
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/layout/main_activity.xml b/demo/android/PaddleMobile_Android/app/src/main/res/layout/main_activity.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6653b182adbfc6d82d50d313db8c88789c0b027b
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/res/layout/main_activity.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/demo/android/PaddleMobile_Android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1
Binary files /dev/null and b/demo/android/PaddleMobile_Android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/demo/android/PaddleMobile_Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b523998081149a985cef0cdf89045b9ed29964a
Binary files /dev/null and b/demo/android/PaddleMobile_Android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/values/colors.xml b/demo/android/PaddleMobile_Android/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3ab3e9cbce07f7cdc941fc8ba424c05e83ed80f0
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/res/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #3F51B5
+ #303F9F
+ #FF4081
+
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/values/strings.xml b/demo/android/PaddleMobile_Android/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f927237046f8a51f9f49ef37440cc05a3abcc0fa
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+ PaddleMobile_Android
+ sdcard not available
+ detection cost:
+
diff --git a/demo/android/PaddleMobile_Android/app/src/main/res/values/styles.xml b/demo/android/PaddleMobile_Android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5885930df6d10edf3d6df40d6556297d11f953da
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/app/src/main/res/values/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/demo/android/PaddleMobile_Android/build.gradle b/demo/android/PaddleMobile_Android/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..43c070853e6387cb26e12ad00449e2c4df192bf6
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/build.gradle
@@ -0,0 +1,27 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+
+ repositories {
+ google()
+ jcenter()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.1.3'
+
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ jcenter()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/demo/android/PaddleMobile_Android/gradle.properties b/demo/android/PaddleMobile_Android/gradle.properties
new file mode 100644
index 0000000000000000000000000000000000000000..db1fda5348df0a517e66da43975df8d062ac7109
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/gradle.properties
@@ -0,0 +1,18 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+android.injected.testOnly=false
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
diff --git a/demo/android/PaddleMobile_Android/gradle/wrapper/gradle-wrapper.jar b/demo/android/PaddleMobile_Android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659
Binary files /dev/null and b/demo/android/PaddleMobile_Android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/demo/android/PaddleMobile_Android/gradle/wrapper/gradle-wrapper.properties b/demo/android/PaddleMobile_Android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000000000000000000000000000000000..45f9d18b437e41e53ed0620b52bbabc2c65b361b
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Jul 02 13:58:58 CST 2018
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
diff --git a/demo/android/PaddleMobile_Android/gradlew b/demo/android/PaddleMobile_Android/gradlew
new file mode 100755
index 0000000000000000000000000000000000000000..9d82f78915133e1c35a6ea51252590fb38efac2f
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/demo/android/PaddleMobile_Android/gradlew.bat b/demo/android/PaddleMobile_Android/gradlew.bat
new file mode 100644
index 0000000000000000000000000000000000000000..aec99730b4e8fcd90b57a0e8e01544fea7c31a89
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/demo/android/PaddleMobile_Android/settings.gradle b/demo/android/PaddleMobile_Android/settings.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003
--- /dev/null
+++ b/demo/android/PaddleMobile_Android/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj
similarity index 54%
rename from ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj
index e7e77ada15e84a6957a082c203c0121e118c5a3b..469c228e82841a8ceb79842bd9f021566b9fbf6f 100644
--- a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.pbxproj
@@ -7,80 +7,123 @@
objects = {
/* Begin PBXBuildFile section */
- FC086BC920E783AF00D85EF7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BC820E783AF00D85EF7 /* AppDelegate.m */; };
- FC086BCC20E783AF00D85EF7 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BCB20E783AF00D85EF7 /* ViewController.m */; };
- FC086BCF20E783AF00D85EF7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC086BCD20E783AF00D85EF7 /* Main.storyboard */; };
- FC086BD120E783B100D85EF7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FC086BD020E783B100D85EF7 /* Assets.xcassets */; };
- FC086BD420E783B100D85EF7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC086BD220E783B100D85EF7 /* LaunchScreen.storyboard */; };
- FC086BD720E783B100D85EF7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BD620E783B100D85EF7 /* main.m */; };
+ FC12E93320EB6B2800807EF4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FC12E93220EB6B2800807EF4 /* AppDelegate.m */; };
+ FC12E93620EB6B2800807EF4 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FC12E93520EB6B2800807EF4 /* ViewController.m */; };
+ FC12E93920EB6B2800807EF4 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC12E93720EB6B2800807EF4 /* Main.storyboard */; };
+ FC12E93B20EB6B2900807EF4 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FC12E93A20EB6B2900807EF4 /* Assets.xcassets */; };
+ FC12E93E20EB6B2900807EF4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FC12E93C20EB6B2900807EF4 /* LaunchScreen.storyboard */; };
+ FC12E94120EB6B2900807EF4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FC12E94020EB6B2900807EF4 /* main.m */; };
+ FC12E94A20EB6B6800807EF4 /* libpaddle-mobile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FC12E94820EB6B6800807EF4 /* libpaddle-mobile.a */; };
+ FC12E94D20EB6BBB00807EF4 /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = FC12E94C20EB6BBB00807EF4 /* libstdc++.tbd */; };
+ FC12E95420EB6C0D00807EF4 /* apple.jpg in Resources */ = {isa = PBXBuildFile; fileRef = FC12E95320EB6C0D00807EF4 /* apple.jpg */; };
+ FC51640120EF758D00636C28 /* params in Resources */ = {isa = PBXBuildFile; fileRef = FC5163FF20EF758D00636C28 /* params */; };
+ FC51640220EF758D00636C28 /* model in Resources */ = {isa = PBXBuildFile; fileRef = FC51640020EF758D00636C28 /* model */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
- FC086BC420E783AF00D85EF7 /* PaddleMobileDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PaddleMobileDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
- FC086BC720E783AF00D85EF7 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- FC086BC820E783AF00D85EF7 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- FC086BCA20E783AF00D85EF7 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
- FC086BCB20E783AF00D85EF7 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
- FC086BCE20E783AF00D85EF7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
- FC086BD020E783B100D85EF7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- FC086BD320E783B100D85EF7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
- FC086BD520E783B100D85EF7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- FC086BD620E783B100D85EF7 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ FC12E92E20EB6B2800807EF4 /* PaddleMobileDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PaddleMobileDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ FC12E93120EB6B2800807EF4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ FC12E93220EB6B2800807EF4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ FC12E93420EB6B2800807EF4 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
+ FC12E93520EB6B2800807EF4 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
+ FC12E93820EB6B2800807EF4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
+ FC12E93A20EB6B2900807EF4 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ FC12E93D20EB6B2900807EF4 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
+ FC12E93F20EB6B2900807EF4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ FC12E94020EB6B2900807EF4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ FC12E94820EB6B6800807EF4 /* libpaddle-mobile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpaddle-mobile.a"; sourceTree = ""; };
+ FC12E94920EB6B6800807EF4 /* PaddleMobile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PaddleMobile.h; sourceTree = ""; };
+ FC12E94C20EB6BBB00807EF4 /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; };
+ FC12E95320EB6C0D00807EF4 /* apple.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = apple.jpg; sourceTree = ""; };
+ FC5163FF20EF758D00636C28 /* params */ = {isa = PBXFileReference; lastKnownFileType = file; path = params; sourceTree = ""; };
+ FC51640020EF758D00636C28 /* model */ = {isa = PBXFileReference; lastKnownFileType = file; path = model; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- FC086BC120E783AF00D85EF7 /* Frameworks */ = {
+ FC12E92B20EB6B2800807EF4 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ FC12E94D20EB6BBB00807EF4 /* libstdc++.tbd in Frameworks */,
+ FC12E94A20EB6B6800807EF4 /* libpaddle-mobile.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- FC086BBB20E783AF00D85EF7 = {
+ FC12E92520EB6B2800807EF4 = {
isa = PBXGroup;
children = (
- FC086BC620E783AF00D85EF7 /* PaddleMobileDemo */,
- FC086BC520E783AF00D85EF7 /* Products */,
+ FC12E93020EB6B2800807EF4 /* PaddleMobileDemo */,
+ FC12E92F20EB6B2800807EF4 /* Products */,
+ FC12E94B20EB6BBB00807EF4 /* Frameworks */,
);
sourceTree = "";
};
- FC086BC520E783AF00D85EF7 /* Products */ = {
+ FC12E92F20EB6B2800807EF4 /* Products */ = {
isa = PBXGroup;
children = (
- FC086BC420E783AF00D85EF7 /* PaddleMobileDemo.app */,
+ FC12E92E20EB6B2800807EF4 /* PaddleMobileDemo.app */,
);
name = Products;
sourceTree = "";
};
- FC086BC620E783AF00D85EF7 /* PaddleMobileDemo */ = {
+ FC12E93020EB6B2800807EF4 /* PaddleMobileDemo */ = {
isa = PBXGroup;
children = (
- FC086BC720E783AF00D85EF7 /* AppDelegate.h */,
- FC086BC820E783AF00D85EF7 /* AppDelegate.m */,
- FC086BCA20E783AF00D85EF7 /* ViewController.h */,
- FC086BCB20E783AF00D85EF7 /* ViewController.m */,
- FC086BCD20E783AF00D85EF7 /* Main.storyboard */,
- FC086BD020E783B100D85EF7 /* Assets.xcassets */,
- FC086BD220E783B100D85EF7 /* LaunchScreen.storyboard */,
- FC086BD520E783B100D85EF7 /* Info.plist */,
- FC086BD620E783B100D85EF7 /* main.m */,
+ FC12E94720EB6B6800807EF4 /* PaddleMobile */,
+ FC5163FE20EF758D00636C28 /* googlenet_combine */,
+ FC12E95320EB6C0D00807EF4 /* apple.jpg */,
+ FC12E93120EB6B2800807EF4 /* AppDelegate.h */,
+ FC12E93220EB6B2800807EF4 /* AppDelegate.m */,
+ FC12E93420EB6B2800807EF4 /* ViewController.h */,
+ FC12E93520EB6B2800807EF4 /* ViewController.m */,
+ FC12E93720EB6B2800807EF4 /* Main.storyboard */,
+ FC12E93A20EB6B2900807EF4 /* Assets.xcassets */,
+ FC12E93C20EB6B2900807EF4 /* LaunchScreen.storyboard */,
+ FC12E93F20EB6B2900807EF4 /* Info.plist */,
+ FC12E94020EB6B2900807EF4 /* main.m */,
);
path = PaddleMobileDemo;
sourceTree = "";
};
+ FC12E94720EB6B6800807EF4 /* PaddleMobile */ = {
+ isa = PBXGroup;
+ children = (
+ FC12E94820EB6B6800807EF4 /* libpaddle-mobile.a */,
+ FC12E94920EB6B6800807EF4 /* PaddleMobile.h */,
+ );
+ path = PaddleMobile;
+ sourceTree = "";
+ };
+ FC12E94B20EB6BBB00807EF4 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ FC12E94C20EB6BBB00807EF4 /* libstdc++.tbd */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ FC5163FE20EF758D00636C28 /* googlenet_combine */ = {
+ isa = PBXGroup;
+ children = (
+ FC5163FF20EF758D00636C28 /* params */,
+ FC51640020EF758D00636C28 /* model */,
+ );
+ path = googlenet_combine;
+ sourceTree = "";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- FC086BC320E783AF00D85EF7 /* PaddleMobileDemo */ = {
+ FC12E92D20EB6B2800807EF4 /* PaddleMobileDemo */ = {
isa = PBXNativeTarget;
- buildConfigurationList = FC086BDA20E783B100D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */;
+ buildConfigurationList = FC12E94420EB6B2900807EF4 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */;
buildPhases = (
- FC086BC020E783AF00D85EF7 /* Sources */,
- FC086BC120E783AF00D85EF7 /* Frameworks */,
- FC086BC220E783AF00D85EF7 /* Resources */,
+ FC12E92A20EB6B2800807EF4 /* Sources */,
+ FC12E92B20EB6B2800807EF4 /* Frameworks */,
+ FC12E92C20EB6B2800807EF4 /* Resources */,
);
buildRules = (
);
@@ -88,24 +131,24 @@
);
name = PaddleMobileDemo;
productName = PaddleMobileDemo;
- productReference = FC086BC420E783AF00D85EF7 /* PaddleMobileDemo.app */;
+ productReference = FC12E92E20EB6B2800807EF4 /* PaddleMobileDemo.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
- FC086BBC20E783AF00D85EF7 /* Project object */ = {
+ FC12E92620EB6B2800807EF4 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0930;
+ LastUpgradeCheck = 0940;
ORGANIZATIONNAME = orange;
TargetAttributes = {
- FC086BC320E783AF00D85EF7 = {
- CreatedOnToolsVersion = 9.3.1;
+ FC12E92D20EB6B2800807EF4 = {
+ CreatedOnToolsVersion = 9.4.1;
};
};
};
- buildConfigurationList = FC086BBF20E783AF00D85EF7 /* Build configuration list for PBXProject "PaddleMobileDemo" */;
+ buildConfigurationList = FC12E92920EB6B2800807EF4 /* Build configuration list for PBXProject "PaddleMobileDemo" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -113,55 +156,58 @@
en,
Base,
);
- mainGroup = FC086BBB20E783AF00D85EF7;
- productRefGroup = FC086BC520E783AF00D85EF7 /* Products */;
+ mainGroup = FC12E92520EB6B2800807EF4;
+ productRefGroup = FC12E92F20EB6B2800807EF4 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
- FC086BC320E783AF00D85EF7 /* PaddleMobileDemo */,
+ FC12E92D20EB6B2800807EF4 /* PaddleMobileDemo */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
- FC086BC220E783AF00D85EF7 /* Resources */ = {
+ FC12E92C20EB6B2800807EF4 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- FC086BD420E783B100D85EF7 /* LaunchScreen.storyboard in Resources */,
- FC086BD120E783B100D85EF7 /* Assets.xcassets in Resources */,
- FC086BCF20E783AF00D85EF7 /* Main.storyboard in Resources */,
+ FC51640220EF758D00636C28 /* model in Resources */,
+ FC51640120EF758D00636C28 /* params in Resources */,
+ FC12E93E20EB6B2900807EF4 /* LaunchScreen.storyboard in Resources */,
+ FC12E93B20EB6B2900807EF4 /* Assets.xcassets in Resources */,
+ FC12E95420EB6C0D00807EF4 /* apple.jpg in Resources */,
+ FC12E93920EB6B2800807EF4 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
- FC086BC020E783AF00D85EF7 /* Sources */ = {
+ FC12E92A20EB6B2800807EF4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- FC086BCC20E783AF00D85EF7 /* ViewController.m in Sources */,
- FC086BD720E783B100D85EF7 /* main.m in Sources */,
- FC086BC920E783AF00D85EF7 /* AppDelegate.m in Sources */,
+ FC12E93620EB6B2800807EF4 /* ViewController.m in Sources */,
+ FC12E94120EB6B2900807EF4 /* main.m in Sources */,
+ FC12E93320EB6B2800807EF4 /* AppDelegate.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
- FC086BCD20E783AF00D85EF7 /* Main.storyboard */ = {
+ FC12E93720EB6B2800807EF4 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
- FC086BCE20E783AF00D85EF7 /* Base */,
+ FC12E93820EB6B2800807EF4 /* Base */,
);
name = Main.storyboard;
sourceTree = "";
};
- FC086BD220E783B100D85EF7 /* LaunchScreen.storyboard */ = {
+ FC12E93C20EB6B2900807EF4 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
- FC086BD320E783B100D85EF7 /* Base */,
+ FC12E93D20EB6B2900807EF4 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "";
@@ -169,7 +215,7 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
- FC086BD820E783B100D85EF7 /* Debug */ = {
+ FC12E94220EB6B2900807EF4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -220,14 +266,14 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.4;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
- FC086BD920E783B100D85EF7 /* Release */ = {
+ FC12E94320EB6B2900807EF4 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -272,41 +318,53 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.3;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.4;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
- FC086BDB20E783B100D85EF7 /* Debug */ = {
+ FC12E94520EB6B2900807EF4 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Z5M2UUN5YV;
+ ENABLE_BITCODE = NO;
INFOPLIST_FILE = PaddleMobileDemo/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/PaddleMobileDemo/PaddleMobile",
+ );
PRODUCT_BUNDLE_IDENTIFIER = orange.PaddleMobileDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
- FC086BDC20E783B100D85EF7 /* Release */ = {
+ FC12E94620EB6B2900807EF4 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = Z5M2UUN5YV;
+ ENABLE_BITCODE = NO;
INFOPLIST_FILE = PaddleMobileDemo/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(PROJECT_DIR)/PaddleMobileDemo/PaddleMobile",
+ );
PRODUCT_BUNDLE_IDENTIFIER = orange.PaddleMobileDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
TARGETED_DEVICE_FAMILY = "1,2";
@@ -316,25 +374,25 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- FC086BBF20E783AF00D85EF7 /* Build configuration list for PBXProject "PaddleMobileDemo" */ = {
+ FC12E92920EB6B2800807EF4 /* Build configuration list for PBXProject "PaddleMobileDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- FC086BD820E783B100D85EF7 /* Debug */,
- FC086BD920E783B100D85EF7 /* Release */,
+ FC12E94220EB6B2900807EF4 /* Debug */,
+ FC12E94320EB6B2900807EF4 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- FC086BDA20E783B100D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */ = {
+ FC12E94420EB6B2900807EF4 /* Build configuration list for PBXNativeTarget "PaddleMobileDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- FC086BDB20E783B100D85EF7 /* Debug */,
- FC086BDC20E783B100D85EF7 /* Release */,
+ FC12E94520EB6B2900807EF4 /* Debug */,
+ FC12E94620EB6B2900807EF4 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
- rootObject = FC086BBC20E783AF00D85EF7 /* Project object */;
+ rootObject = FC12E92620EB6B2800807EF4 /* Project object */;
}
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/ios/PaddleMobile.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from ios/PaddleMobile.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000000000000000000000000000000000000..a5b221642f9973f6abd0b18cc017a58d9a61e434
Binary files /dev/null and b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/project.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist b/demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo.xcodeproj/xcuserdata/liuruilong.xcuserdatad/xcschemes/xcschememanagement.plist
diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..0d2e035ab3c44617694f9ebe437d1a7289be0390
--- /dev/null
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.h
@@ -0,0 +1,23 @@
+/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */
+
+#import
+
+@interface AppDelegate : UIResponder
+
+@property (strong, nonatomic) UIWindow *window;
+
+
+@end
+
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m
similarity index 78%
rename from ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m
index 12cc19636b43f7fc3634736c4b551b4aba29ce73..6644c3c079ae1748de28a634b78c344640cd335a 100644
--- a/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/AppDelegate.m
@@ -1,16 +1,16 @@
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. */
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */
#import "AppDelegate.h"
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Assets.xcassets/Contents.json
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/LaunchScreen.storyboard
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Base.lproj/Main.storyboard
diff --git a/ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist
similarity index 100%
rename from ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/Info.plist
diff --git a/ios/PaddleMobile/PaddleMobile/PaddleMobile.h b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/PaddleMobile.h
similarity index 57%
rename from ios/PaddleMobile/PaddleMobile/PaddleMobile.h
rename to demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/PaddleMobile.h
index 3878c54c8a19a99e535bd8ad90eb1e19e28757c3..5854c5c3a4d4c899feb88822b2f7993860d1ed76 100644
--- a/ios/PaddleMobile/PaddleMobile/PaddleMobile.h
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/PaddleMobile/PaddleMobile.h
@@ -1,26 +1,52 @@
/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
-
+
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. */
+#pragma once
+
#import
#import
@interface PaddleMobile : NSObject
-+ (instancetype)sharedInstance;
+/*
+ 创建对象
+*/
+- (instancetype)init;
+
+/*
+ load 模型, 开辟内存
+*/
- (BOOL)load:(NSString *)modelPath andWeightsPath:(NSString *)weighsPath;
-- (NSArray *)predict:(CGImageRef)image means:(NSArray *)means scale:(float)scale;
-- (NSArray *)predict:(CGImageRef)image;
+
+/*
+ 加载散开形式的模型, 需传入模型的目录
+*/
+- (BOOL)load:(NSString *)modelAndWeightPath;
+
+/*
+ 进行预测, means 和 scale 为训练模型时的预处理参数, 如训练时没有做这些预处理则直接使用 predict
+*/
+- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim means:(NSArray *)means scale:(float)scale;
+
+/*
+ 进行预测
+*/
+- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim;
+
+/*
+ 清理内存
+*/
- (void)clear;
@end
diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h
new file mode 100644
index 0000000000000000000000000000000000000000..41e22092711c4fd1def105470c5b6610cce2257a
--- /dev/null
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.h
@@ -0,0 +1,21 @@
+/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */
+
+#import
+
+@interface ViewController : UIViewController
+
+
+@end
+
diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m
new file mode 100644
index 0000000000000000000000000000000000000000..eb9f7d2bb5329ac4bbf8b790dc83c256f164ec64
--- /dev/null
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/ViewController.m
@@ -0,0 +1,49 @@
+/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */
+
+#import "PaddleMobile.h"
+#import "ViewController.h"
+
+@interface ViewController ()
+
+@end
+
+@implementation ViewController
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ PaddleMobile *pam = [[PaddleMobile alloc] init];
+ NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"model" ofType:nil];
+ NSString *paramPath = [[NSBundle mainBundle] pathForResource:@"params" ofType:nil];
+ if (modelPath.length == 0 || paramPath.length == 0) {
+ NSLog(@" need model and param");
+ return;
+ }
+
+ if ([pam load:modelPath andWeightsPath:paramPath]) {
+ NSLog(@"load success");
+ UIImage *inputImage = [UIImage imageNamed:@"apple.jpg"];
+ if (!inputImage) {
+ NSLog(@" input image is nil");
+ return;
+ }
+
+ NSDate *beforeDate = [NSDate date];
+ NSArray *res = [pam predict:inputImage.CGImage dim:@[@1, @3, @224, @224] means:@[@148, @148, @148] scale:1.0];
+ NSLog(@"res: %@", res);
+ NSLog(@"elapsed time: %f", [[NSDate date] timeIntervalSinceDate:beforeDate]);
+ }
+}
+
+@end
diff --git a/demo/ios/PaddleMobileDemo/PaddleMobileDemo/main.m b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/main.m
new file mode 100644
index 0000000000000000000000000000000000000000..cf2cf6aa80b1d3d3c0480b54a668780ea3324c8b
--- /dev/null
+++ b/demo/ios/PaddleMobileDemo/PaddleMobileDemo/main.m
@@ -0,0 +1,22 @@
+/* Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License. */
+
+#import
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
diff --git a/doc/development_doc.md b/doc/development_doc.md
index acaa50215a7a51ad67eacf8ac5e3be41196a52e4..150fc86f1a4b2959bd19da539f5865374d4a829b 100644
--- a/doc/development_doc.md
+++ b/doc/development_doc.md
@@ -4,9 +4,11 @@
## 编译
-### 一. 使用 build.sh 编译
-
```sh
+
+# 在 paddle-mobile 目录下:
+cd tools
+
sh build.sh ios
# 如果只想编译某个特定模型的 op, 则需执行以下命令
@@ -16,40 +18,33 @@ sh build.sh ios googlenet
cd ../build/release/ios/build
```
+#### 常见问题:
-### 二. 使用 xcode 编译
-
-我们提供了 ios 开发更为熟悉的 xcode 编译环境:
-在 ios/ 目录下打开 PaddleMobile.xcworkspace 即可编译 PaddleMobile 或者 运行 Demo
+1. No iOS SDK's found in default search path ...
-### 三. 集成
+ 这个问题是因为 tools/ios-cmake/ios.toolchain.cmake 找不到你最近使用的 iOS SDK 路径, 所以需要自己进行指定,
+ 以我当前的环境为例: 在 tools/ios-cmake/ios.toolchain.cmake 143行前添加我本地的 iOS SDK 路径: set(CMAKE_IOS_SDK_ROOT "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk")
-#### 如使用 c++ 接口
-将
+## 集成
```
+将上一步生成的:
libpaddle-mobile.a
-io.h
-program.h
-types.h
-lod_tensor.h
-tensor.h
-```
-拖入工程, io.h 为接口文件, 可在 [github](https://github.com/PaddlePaddle/paddle-mobile/blob/develop/src/io/io.h)上查看接口注释
-#### 如使用 oc 接口
-将在xcode 编译生成的
-```
-libPaddleMobile.a
+/src/ios_io/ 下的
PaddleMobile.h
```
-拖入工程, 接口如下:
+拖入工程
+
+#### oc 接口
+
+接口如下:
```
/*
- 创建单例对象
+ 创建对象
*/
-+ (instancetype)sharedInstance;
+- (instancetype)init;
/*
load 模型, 开辟内存
@@ -59,12 +54,12 @@ PaddleMobile.h
/*
进行预测, means 和 scale 为训练模型时的预处理参数, 如训练时没有做这些预处理则直接使用 predict
*/
-- (NSArray *)predict:(CGImageRef)image means:(NSArray *)means scale:(float)scale;
+- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim means:(NSArray *)means scale:(float)scale;
/*
进行预测
*/
-- (NSArray *)predict:(CGImageRef)image;
+- (NSArray *)predict:(CGImageRef)image dim:(NSArray *)dim;
/*
清理内存
@@ -74,7 +69,8 @@ PaddleMobile.h
```
-#Android开发文档
+# Android开发文档
+
用户可通过如下两种方式,交叉编译Android平台上适用的paddle-mobile库:
- 基于Docker容器编译
@@ -196,27 +192,51 @@ which to test :
##部署
Android应用可通过JNI接口调用底层C/C++,paddle-mobile对外提供的JNI接口如下:
-##### 1 load接口 加载模型参数
-
+##### 1 load接口 加载模型参数
+- 用于加载参数文件分散的模型
```
-/*
-*@param modelPath 模型文件路径
-*@return jboolean
-*/
-JNIEXPORT jboolean JNICALL Java_com_baidu_paddle_PML_load(JNIEnv *env,
- jclass thiz,
- jstring modelPath);
+/**
+ * Load seperated parameters
+ * @param modelDir
+ * @return
+ */
+ public static native boolean load(String modelDir);
```
+- 用于加载参数文件合并的模型文件
+```
+/**
+ * Load combined parameters
+ * @param modelPath
+ * @param paramPath
+ * @return
+ */
+ public static native boolean loadCombined(String modelPath,String paramPath);
+```
##### 2 predict接口 执行预测
-
+- 接受预处理过的RGB数组的predict接口
```
/**
*@param buf 输入数据
*@return 输出数据
-JNIEXPORT jfloatArray JNICALL Java_com_baidu_paddle_PML_predict(
+JNIEXPORT jfloatArray JNICALL Java_com_baidu_paddle_PML_predictImage(
JNIEnv *env, jclass thiz, jfloatArray buf);
```
+- 接受原始yuv数据的predict接口
+```
+ /**
+ *
+ * @param buf yuv420格式的字节数组
+ * @param imgWidth yuv数据的宽
+ * @param imgHeight yuv数据的高
+ * @param ddims 输入数据的形状
+ * @param meanValues 模型训练时各通道的均值
+ * @return
+ */
+
+ public static native float[] predictYuv(byte[] buf, int imgWidth, int imgHeight, int[] ddims, float[]meanValues);
+
+```
##### 3 clear接口 销毁实例、清理内存操作
```
diff --git a/ios/PaddleMobile.xcworkspace/contents.xcworkspacedata b/ios/PaddleMobile.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 7c3243eefa5fdeaa40b8697bd8e0b5ba2daeeb55..0000000000000000000000000000000000000000
--- a/ios/PaddleMobile.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate b/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate
deleted file mode 100644
index a74810d22b023830a6e44d19984ff92302eb84a3..0000000000000000000000000000000000000000
Binary files a/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
diff --git a/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
deleted file mode 100644
index ed9a9b4d42c454d27017c91c04ce8b8a518ac029..0000000000000000000000000000000000000000
--- a/ios/PaddleMobile.xcworkspace/xcuserdata/liuruilong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.pbxproj b/ios/PaddleMobile/PaddleMobile.xcodeproj/project.pbxproj
deleted file mode 100644
index 7907ac8955996b25f9173a6114bccad3b1e1bed9..0000000000000000000000000000000000000000
--- a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,965 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 50;
- objects = {
-
-/* Begin PBXBuildFile section */
- FC086BB420E7839B00D85EF7 /* PaddleMobile.m in Sources */ = {isa = PBXBuildFile; fileRef = FC086BB320E7839B00D85EF7 /* PaddleMobile.m */; };
- FC086BB520E7839B00D85EF7 /* PaddleMobile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FC086BB220E7839B00D85EF7 /* PaddleMobile.h */; };
- FC086DC620E7841E00D85EF7 /* t_malloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086CFE20E7841E00D85EF7 /* t_malloc.cpp */; };
- FC086DC720E7841E00D85EF7 /* lrn_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0320E7841E00D85EF7 /* lrn_op.cpp */; };
- FC086DC820E7841E00D85EF7 /* sigmoid_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0520E7841E00D85EF7 /* sigmoid_op.cpp */; };
- FC086DC920E7841E00D85EF7 /* box_coder_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0620E7841E00D85EF7 /* box_coder_op.cpp */; };
- FC086DCA20E7841E00D85EF7 /* feed_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0720E7841E00D85EF7 /* feed_op.cpp */; };
- FC086DCB20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0A20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp */; };
- FC086DCC20E7841E00D85EF7 /* reshape_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0B20E7841E00D85EF7 /* reshape_op.cpp */; };
- FC086DCD20E7841E00D85EF7 /* concat_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0C20E7841E00D85EF7 /* concat_op.cpp */; };
- FC086DCE20E7841E00D85EF7 /* transpose_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0D20E7841E00D85EF7 /* transpose_op.cpp */; };
- FC086DCF20E7841E00D85EF7 /* prior_box_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0E20E7841E00D85EF7 /* prior_box_op.cpp */; };
- FC086DD020E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D0F20E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp */; };
- FC086DD120E7841E00D85EF7 /* softmax_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1520E7841E00D85EF7 /* softmax_op.cpp */; };
- FC086DD220E7841E00D85EF7 /* depthwise_conv_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1720E7841E00D85EF7 /* depthwise_conv_op.cpp */; };
- FC086DD320E7841E00D85EF7 /* elementwise_add_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1A20E7841E00D85EF7 /* elementwise_add_op.cpp */; };
- FC086DD420E7841E00D85EF7 /* gemm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D1F20E7841E00D85EF7 /* gemm.cpp */; };
- FC086DD520E7841E00D85EF7 /* pool_2x2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2220E7841E00D85EF7 /* pool_2x2.cpp */; };
- FC086DD620E7841E00D85EF7 /* im2col.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2320E7841E00D85EF7 /* im2col.cpp */; };
- FC086DD720E7841E00D85EF7 /* vol2col.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2620E7841E00D85EF7 /* vol2col.cpp */; };
- FC086DD820E7841E00D85EF7 /* math_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2720E7841E00D85EF7 /* math_function.cpp */; };
- FC086DD920E7841E00D85EF7 /* pool_3x3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2820E7841E00D85EF7 /* pool_3x3.cpp */; };
- FC086DDA20E7841E00D85EF7 /* pooling.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2B20E7841E00D85EF7 /* pooling.cpp */; };
- FC086DDB20E7841E00D85EF7 /* depthwise_conv_3x3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2D20E7841E00D85EF7 /* depthwise_conv_3x3.cpp */; };
- FC086DDC20E7841E00D85EF7 /* softmax.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D2F20E7841E00D85EF7 /* softmax.cpp */; };
- FC086DDD20E7841E00D85EF7 /* fetch_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3420E7841E00D85EF7 /* fetch_op.cpp */; };
- FC086DDE20E7841E00D85EF7 /* fusion_conv_add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3520E7841E00D85EF7 /* fusion_conv_add.cpp */; };
- FC086DDF20E7841E00D85EF7 /* op_param.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3620E7841E00D85EF7 /* op_param.cpp */; };
- FC086DE020E7841E00D85EF7 /* mul_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3A20E7841E00D85EF7 /* mul_op.cpp */; };
- FC086DE120E7841E00D85EF7 /* relu_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3B20E7841E00D85EF7 /* relu_op.cpp */; };
- FC086DE220E7841E00D85EF7 /* conv_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3C20E7841E00D85EF7 /* conv_op.cpp */; };
- FC086DE320E7841E00D85EF7 /* fusion_fc_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D3D20E7841E00D85EF7 /* fusion_fc_op.cpp */; };
- FC086DE420E7841E00D85EF7 /* batchnorm_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D4020E7841E00D85EF7 /* batchnorm_op.cpp */; };
- FC086DE520E7841E00D85EF7 /* pool_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D4220E7841E00D85EF7 /* pool_op.cpp */; };
- FC086DE620E7841E00D85EF7 /* multiclass_nms_op.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D4420E7841E00D85EF7 /* multiclass_nms_op.cpp */; };
- FC086DE720E7841E00D85EF7 /* acl_tensor.cc in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5220E7841E00D85EF7 /* acl_tensor.cc */; };
- FC086DE820E7841E00D85EF7 /* acl_operator.cc in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5320E7841E00D85EF7 /* acl_operator.cc */; };
- FC086DE920E7841E00D85EF7 /* conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5420E7841E00D85EF7 /* conv_kernel.cpp */; };
- FC086DEA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5620E7841E00D85EF7 /* conv_add_kernel.cpp */; };
- FC086DEB20E7841E00D85EF7 /* relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5820E7841E00D85EF7 /* relu_kernel.cpp */; };
- FC086DEC20E7841E00D85EF7 /* mul_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5920E7841E00D85EF7 /* mul_kernel.cpp */; };
- FC086DED20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5A20E7841E00D85EF7 /* elementwise_add_kernel.cpp */; };
- FC086DEE20E7841E00D85EF7 /* softmax_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5C20E7841E00D85EF7 /* softmax_kernel.cpp */; };
- FC086DEF20E7841E00D85EF7 /* concat_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5D20E7841E00D85EF7 /* concat_kernel.cpp */; };
- FC086DF020E7841E00D85EF7 /* pool_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5E20E7841E00D85EF7 /* pool_kernel.cpp */; };
- FC086DF120E7841E00D85EF7 /* reshape_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D5F20E7841E00D85EF7 /* reshape_kernel.cpp */; };
- FC086DF220E7841E00D85EF7 /* lrn_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6020E7841E00D85EF7 /* lrn_kernel.cpp */; };
- FC086DF320E7841E00D85EF7 /* fushion_fc_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6120E7841E00D85EF7 /* fushion_fc_kernel.cpp */; };
- FC086DF420E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6220E7841E00D85EF7 /* batchnorm_kernel.cpp */; };
- FC086DF520E7841E00D85EF7 /* conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D6F20E7841E00D85EF7 /* conv_kernel.cpp */; };
- FC086DF620E7841E00D85EF7 /* prior_box_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7420E7841E00D85EF7 /* prior_box_kernel.cpp */; };
- FC086DF720E7841E00D85EF7 /* conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7520E7841E00D85EF7 /* conv_kernel.cpp */; };
- FC086DF820E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7620E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp */; };
- FC086DF920E7841E00D85EF7 /* box_coder_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7720E7841E00D85EF7 /* box_coder_kernel.cpp */; };
- FC086DFA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7820E7841E00D85EF7 /* conv_add_kernel.cpp */; };
- FC086DFB20E7841E00D85EF7 /* sigmoid_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7920E7841E00D85EF7 /* sigmoid_kernel.cpp */; };
- FC086DFC20E7841E00D85EF7 /* relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7A20E7841E00D85EF7 /* relu_kernel.cpp */; };
- FC086DFD20E7841E00D85EF7 /* mul_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7B20E7841E00D85EF7 /* mul_kernel.cpp */; };
- FC086DFE20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7C20E7841E00D85EF7 /* elementwise_add_kernel.cpp */; };
- FC086DFF20E7841E00D85EF7 /* conv_add_relu_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7D20E7841E00D85EF7 /* conv_add_relu_kernel.cpp */; };
- FC086E0020E7841E00D85EF7 /* transpose_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7E20E7841E00D85EF7 /* transpose_kernel.cpp */; };
- FC086E0120E7841E00D85EF7 /* depthwise_conv_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D7F20E7841E00D85EF7 /* depthwise_conv_kernel.cpp */; };
- FC086E0220E7841E00D85EF7 /* softmax_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8020E7841E00D85EF7 /* softmax_kernel.cpp */; };
- FC086E0320E7841E00D85EF7 /* concat_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8120E7841E00D85EF7 /* concat_kernel.cpp */; };
- FC086E0420E7841E00D85EF7 /* fusion_fc_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8220E7841E00D85EF7 /* fusion_fc_kernel.cpp */; };
- FC086E0520E7841E00D85EF7 /* pool_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8320E7841E00D85EF7 /* pool_kernel.cpp */; };
- FC086E0620E7841E00D85EF7 /* reshape_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8420E7841E00D85EF7 /* reshape_kernel.cpp */; };
- FC086E0720E7841E00D85EF7 /* lrn_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8520E7841E00D85EF7 /* lrn_kernel.cpp */; };
- FC086E0820E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8620E7841E00D85EF7 /* batchnorm_kernel.cpp */; };
- FC086E0920E7841E00D85EF7 /* multiclass_nms_kernel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8720E7841E00D85EF7 /* multiclass_nms_kernel.cpp */; };
- FC086E0A20E7841E00D85EF7 /* framework.pb-c.c in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8B20E7841E00D85EF7 /* framework.pb-c.c */; };
- FC086E0B20E7841E00D85EF7 /* tensor_util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8C20E7841E00D85EF7 /* tensor_util.cpp */; };
- FC086E0C20E7841E00D85EF7 /* operator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D8F20E7841E00D85EF7 /* operator.cpp */; };
- FC086E0D20E7841E00D85EF7 /* ddim.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9020E7841E00D85EF7 /* ddim.cpp */; };
- FC086E0E20E7841E00D85EF7 /* scope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9320E7841E00D85EF7 /* scope.cpp */; };
- FC086E0F20E7841E00D85EF7 /* attribute.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9920E7841E00D85EF7 /* attribute.cpp */; };
- FC086E1020E7841E00D85EF7 /* op_desc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9C20E7841E00D85EF7 /* op_desc.cpp */; };
- FC086E1120E7841E00D85EF7 /* program_desc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086D9D20E7841E00D85EF7 /* program_desc.cpp */; };
- FC086E1220E7841E00D85EF7 /* node.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DA320E7841E00D85EF7 /* node.cpp */; };
- FC086E1320E7841E00D85EF7 /* program_optimize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DA620E7841E00D85EF7 /* program_optimize.cpp */; };
- FC086E1420E7841E00D85EF7 /* block_desc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DA720E7841E00D85EF7 /* block_desc.cpp */; };
- FC086E1520E7841E00D85EF7 /* lod_tensor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DAB20E7841E00D85EF7 /* lod_tensor.cpp */; };
- FC086E1620E7841E00D85EF7 /* io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DB320E7841E00D85EF7 /* io.cpp */; };
- FC086E1720E7841E00D85EF7 /* types.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DB620E7841E00D85EF7 /* types.cpp */; };
- FC086E1820E7841E00D85EF7 /* openmp-fix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DBA20E7841E00D85EF7 /* openmp-fix.cpp */; };
- FC086E1920E7841E00D85EF7 /* protobuf-c.c in Sources */ = {isa = PBXBuildFile; fileRef = FC086DC120E7841E00D85EF7 /* protobuf-c.c */; };
- FC086E1A20E7841E00D85EF7 /* paddle_mobile_jni.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FC086DC420E7841E00D85EF7 /* paddle_mobile_jni.cpp */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- FC086BAD20E7839B00D85EF7 /* CopyFiles */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = "include/$(PRODUCT_NAME)";
- dstSubfolderSpec = 16;
- files = (
- FC086BB520E7839B00D85EF7 /* PaddleMobile.h in CopyFiles */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- FC086BAF20E7839B00D85EF7 /* libPaddleMobile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPaddleMobile.a; sourceTree = BUILT_PRODUCTS_DIR; };
- FC086BB220E7839B00D85EF7 /* PaddleMobile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PaddleMobile.h; sourceTree = ""; };
- FC086BB320E7839B00D85EF7 /* PaddleMobile.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PaddleMobile.m; sourceTree = ""; };
- FC086CFE20E7841E00D85EF7 /* t_malloc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = t_malloc.cpp; sourceTree = ""; };
- FC086CFF20E7841E00D85EF7 /* t_malloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = t_malloc.h; sourceTree = ""; };
- FC086D0120E7841E00D85EF7 /* feed_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = feed_op.h; sourceTree = ""; };
- FC086D0220E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_conv_add_bn_relu_op.h; sourceTree = ""; };
- FC086D0320E7841E00D85EF7 /* lrn_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lrn_op.cpp; sourceTree = ""; };
- FC086D0420E7841E00D85EF7 /* op_param.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_param.h; sourceTree = ""; };
- FC086D0520E7841E00D85EF7 /* sigmoid_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sigmoid_op.cpp; sourceTree = ""; };
- FC086D0620E7841E00D85EF7 /* box_coder_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = box_coder_op.cpp; sourceTree = ""; };
- FC086D0720E7841E00D85EF7 /* feed_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feed_op.cpp; sourceTree = ""; };
- FC086D0820E7841E00D85EF7 /* mul_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mul_op.h; sourceTree = ""; };
- FC086D0920E7841E00D85EF7 /* prior_box_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prior_box_op.h; sourceTree = ""; };
- FC086D0A20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_conv_add_bn_relu_op.cpp; sourceTree = ""; };
- FC086D0B20E7841E00D85EF7 /* reshape_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reshape_op.cpp; sourceTree = ""; };
- FC086D0C20E7841E00D85EF7 /* concat_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concat_op.cpp; sourceTree = ""; };
- FC086D0D20E7841E00D85EF7 /* transpose_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transpose_op.cpp; sourceTree = ""; };
- FC086D0E20E7841E00D85EF7 /* prior_box_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prior_box_op.cpp; sourceTree = ""; };
- FC086D0F20E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_conv_add_relu_op.cpp; sourceTree = ""; };
- FC086D1020E7841E00D85EF7 /* lrn_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lrn_op.h; sourceTree = ""; };
- FC086D1120E7841E00D85EF7 /* multiclass_nms_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = multiclass_nms_op.h; sourceTree = ""; };
- FC086D1220E7841E00D85EF7 /* relu_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relu_op.h; sourceTree = ""; };
- FC086D1320E7841E00D85EF7 /* fusion_conv_add.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_conv_add.h; sourceTree = ""; };
- FC086D1420E7841E00D85EF7 /* conv_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_op.h; sourceTree = ""; };
- FC086D1520E7841E00D85EF7 /* softmax_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax_op.cpp; sourceTree = ""; };
- FC086D1620E7841E00D85EF7 /* pool_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_op.h; sourceTree = ""; };
- FC086D1720E7841E00D85EF7 /* depthwise_conv_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = depthwise_conv_op.cpp; sourceTree = ""; };
- FC086D1820E7841E00D85EF7 /* softmax_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = softmax_op.h; sourceTree = ""; };
- FC086D1920E7841E00D85EF7 /* elementwise_add_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = elementwise_add_op.h; sourceTree = ""; };
- FC086D1A20E7841E00D85EF7 /* elementwise_add_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = elementwise_add_op.cpp; sourceTree = ""; };
- FC086D1B20E7841E00D85EF7 /* fetch_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fetch_op.h; sourceTree = ""; };
- FC086D1D20E7841E00D85EF7 /* elementwise_op_function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = elementwise_op_function.h; sourceTree = ""; };
- FC086D1E20E7841E00D85EF7 /* softmax.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = softmax.h; sourceTree = ""; };
- FC086D1F20E7841E00D85EF7 /* gemm.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gemm.cpp; sourceTree = ""; };
- FC086D2020E7841E00D85EF7 /* math_function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_function.h; sourceTree = ""; };
- FC086D2120E7841E00D85EF7 /* conv_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_func.h; sourceTree = ""; };
- FC086D2220E7841E00D85EF7 /* pool_2x2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_2x2.cpp; sourceTree = ""; };
- FC086D2320E7841E00D85EF7 /* im2col.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = im2col.cpp; sourceTree = ""; };
- FC086D2420E7841E00D85EF7 /* gemm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gemm.h; sourceTree = ""; };
- FC086D2520E7841E00D85EF7 /* im2col.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = im2col.h; sourceTree = ""; };
- FC086D2620E7841E00D85EF7 /* vol2col.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vol2col.cpp; sourceTree = ""; };
- FC086D2720E7841E00D85EF7 /* math_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = math_function.cpp; sourceTree = ""; };
- FC086D2820E7841E00D85EF7 /* pool_3x3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_3x3.cpp; sourceTree = ""; };
- FC086D2920E7841E00D85EF7 /* pool_2x2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_2x2.h; sourceTree = ""; };
- FC086D2A20E7841E00D85EF7 /* depthwise_conv_3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_3x3.h; sourceTree = ""; };
- FC086D2B20E7841E00D85EF7 /* pooling.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pooling.cpp; sourceTree = ""; };
- FC086D2C20E7841E00D85EF7 /* pool_3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_3x3.h; sourceTree = ""; };
- FC086D2D20E7841E00D85EF7 /* depthwise_conv_3x3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = depthwise_conv_3x3.cpp; sourceTree = ""; };
- FC086D2E20E7841E00D85EF7 /* vol2col.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vol2col.h; sourceTree = ""; };
- FC086D2F20E7841E00D85EF7 /* softmax.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax.cpp; sourceTree = ""; };
- FC086D3020E7841E00D85EF7 /* transform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transform.h; sourceTree = ""; };
- FC086D3120E7841E00D85EF7 /* pooling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pooling.h; sourceTree = ""; };
- FC086D3220E7841E00D85EF7 /* math_func_neon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = math_func_neon.h; sourceTree = ""; };
- FC086D3320E7841E00D85EF7 /* fusion_conv_add_relu_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_conv_add_relu_op.h; sourceTree = ""; };
- FC086D3420E7841E00D85EF7 /* fetch_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fetch_op.cpp; sourceTree = ""; };
- FC086D3520E7841E00D85EF7 /* fusion_conv_add.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_conv_add.cpp; sourceTree = ""; };
- FC086D3620E7841E00D85EF7 /* op_param.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = op_param.cpp; sourceTree = ""; };
- FC086D3720E7841E00D85EF7 /* transpose_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transpose_op.h; sourceTree = ""; };
- FC086D3820E7841E00D85EF7 /* fusion_fc_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_fc_op.h; sourceTree = ""; };
- FC086D3920E7841E00D85EF7 /* batchnorm_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = batchnorm_op.h; sourceTree = ""; };
- FC086D3A20E7841E00D85EF7 /* mul_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mul_op.cpp; sourceTree = ""; };
- FC086D3B20E7841E00D85EF7 /* relu_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relu_op.cpp; sourceTree = ""; };
- FC086D3C20E7841E00D85EF7 /* conv_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_op.cpp; sourceTree = ""; };
- FC086D3D20E7841E00D85EF7 /* fusion_fc_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_fc_op.cpp; sourceTree = ""; };
- FC086D3E20E7841E00D85EF7 /* box_coder_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = box_coder_op.h; sourceTree = ""; };
- FC086D3F20E7841E00D85EF7 /* concat_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = concat_op.h; sourceTree = ""; };
- FC086D4020E7841E00D85EF7 /* batchnorm_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = batchnorm_op.cpp; sourceTree = ""; };
- FC086D4120E7841E00D85EF7 /* reshape_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reshape_op.h; sourceTree = ""; };
- FC086D4220E7841E00D85EF7 /* pool_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_op.cpp; sourceTree = ""; };
- FC086D4320E7841E00D85EF7 /* sigmoid_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sigmoid_op.h; sourceTree = ""; };
- FC086D4420E7841E00D85EF7 /* multiclass_nms_op.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multiclass_nms_op.cpp; sourceTree = ""; };
- FC086D4620E7841E00D85EF7 /* relu_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = relu_kernel.h; sourceTree = ""; };
- FC086D4720E7841E00D85EF7 /* multiclass_nms_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = multiclass_nms_kernel.h; sourceTree = ""; };
- FC086D4820E7841E00D85EF7 /* depthwise_conv_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_kernel.h; sourceTree = ""; };
- FC086D4920E7841E00D85EF7 /* lrn_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lrn_kernel.h; sourceTree = ""; };
- FC086D4A20E7841E00D85EF7 /* pool_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pool_kernel.h; sourceTree = ""; };
- FC086D4B20E7841E00D85EF7 /* fusion_fc_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_fc_kernel.h; sourceTree = ""; };
- FC086D4C20E7841E00D85EF7 /* box_coder_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = box_coder_kernel.h; sourceTree = ""; };
- FC086D4D20E7841E00D85EF7 /* concat_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = concat_kernel.h; sourceTree = ""; };
- FC086D4E20E7841E00D85EF7 /* mul_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mul_kernel.h; sourceTree = ""; };
- FC086D4F20E7841E00D85EF7 /* softmax_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = softmax_kernel.h; sourceTree = ""; };
- FC086D5020E7841E00D85EF7 /* batchnorm_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = batchnorm_kernel.h; sourceTree = ""; };
- FC086D5220E7841E00D85EF7 /* acl_tensor.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = acl_tensor.cc; sourceTree = ""; };
- FC086D5320E7841E00D85EF7 /* acl_operator.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = acl_operator.cc; sourceTree = ""; };
- FC086D5420E7841E00D85EF7 /* conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_kernel.cpp; sourceTree = ""; };
- FC086D5520E7841E00D85EF7 /* acl_operator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_operator.h; sourceTree = ""; };
- FC086D5620E7841E00D85EF7 /* conv_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_kernel.cpp; sourceTree = ""; };
- FC086D5720E7841E00D85EF7 /* acl_tensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acl_tensor.h; sourceTree = ""; };
- FC086D5820E7841E00D85EF7 /* relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relu_kernel.cpp; sourceTree = ""; };
- FC086D5920E7841E00D85EF7 /* mul_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mul_kernel.cpp; sourceTree = ""; };
- FC086D5A20E7841E00D85EF7 /* elementwise_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = elementwise_add_kernel.cpp; sourceTree = ""; };
- FC086D5C20E7841E00D85EF7 /* softmax_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax_kernel.cpp; sourceTree = ""; };
- FC086D5D20E7841E00D85EF7 /* concat_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concat_kernel.cpp; sourceTree = ""; };
- FC086D5E20E7841E00D85EF7 /* pool_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_kernel.cpp; sourceTree = ""; };
- FC086D5F20E7841E00D85EF7 /* reshape_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reshape_kernel.cpp; sourceTree = ""; };
- FC086D6020E7841E00D85EF7 /* lrn_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lrn_kernel.cpp; sourceTree = ""; };
- FC086D6120E7841E00D85EF7 /* fushion_fc_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fushion_fc_kernel.cpp; sourceTree = ""; };
- FC086D6220E7841E00D85EF7 /* batchnorm_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = batchnorm_kernel.cpp; sourceTree = ""; };
- FC086D6320E7841E00D85EF7 /* elementwise_add_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = elementwise_add_kernel.h; sourceTree = ""; };
- FC086D6520E7841E00D85EF7 /* conv_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_arm_func.h; sourceTree = ""; };
- FC086D6620E7841E00D85EF7 /* conv_add_bn_relu_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_bn_relu_func.h; sourceTree = ""; };
- FC086D6720E7841E00D85EF7 /* conv_add_relu_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_relu_arm_func.h; sourceTree = ""; };
- FC086D6820E7841E00D85EF7 /* depthwise_conv_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_arm_func.h; sourceTree = ""; };
- FC086D6920E7841E00D85EF7 /* batchnorm_arm_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = batchnorm_arm_func.h; sourceTree = ""; };
- FC086D6A20E7841E00D85EF7 /* conv_add_relu_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_relu_kernel.h; sourceTree = ""; };
- FC086D6B20E7841E00D85EF7 /* reshape_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = reshape_kernel.h; sourceTree = ""; };
- FC086D6C20E7841E00D85EF7 /* transpose_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = transpose_kernel.h; sourceTree = ""; };
- FC086D6D20E7841E00D85EF7 /* conv_add_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_kernel.h; sourceTree = ""; };
- FC086D6F20E7841E00D85EF7 /* conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_kernel.cpp; sourceTree = ""; };
- FC086D7020E7841E00D85EF7 /* conv_add_bn_relu_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_add_bn_relu_kernel.h; sourceTree = ""; };
- FC086D7120E7841E00D85EF7 /* prior_box_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = prior_box_kernel.h; sourceTree = ""; };
- FC086D7220E7841E00D85EF7 /* conv_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conv_kernel.h; sourceTree = ""; };
- FC086D7420E7841E00D85EF7 /* prior_box_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = prior_box_kernel.cpp; sourceTree = ""; };
- FC086D7520E7841E00D85EF7 /* conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_kernel.cpp; sourceTree = ""; };
- FC086D7620E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_bn_relu_kernel.cpp; sourceTree = ""; };
- FC086D7720E7841E00D85EF7 /* box_coder_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = box_coder_kernel.cpp; sourceTree = ""; };
- FC086D7820E7841E00D85EF7 /* conv_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_kernel.cpp; sourceTree = ""; };
- FC086D7920E7841E00D85EF7 /* sigmoid_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sigmoid_kernel.cpp; sourceTree = ""; };
- FC086D7A20E7841E00D85EF7 /* relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = relu_kernel.cpp; sourceTree = ""; };
- FC086D7B20E7841E00D85EF7 /* mul_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mul_kernel.cpp; sourceTree = ""; };
- FC086D7C20E7841E00D85EF7 /* elementwise_add_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = elementwise_add_kernel.cpp; sourceTree = ""; };
- FC086D7D20E7841E00D85EF7 /* conv_add_relu_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = conv_add_relu_kernel.cpp; sourceTree = ""; };
- FC086D7E20E7841E00D85EF7 /* transpose_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = transpose_kernel.cpp; sourceTree = ""; };
- FC086D7F20E7841E00D85EF7 /* depthwise_conv_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = depthwise_conv_kernel.cpp; sourceTree = ""; };
- FC086D8020E7841E00D85EF7 /* softmax_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = softmax_kernel.cpp; sourceTree = ""; };
- FC086D8120E7841E00D85EF7 /* concat_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = concat_kernel.cpp; sourceTree = ""; };
- FC086D8220E7841E00D85EF7 /* fusion_fc_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fusion_fc_kernel.cpp; sourceTree = ""; };
- FC086D8320E7841E00D85EF7 /* pool_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pool_kernel.cpp; sourceTree = ""; };
- FC086D8420E7841E00D85EF7 /* reshape_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = reshape_kernel.cpp; sourceTree = ""; };
- FC086D8520E7841E00D85EF7 /* lrn_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lrn_kernel.cpp; sourceTree = ""; };
- FC086D8620E7841E00D85EF7 /* batchnorm_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = batchnorm_kernel.cpp; sourceTree = ""; };
- FC086D8720E7841E00D85EF7 /* multiclass_nms_kernel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = multiclass_nms_kernel.cpp; sourceTree = ""; };
- FC086D8820E7841E00D85EF7 /* sigmoid_kernel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sigmoid_kernel.h; sourceTree = ""; };
- FC086D8920E7841E00D85EF7 /* depthwise_conv_op.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = depthwise_conv_op.h; sourceTree = ""; };
- FC086D8B20E7841E00D85EF7 /* framework.pb-c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "framework.pb-c.c"; sourceTree = ""; };
- FC086D8C20E7841E00D85EF7 /* tensor_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tensor_util.cpp; sourceTree = ""; };
- FC086D8D20E7841E00D85EF7 /* operator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operator.h; sourceTree = ""; };
- FC086D8E20E7841E00D85EF7 /* op_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_info.h; sourceTree = ""; };
- FC086D8F20E7841E00D85EF7 /* operator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = operator.cpp; sourceTree = ""; };
- FC086D9020E7841E00D85EF7 /* ddim.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ddim.cpp; sourceTree = ""; };
- FC086D9120E7841E00D85EF7 /* tensor_util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensor_util.h; sourceTree = ""; };
- FC086D9220E7841E00D85EF7 /* variable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = variable.h; sourceTree = ""; };
- FC086D9320E7841E00D85EF7 /* scope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scope.cpp; sourceTree = ""; };
- FC086D9420E7841E00D85EF7 /* data_layout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = data_layout.h; sourceTree = ""; };
- FC086D9520E7841E00D85EF7 /* lod_tensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lod_tensor.h; sourceTree = ""; };
- FC086D9620E7841E00D85EF7 /* dim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dim.h; sourceTree = ""; };
- FC086D9720E7841E00D85EF7 /* framework.pb-c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "framework.pb-c.h"; sourceTree = ""; };
- FC086D9820E7841E00D85EF7 /* op_kernel_type.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_kernel_type.h; sourceTree = ""; };
- FC086D9920E7841E00D85EF7 /* attribute.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = attribute.cpp; sourceTree = ""; };
- FC086D9A20E7841E00D85EF7 /* op_proto_maker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_proto_maker.h; sourceTree = ""; };
- FC086D9C20E7841E00D85EF7 /* op_desc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = op_desc.cpp; sourceTree = ""; };
- FC086D9D20E7841E00D85EF7 /* program_desc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = program_desc.cpp; sourceTree = ""; };
- FC086D9E20E7841E00D85EF7 /* var_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = var_desc.h; sourceTree = ""; };
- FC086D9F20E7841E00D85EF7 /* program_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = program_desc.h; sourceTree = ""; };
- FC086DA020E7841E00D85EF7 /* op_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_desc.h; sourceTree = ""; };
- FC086DA220E7841E00D85EF7 /* fusion_op_register.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fusion_op_register.h; sourceTree = ""; };
- FC086DA320E7841E00D85EF7 /* node.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = node.cpp; sourceTree = ""; };
- FC086DA420E7841E00D85EF7 /* node.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = node.h; sourceTree = ""; };
- FC086DA520E7841E00D85EF7 /* program_optimize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = program_optimize.h; sourceTree = ""; };
- FC086DA620E7841E00D85EF7 /* program_optimize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = program_optimize.cpp; sourceTree = ""; };
- FC086DA720E7841E00D85EF7 /* block_desc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = block_desc.cpp; sourceTree = ""; };
- FC086DA820E7841E00D85EF7 /* program.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = program.h; sourceTree = ""; };
- FC086DA920E7841E00D85EF7 /* tensor_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensor_desc.h; sourceTree = ""; };
- FC086DAA20E7841E00D85EF7 /* block_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = block_desc.h; sourceTree = ""; };
- FC086DAB20E7841E00D85EF7 /* lod_tensor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lod_tensor.cpp; sourceTree = ""; };
- FC086DAC20E7841E00D85EF7 /* framework.proto */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = framework.proto; sourceTree = ""; };
- FC086DAD20E7841E00D85EF7 /* ddim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ddim.h; sourceTree = ""; };
- FC086DAE20E7841E00D85EF7 /* attribute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = attribute.h; sourceTree = ""; };
- FC086DAF20E7841E00D85EF7 /* scope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scope.h; sourceTree = ""; };
- FC086DB020E7841E00D85EF7 /* tensor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tensor.h; sourceTree = ""; };
- FC086DB120E7841E00D85EF7 /* op_registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = op_registry.h; sourceTree = ""; };
- FC086DB320E7841E00D85EF7 /* io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = io.cpp; sourceTree = ""; };
- FC086DB420E7841E00D85EF7 /* io.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = io.h; sourceTree = ""; };
- FC086DB620E7841E00D85EF7 /* types.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = types.cpp; sourceTree = ""; };
- FC086DB720E7841E00D85EF7 /* threadpool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = threadpool.h; sourceTree = ""; };
- FC086DB820E7841E00D85EF7 /* types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; };
- FC086DB920E7841E00D85EF7 /* protobuf-c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "protobuf-c.h"; sourceTree = ""; };
- FC086DBA20E7841E00D85EF7 /* openmp-fix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "openmp-fix.cpp"; sourceTree = ""; };
- FC086DBB20E7841E00D85EF7 /* dep_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dep_core.h; sourceTree = ""; };
- FC086DBC20E7841E00D85EF7 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; };
- FC086DBD20E7841E00D85EF7 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; };
- FC086DBE20E7841E00D85EF7 /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macros.h; sourceTree = ""; };
- FC086DBF20E7841E00D85EF7 /* type_define.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = type_define.h; sourceTree = ""; };
- FC086DC020E7841E00D85EF7 /* enforce.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = enforce.h; sourceTree = ""; };
- FC086DC120E7841E00D85EF7 /* protobuf-c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "protobuf-c.c"; sourceTree = ""; };
- FC086DC220E7841E00D85EF7 /* variant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = variant.h; sourceTree = ""; };
- FC086DC420E7841E00D85EF7 /* paddle_mobile_jni.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = paddle_mobile_jni.cpp; sourceTree = ""; };
- FC086DC520E7841E00D85EF7 /* paddle_mobile_jni.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = paddle_mobile_jni.h; sourceTree = ""; };
- FC2428A520E78DF20095932F /* MacroDefine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MacroDefine.h; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- FC086BAC20E7839B00D85EF7 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- FC086BA620E7839B00D85EF7 = {
- isa = PBXGroup;
- children = (
- FC086BB120E7839B00D85EF7 /* PaddleMobile */,
- FC086BB020E7839B00D85EF7 /* Products */,
- );
- sourceTree = "";
- };
- FC086BB020E7839B00D85EF7 /* Products */ = {
- isa = PBXGroup;
- children = (
- FC086BAF20E7839B00D85EF7 /* libPaddleMobile.a */,
- );
- name = Products;
- sourceTree = "";
- };
- FC086BB120E7839B00D85EF7 /* PaddleMobile */ = {
- isa = PBXGroup;
- children = (
- FC086CFC20E7841E00D85EF7 /* src */,
- FC086BB220E7839B00D85EF7 /* PaddleMobile.h */,
- FC086BB320E7839B00D85EF7 /* PaddleMobile.m */,
- FC2428A520E78DF20095932F /* MacroDefine.h */,
- );
- path = PaddleMobile;
- sourceTree = "";
- };
- FC086CFC20E7841E00D85EF7 /* src */ = {
- isa = PBXGroup;
- children = (
- FC086CFD20E7841E00D85EF7 /* memory */,
- FC086D0020E7841E00D85EF7 /* operators */,
- FC086D8A20E7841E00D85EF7 /* framework */,
- FC086DB220E7841E00D85EF7 /* io */,
- FC086DB520E7841E00D85EF7 /* common */,
- FC086DC320E7841E00D85EF7 /* jni */,
- );
- name = src;
- path = ../../../src;
- sourceTree = "";
- };
- FC086CFD20E7841E00D85EF7 /* memory */ = {
- isa = PBXGroup;
- children = (
- FC086CFE20E7841E00D85EF7 /* t_malloc.cpp */,
- FC086CFF20E7841E00D85EF7 /* t_malloc.h */,
- );
- path = memory;
- sourceTree = "";
- };
- FC086D0020E7841E00D85EF7 /* operators */ = {
- isa = PBXGroup;
- children = (
- FC086D0120E7841E00D85EF7 /* feed_op.h */,
- FC086D0220E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.h */,
- FC086D0320E7841E00D85EF7 /* lrn_op.cpp */,
- FC086D0420E7841E00D85EF7 /* op_param.h */,
- FC086D0520E7841E00D85EF7 /* sigmoid_op.cpp */,
- FC086D0620E7841E00D85EF7 /* box_coder_op.cpp */,
- FC086D0720E7841E00D85EF7 /* feed_op.cpp */,
- FC086D0820E7841E00D85EF7 /* mul_op.h */,
- FC086D0920E7841E00D85EF7 /* prior_box_op.h */,
- FC086D0A20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp */,
- FC086D0B20E7841E00D85EF7 /* reshape_op.cpp */,
- FC086D0C20E7841E00D85EF7 /* concat_op.cpp */,
- FC086D0D20E7841E00D85EF7 /* transpose_op.cpp */,
- FC086D0E20E7841E00D85EF7 /* prior_box_op.cpp */,
- FC086D0F20E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp */,
- FC086D1020E7841E00D85EF7 /* lrn_op.h */,
- FC086D1120E7841E00D85EF7 /* multiclass_nms_op.h */,
- FC086D1220E7841E00D85EF7 /* relu_op.h */,
- FC086D1320E7841E00D85EF7 /* fusion_conv_add.h */,
- FC086D1420E7841E00D85EF7 /* conv_op.h */,
- FC086D1520E7841E00D85EF7 /* softmax_op.cpp */,
- FC086D1620E7841E00D85EF7 /* pool_op.h */,
- FC086D1720E7841E00D85EF7 /* depthwise_conv_op.cpp */,
- FC086D1820E7841E00D85EF7 /* softmax_op.h */,
- FC086D1920E7841E00D85EF7 /* elementwise_add_op.h */,
- FC086D1A20E7841E00D85EF7 /* elementwise_add_op.cpp */,
- FC086D1B20E7841E00D85EF7 /* fetch_op.h */,
- FC086D1C20E7841E00D85EF7 /* math */,
- FC086D3320E7841E00D85EF7 /* fusion_conv_add_relu_op.h */,
- FC086D3420E7841E00D85EF7 /* fetch_op.cpp */,
- FC086D3520E7841E00D85EF7 /* fusion_conv_add.cpp */,
- FC086D3620E7841E00D85EF7 /* op_param.cpp */,
- FC086D3720E7841E00D85EF7 /* transpose_op.h */,
- FC086D3820E7841E00D85EF7 /* fusion_fc_op.h */,
- FC086D3920E7841E00D85EF7 /* batchnorm_op.h */,
- FC086D3A20E7841E00D85EF7 /* mul_op.cpp */,
- FC086D3B20E7841E00D85EF7 /* relu_op.cpp */,
- FC086D3C20E7841E00D85EF7 /* conv_op.cpp */,
- FC086D3D20E7841E00D85EF7 /* fusion_fc_op.cpp */,
- FC086D3E20E7841E00D85EF7 /* box_coder_op.h */,
- FC086D3F20E7841E00D85EF7 /* concat_op.h */,
- FC086D4020E7841E00D85EF7 /* batchnorm_op.cpp */,
- FC086D4120E7841E00D85EF7 /* reshape_op.h */,
- FC086D4220E7841E00D85EF7 /* pool_op.cpp */,
- FC086D4320E7841E00D85EF7 /* sigmoid_op.h */,
- FC086D4420E7841E00D85EF7 /* multiclass_nms_op.cpp */,
- FC086D4520E7841E00D85EF7 /* kernel */,
- FC086D8920E7841E00D85EF7 /* depthwise_conv_op.h */,
- );
- path = operators;
- sourceTree = "";
- };
- FC086D1C20E7841E00D85EF7 /* math */ = {
- isa = PBXGroup;
- children = (
- FC086D1D20E7841E00D85EF7 /* elementwise_op_function.h */,
- FC086D1E20E7841E00D85EF7 /* softmax.h */,
- FC086D1F20E7841E00D85EF7 /* gemm.cpp */,
- FC086D2020E7841E00D85EF7 /* math_function.h */,
- FC086D2120E7841E00D85EF7 /* conv_func.h */,
- FC086D2220E7841E00D85EF7 /* pool_2x2.cpp */,
- FC086D2320E7841E00D85EF7 /* im2col.cpp */,
- FC086D2420E7841E00D85EF7 /* gemm.h */,
- FC086D2520E7841E00D85EF7 /* im2col.h */,
- FC086D2620E7841E00D85EF7 /* vol2col.cpp */,
- FC086D2720E7841E00D85EF7 /* math_function.cpp */,
- FC086D2820E7841E00D85EF7 /* pool_3x3.cpp */,
- FC086D2920E7841E00D85EF7 /* pool_2x2.h */,
- FC086D2A20E7841E00D85EF7 /* depthwise_conv_3x3.h */,
- FC086D2B20E7841E00D85EF7 /* pooling.cpp */,
- FC086D2C20E7841E00D85EF7 /* pool_3x3.h */,
- FC086D2D20E7841E00D85EF7 /* depthwise_conv_3x3.cpp */,
- FC086D2E20E7841E00D85EF7 /* vol2col.h */,
- FC086D2F20E7841E00D85EF7 /* softmax.cpp */,
- FC086D3020E7841E00D85EF7 /* transform.h */,
- FC086D3120E7841E00D85EF7 /* pooling.h */,
- FC086D3220E7841E00D85EF7 /* math_func_neon.h */,
- );
- path = math;
- sourceTree = "";
- };
- FC086D4520E7841E00D85EF7 /* kernel */ = {
- isa = PBXGroup;
- children = (
- FC086D4620E7841E00D85EF7 /* relu_kernel.h */,
- FC086D4720E7841E00D85EF7 /* multiclass_nms_kernel.h */,
- FC086D4820E7841E00D85EF7 /* depthwise_conv_kernel.h */,
- FC086D4920E7841E00D85EF7 /* lrn_kernel.h */,
- FC086D4A20E7841E00D85EF7 /* pool_kernel.h */,
- FC086D4B20E7841E00D85EF7 /* fusion_fc_kernel.h */,
- FC086D4C20E7841E00D85EF7 /* box_coder_kernel.h */,
- FC086D4D20E7841E00D85EF7 /* concat_kernel.h */,
- FC086D4E20E7841E00D85EF7 /* mul_kernel.h */,
- FC086D4F20E7841E00D85EF7 /* softmax_kernel.h */,
- FC086D5020E7841E00D85EF7 /* batchnorm_kernel.h */,
- FC086D5120E7841E00D85EF7 /* mali */,
- FC086D6320E7841E00D85EF7 /* elementwise_add_kernel.h */,
- FC086D6420E7841E00D85EF7 /* central-arm-func */,
- FC086D6A20E7841E00D85EF7 /* conv_add_relu_kernel.h */,
- FC086D6B20E7841E00D85EF7 /* reshape_kernel.h */,
- FC086D6C20E7841E00D85EF7 /* transpose_kernel.h */,
- FC086D6D20E7841E00D85EF7 /* conv_add_kernel.h */,
- FC086D6E20E7841E00D85EF7 /* fpga */,
- FC086D7020E7841E00D85EF7 /* conv_add_bn_relu_kernel.h */,
- FC086D7120E7841E00D85EF7 /* prior_box_kernel.h */,
- FC086D7220E7841E00D85EF7 /* conv_kernel.h */,
- FC086D7320E7841E00D85EF7 /* arm */,
- FC086D8820E7841E00D85EF7 /* sigmoid_kernel.h */,
- );
- path = kernel;
- sourceTree = "";
- };
- FC086D5120E7841E00D85EF7 /* mali */ = {
- isa = PBXGroup;
- children = (
- FC086D5220E7841E00D85EF7 /* acl_tensor.cc */,
- FC086D5320E7841E00D85EF7 /* acl_operator.cc */,
- FC086D5420E7841E00D85EF7 /* conv_kernel.cpp */,
- FC086D5520E7841E00D85EF7 /* acl_operator.h */,
- FC086D5620E7841E00D85EF7 /* conv_add_kernel.cpp */,
- FC086D5720E7841E00D85EF7 /* acl_tensor.h */,
- FC086D5820E7841E00D85EF7 /* relu_kernel.cpp */,
- FC086D5920E7841E00D85EF7 /* mul_kernel.cpp */,
- FC086D5A20E7841E00D85EF7 /* elementwise_add_kernel.cpp */,
- FC086D5B20E7841E00D85EF7 /* ACL_Android */,
- FC086D5C20E7841E00D85EF7 /* softmax_kernel.cpp */,
- FC086D5D20E7841E00D85EF7 /* concat_kernel.cpp */,
- FC086D5E20E7841E00D85EF7 /* pool_kernel.cpp */,
- FC086D5F20E7841E00D85EF7 /* reshape_kernel.cpp */,
- FC086D6020E7841E00D85EF7 /* lrn_kernel.cpp */,
- FC086D6120E7841E00D85EF7 /* fushion_fc_kernel.cpp */,
- FC086D6220E7841E00D85EF7 /* batchnorm_kernel.cpp */,
- );
- path = mali;
- sourceTree = "";
- };
- FC086D5B20E7841E00D85EF7 /* ACL_Android */ = {
- isa = PBXGroup;
- children = (
- );
- path = ACL_Android;
- sourceTree = "";
- };
- FC086D6420E7841E00D85EF7 /* central-arm-func */ = {
- isa = PBXGroup;
- children = (
- FC086D6520E7841E00D85EF7 /* conv_arm_func.h */,
- FC086D6620E7841E00D85EF7 /* conv_add_bn_relu_func.h */,
- FC086D6720E7841E00D85EF7 /* conv_add_relu_arm_func.h */,
- FC086D6820E7841E00D85EF7 /* depthwise_conv_arm_func.h */,
- FC086D6920E7841E00D85EF7 /* batchnorm_arm_func.h */,
- );
- path = "central-arm-func";
- sourceTree = "";
- };
- FC086D6E20E7841E00D85EF7 /* fpga */ = {
- isa = PBXGroup;
- children = (
- FC086D6F20E7841E00D85EF7 /* conv_kernel.cpp */,
- );
- path = fpga;
- sourceTree = "";
- };
- FC086D7320E7841E00D85EF7 /* arm */ = {
- isa = PBXGroup;
- children = (
- FC086D7420E7841E00D85EF7 /* prior_box_kernel.cpp */,
- FC086D7520E7841E00D85EF7 /* conv_kernel.cpp */,
- FC086D7620E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp */,
- FC086D7720E7841E00D85EF7 /* box_coder_kernel.cpp */,
- FC086D7820E7841E00D85EF7 /* conv_add_kernel.cpp */,
- FC086D7920E7841E00D85EF7 /* sigmoid_kernel.cpp */,
- FC086D7A20E7841E00D85EF7 /* relu_kernel.cpp */,
- FC086D7B20E7841E00D85EF7 /* mul_kernel.cpp */,
- FC086D7C20E7841E00D85EF7 /* elementwise_add_kernel.cpp */,
- FC086D7D20E7841E00D85EF7 /* conv_add_relu_kernel.cpp */,
- FC086D7E20E7841E00D85EF7 /* transpose_kernel.cpp */,
- FC086D7F20E7841E00D85EF7 /* depthwise_conv_kernel.cpp */,
- FC086D8020E7841E00D85EF7 /* softmax_kernel.cpp */,
- FC086D8120E7841E00D85EF7 /* concat_kernel.cpp */,
- FC086D8220E7841E00D85EF7 /* fusion_fc_kernel.cpp */,
- FC086D8320E7841E00D85EF7 /* pool_kernel.cpp */,
- FC086D8420E7841E00D85EF7 /* reshape_kernel.cpp */,
- FC086D8520E7841E00D85EF7 /* lrn_kernel.cpp */,
- FC086D8620E7841E00D85EF7 /* batchnorm_kernel.cpp */,
- FC086D8720E7841E00D85EF7 /* multiclass_nms_kernel.cpp */,
- );
- path = arm;
- sourceTree = "";
- };
- FC086D8A20E7841E00D85EF7 /* framework */ = {
- isa = PBXGroup;
- children = (
- FC086D8B20E7841E00D85EF7 /* framework.pb-c.c */,
- FC086D8C20E7841E00D85EF7 /* tensor_util.cpp */,
- FC086D8D20E7841E00D85EF7 /* operator.h */,
- FC086D8E20E7841E00D85EF7 /* op_info.h */,
- FC086D8F20E7841E00D85EF7 /* operator.cpp */,
- FC086D9020E7841E00D85EF7 /* ddim.cpp */,
- FC086D9120E7841E00D85EF7 /* tensor_util.h */,
- FC086D9220E7841E00D85EF7 /* variable.h */,
- FC086D9320E7841E00D85EF7 /* scope.cpp */,
- FC086D9420E7841E00D85EF7 /* data_layout.h */,
- FC086D9520E7841E00D85EF7 /* lod_tensor.h */,
- FC086D9620E7841E00D85EF7 /* dim.h */,
- FC086D9720E7841E00D85EF7 /* framework.pb-c.h */,
- FC086D9820E7841E00D85EF7 /* op_kernel_type.h */,
- FC086D9920E7841E00D85EF7 /* attribute.cpp */,
- FC086D9A20E7841E00D85EF7 /* op_proto_maker.h */,
- FC086D9B20E7841E00D85EF7 /* program */,
- FC086DAB20E7841E00D85EF7 /* lod_tensor.cpp */,
- FC086DAC20E7841E00D85EF7 /* framework.proto */,
- FC086DAD20E7841E00D85EF7 /* ddim.h */,
- FC086DAE20E7841E00D85EF7 /* attribute.h */,
- FC086DAF20E7841E00D85EF7 /* scope.h */,
- FC086DB020E7841E00D85EF7 /* tensor.h */,
- FC086DB120E7841E00D85EF7 /* op_registry.h */,
- );
- path = framework;
- sourceTree = "";
- };
- FC086D9B20E7841E00D85EF7 /* program */ = {
- isa = PBXGroup;
- children = (
- FC086D9C20E7841E00D85EF7 /* op_desc.cpp */,
- FC086D9D20E7841E00D85EF7 /* program_desc.cpp */,
- FC086D9E20E7841E00D85EF7 /* var_desc.h */,
- FC086D9F20E7841E00D85EF7 /* program_desc.h */,
- FC086DA020E7841E00D85EF7 /* op_desc.h */,
- FC086DA120E7841E00D85EF7 /* program-optimize */,
- FC086DA720E7841E00D85EF7 /* block_desc.cpp */,
- FC086DA820E7841E00D85EF7 /* program.h */,
- FC086DA920E7841E00D85EF7 /* tensor_desc.h */,
- FC086DAA20E7841E00D85EF7 /* block_desc.h */,
- );
- path = program;
- sourceTree = "";
- };
- FC086DA120E7841E00D85EF7 /* program-optimize */ = {
- isa = PBXGroup;
- children = (
- FC086DA220E7841E00D85EF7 /* fusion_op_register.h */,
- FC086DA320E7841E00D85EF7 /* node.cpp */,
- FC086DA420E7841E00D85EF7 /* node.h */,
- FC086DA520E7841E00D85EF7 /* program_optimize.h */,
- FC086DA620E7841E00D85EF7 /* program_optimize.cpp */,
- );
- path = "program-optimize";
- sourceTree = "";
- };
- FC086DB220E7841E00D85EF7 /* io */ = {
- isa = PBXGroup;
- children = (
- FC086DB320E7841E00D85EF7 /* io.cpp */,
- FC086DB420E7841E00D85EF7 /* io.h */,
- );
- path = io;
- sourceTree = "";
- };
- FC086DB520E7841E00D85EF7 /* common */ = {
- isa = PBXGroup;
- children = (
- FC086DB620E7841E00D85EF7 /* types.cpp */,
- FC086DB720E7841E00D85EF7 /* threadpool.h */,
- FC086DB820E7841E00D85EF7 /* types.h */,
- FC086DB920E7841E00D85EF7 /* protobuf-c.h */,
- FC086DBA20E7841E00D85EF7 /* openmp-fix.cpp */,
- FC086DBB20E7841E00D85EF7 /* dep_core.h */,
- FC086DBC20E7841E00D85EF7 /* common.h */,
- FC086DBD20E7841E00D85EF7 /* log.h */,
- FC086DBE20E7841E00D85EF7 /* macros.h */,
- FC086DBF20E7841E00D85EF7 /* type_define.h */,
- FC086DC020E7841E00D85EF7 /* enforce.h */,
- FC086DC120E7841E00D85EF7 /* protobuf-c.c */,
- FC086DC220E7841E00D85EF7 /* variant.h */,
- );
- path = common;
- sourceTree = "";
- };
- FC086DC320E7841E00D85EF7 /* jni */ = {
- isa = PBXGroup;
- children = (
- FC086DC420E7841E00D85EF7 /* paddle_mobile_jni.cpp */,
- FC086DC520E7841E00D85EF7 /* paddle_mobile_jni.h */,
- );
- path = jni;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- FC086BAE20E7839B00D85EF7 /* PaddleMobile */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = FC086BB820E7839B00D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobile" */;
- buildPhases = (
- FC086BAB20E7839B00D85EF7 /* Sources */,
- FC086BAC20E7839B00D85EF7 /* Frameworks */,
- FC086BAD20E7839B00D85EF7 /* CopyFiles */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = PaddleMobile;
- productName = PaddleMobile;
- productReference = FC086BAF20E7839B00D85EF7 /* libPaddleMobile.a */;
- productType = "com.apple.product-type.library.static";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- FC086BA720E7839B00D85EF7 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0930;
- ORGANIZATIONNAME = orange;
- TargetAttributes = {
- FC086BAE20E7839B00D85EF7 = {
- CreatedOnToolsVersion = 9.3.1;
- };
- };
- };
- buildConfigurationList = FC086BAA20E7839B00D85EF7 /* Build configuration list for PBXProject "PaddleMobile" */;
- compatibilityVersion = "Xcode 9.3";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = FC086BA620E7839B00D85EF7;
- productRefGroup = FC086BB020E7839B00D85EF7 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- FC086BAE20E7839B00D85EF7 /* PaddleMobile */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
- FC086BAB20E7839B00D85EF7 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- FC086DCE20E7841E00D85EF7 /* transpose_op.cpp in Sources */,
- FC086DD820E7841E00D85EF7 /* math_function.cpp in Sources */,
- FC086DE120E7841E00D85EF7 /* relu_op.cpp in Sources */,
- FC086E0920E7841E00D85EF7 /* multiclass_nms_kernel.cpp in Sources */,
- FC086E0220E7841E00D85EF7 /* softmax_kernel.cpp in Sources */,
- FC086DCD20E7841E00D85EF7 /* concat_op.cpp in Sources */,
- FC086DCA20E7841E00D85EF7 /* feed_op.cpp in Sources */,
- FC086DD920E7841E00D85EF7 /* pool_3x3.cpp in Sources */,
- FC086DF020E7841E00D85EF7 /* pool_kernel.cpp in Sources */,
- FC086E1A20E7841E00D85EF7 /* paddle_mobile_jni.cpp in Sources */,
- FC086DF620E7841E00D85EF7 /* prior_box_kernel.cpp in Sources */,
- FC086DC620E7841E00D85EF7 /* t_malloc.cpp in Sources */,
- FC086DD320E7841E00D85EF7 /* elementwise_add_op.cpp in Sources */,
- FC086E0E20E7841E00D85EF7 /* scope.cpp in Sources */,
- FC086DDE20E7841E00D85EF7 /* fusion_conv_add.cpp in Sources */,
- FC086DFF20E7841E00D85EF7 /* conv_add_relu_kernel.cpp in Sources */,
- FC086DD720E7841E00D85EF7 /* vol2col.cpp in Sources */,
- FC086E0B20E7841E00D85EF7 /* tensor_util.cpp in Sources */,
- FC086E1320E7841E00D85EF7 /* program_optimize.cpp in Sources */,
- FC086DF820E7841E00D85EF7 /* conv_add_bn_relu_kernel.cpp in Sources */,
- FC086DC820E7841E00D85EF7 /* sigmoid_op.cpp in Sources */,
- FC086E0D20E7841E00D85EF7 /* ddim.cpp in Sources */,
- FC086E0120E7841E00D85EF7 /* depthwise_conv_kernel.cpp in Sources */,
- FC086DDB20E7841E00D85EF7 /* depthwise_conv_3x3.cpp in Sources */,
- FC086BB420E7839B00D85EF7 /* PaddleMobile.m in Sources */,
- FC086E1420E7841E00D85EF7 /* block_desc.cpp in Sources */,
- FC086DC920E7841E00D85EF7 /* box_coder_op.cpp in Sources */,
- FC086DDF20E7841E00D85EF7 /* op_param.cpp in Sources */,
- FC086DD520E7841E00D85EF7 /* pool_2x2.cpp in Sources */,
- FC086DFD20E7841E00D85EF7 /* mul_kernel.cpp in Sources */,
- FC086E0C20E7841E00D85EF7 /* operator.cpp in Sources */,
- FC086DE020E7841E00D85EF7 /* mul_op.cpp in Sources */,
- FC086E1520E7841E00D85EF7 /* lod_tensor.cpp in Sources */,
- FC086DE720E7841E00D85EF7 /* acl_tensor.cc in Sources */,
- FC086DDD20E7841E00D85EF7 /* fetch_op.cpp in Sources */,
- FC086DE220E7841E00D85EF7 /* conv_op.cpp in Sources */,
- FC086DDA20E7841E00D85EF7 /* pooling.cpp in Sources */,
- FC086DEF20E7841E00D85EF7 /* concat_kernel.cpp in Sources */,
- FC086DE520E7841E00D85EF7 /* pool_op.cpp in Sources */,
- FC086DE820E7841E00D85EF7 /* acl_operator.cc in Sources */,
- FC086DF220E7841E00D85EF7 /* lrn_kernel.cpp in Sources */,
- FC086E0F20E7841E00D85EF7 /* attribute.cpp in Sources */,
- FC086E0520E7841E00D85EF7 /* pool_kernel.cpp in Sources */,
- FC086DDC20E7841E00D85EF7 /* softmax.cpp in Sources */,
- FC086E0420E7841E00D85EF7 /* fusion_fc_kernel.cpp in Sources */,
- FC086E1220E7841E00D85EF7 /* node.cpp in Sources */,
- FC086E0820E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */,
- FC086DCC20E7841E00D85EF7 /* reshape_op.cpp in Sources */,
- FC086DE920E7841E00D85EF7 /* conv_kernel.cpp in Sources */,
- FC086E1920E7841E00D85EF7 /* protobuf-c.c in Sources */,
- FC086DF920E7841E00D85EF7 /* box_coder_kernel.cpp in Sources */,
- FC086DF120E7841E00D85EF7 /* reshape_kernel.cpp in Sources */,
- FC086DF720E7841E00D85EF7 /* conv_kernel.cpp in Sources */,
- FC086DCF20E7841E00D85EF7 /* prior_box_op.cpp in Sources */,
- FC086E1720E7841E00D85EF7 /* types.cpp in Sources */,
- FC086DF320E7841E00D85EF7 /* fushion_fc_kernel.cpp in Sources */,
- FC086DEB20E7841E00D85EF7 /* relu_kernel.cpp in Sources */,
- FC086E0620E7841E00D85EF7 /* reshape_kernel.cpp in Sources */,
- FC086E0720E7841E00D85EF7 /* lrn_kernel.cpp in Sources */,
- FC086DE620E7841E00D85EF7 /* multiclass_nms_op.cpp in Sources */,
- FC086E1120E7841E00D85EF7 /* program_desc.cpp in Sources */,
- FC086E0320E7841E00D85EF7 /* concat_kernel.cpp in Sources */,
- FC086DEC20E7841E00D85EF7 /* mul_kernel.cpp in Sources */,
- FC086DFB20E7841E00D85EF7 /* sigmoid_kernel.cpp in Sources */,
- FC086E1820E7841E00D85EF7 /* openmp-fix.cpp in Sources */,
- FC086DF420E7841E00D85EF7 /* batchnorm_kernel.cpp in Sources */,
- FC086DEA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */,
- FC086E1620E7841E00D85EF7 /* io.cpp in Sources */,
- FC086DD620E7841E00D85EF7 /* im2col.cpp in Sources */,
- FC086DC720E7841E00D85EF7 /* lrn_op.cpp in Sources */,
- FC086DD220E7841E00D85EF7 /* depthwise_conv_op.cpp in Sources */,
- FC086DFA20E7841E00D85EF7 /* conv_add_kernel.cpp in Sources */,
- FC086E0A20E7841E00D85EF7 /* framework.pb-c.c in Sources */,
- FC086DD020E7841E00D85EF7 /* fusion_conv_add_relu_op.cpp in Sources */,
- FC086DCB20E7841E00D85EF7 /* fusion_conv_add_bn_relu_op.cpp in Sources */,
- FC086DFC20E7841E00D85EF7 /* relu_kernel.cpp in Sources */,
- FC086DE320E7841E00D85EF7 /* fusion_fc_op.cpp in Sources */,
- FC086E0020E7841E00D85EF7 /* transpose_kernel.cpp in Sources */,
- FC086DEE20E7841E00D85EF7 /* softmax_kernel.cpp in Sources */,
- FC086DE420E7841E00D85EF7 /* batchnorm_op.cpp in Sources */,
- FC086DED20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */,
- FC086DF520E7841E00D85EF7 /* conv_kernel.cpp in Sources */,
- FC086DD120E7841E00D85EF7 /* softmax_op.cpp in Sources */,
- FC086E1020E7841E00D85EF7 /* op_desc.cpp in Sources */,
- FC086DD420E7841E00D85EF7 /* gemm.cpp in Sources */,
- FC086DFE20E7841E00D85EF7 /* elementwise_add_kernel.cpp in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- FC086BB620E7839B00D85EF7 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_ENABLE_OBJC_WEAK = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.3;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- FC086BB720E7839B00D85EF7 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_ENABLE_OBJC_WEAK = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 11.3;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = iphoneos;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- FC086BB920E7839B00D85EF7 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = Z5M2UUN5YV;
- HEADER_SEARCH_PATHS = ../../src;
- OTHER_LDFLAGS = "-ObjC";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SKIP_INSTALL = YES;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- FC086BBA20E7839B00D85EF7 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = Z5M2UUN5YV;
- HEADER_SEARCH_PATHS = ../../src;
- OTHER_LDFLAGS = "-ObjC";
- PRODUCT_NAME = "$(TARGET_NAME)";
- SKIP_INSTALL = YES;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- FC086BAA20E7839B00D85EF7 /* Build configuration list for PBXProject "PaddleMobile" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- FC086BB620E7839B00D85EF7 /* Debug */,
- FC086BB720E7839B00D85EF7 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- FC086BB820E7839B00D85EF7 /* Build configuration list for PBXNativeTarget "PaddleMobile" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- FC086BB920E7839B00D85EF7 /* Debug */,
- FC086BBA20E7839B00D85EF7 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = FC086BA720E7839B00D85EF7 /* Project object */;
-}
diff --git a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 18f14d0d53b03b7326c6b613e445438ab35e4bed..0000000000000000000000000000000000000000
--- a/ios/PaddleMobile/PaddleMobile.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-