amitshekhariitbhu / androidtensorflowmachinelearningexample Goto Github PK
View Code? Open in Web Editor NEWAndroid TensorFlow MachineLearning Example (Building TensorFlow for Android)
Home Page: https://amitshekhar.me
License: Apache License 2.0
Android TensorFlow MachineLearning Example (Building TensorFlow for Android)
Home Page: https://amitshekhar.me
License: Apache License 2.0
The App crashes when I am trying to run it using my own graph file and labels file.
I tweaked the code in mainActivity.java accordingly.
Is the app hardcoded to run using only your graph and label files?
Process: com.mindorks.tensorflowexample, PID: 517
java.lang.RuntimeException: Error initializing TensorFlow!
at com.mindorks.tensorflowexample.MainActivity$5.run(MainActivity.java:158)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.RuntimeException: Native TF methods not found; check that the correct native libraries are present and loaded.
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.(TensorFlowInferenceInterface.java:57)
at com.mindorks.tensorflowexample.TensorFlowImageClassifier.create(TensorFlowImageClassifier.java:108)
at com.mindorks.tensorflowexample.MainActivity$5.run(MainActivity.java:147)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
i have followed the procedure you described to create the so file.
i modified the workspace file and added the last 2 parts so thew workspace became as follows
workspace(name = "org_tensorflow")
http_archive(
name = "io_bazel_rules_closure",
sha256 = "a38539c5b5c358548e75b44141b4ab637bba7c4dc02b46b1f62a96d6433f56ae",
strip_prefix = "rules_closure-dbb96841cc0a5fb2664c37822803b06dab20c7d1",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz",
"https://github.com/bazelbuild/rules_closure/archive/dbb96841cc0a5fb2664c37822803b06dab20c7d1.tar.gz", # 2018-04-13
],
)
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
closure_repositories()
load("//tensorflow:version_check.bzl", "check_bazel_version_at_least")
check_bazel_version_at_least("0.10.0")
load("//tensorflow:workspace.bzl", "tf_workspace")
load("//third_party/android:android_configure.bzl", "android_configure")
android_configure(name="local_config_android")
load("@local_config_android//:android.bzl", "android_workspace")
android_workspace()
tf_workspace()
new_http_archive(
name = "inception_v1",
build_file = "models.BUILD",
sha256 = "7efe12a8363f09bc24d7b7a450304a15655a57a7751929b2c1593a71183bb105",
urls = [
"http://storage.googleapis.com/download.tensorflow.org/models/inception_v1.zip",
"http://download.tensorflow.org/models/inception_v1.zip",
],
)
new_http_archive(
name = "mobile_ssd",
build_file = "models.BUILD",
sha256 = "bddd81ea5c80a97adfac1c9f770e6f55cbafd7cce4d3bbe15fbeb041e6b8f3e8",
urls = [
"http://storage.googleapis.com/download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_android_export.zip",
"http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_android_export.zip",
],
)
new_http_archive(
name = "mobile_multibox",
build_file = "models.BUILD",
sha256 = "859edcddf84dddb974c36c36cfc1f74555148e9c9213dedacf1d6b613ad52b96",
urls = [
"http://storage.googleapis.com/download.tensorflow.org/models/mobile_multibox_v1a.zip",
"http://download.tensorflow.org/models/mobile_multibox_v1a.zip",
],
)
new_http_archive(
name = "stylize",
build_file = "models.BUILD",
sha256 = "3d374a730aef330424a356a8d4f04d8a54277c425e274ecb7d9c83aa912c6bfa",
urls = [
"http://storage.googleapis.com/download.tensorflow.org/models/stylize_v1.zip",
"http://download.tensorflow.org/models/stylize_v1.zip",
],
)
new_http_archive(
name = "speech_commands",
build_file = "models.BUILD",
sha256 = "c3ec4fea3158eb111f1d932336351edfe8bd515bb6e87aad4f25dbad0a600d0c",
urls = [
"http://storage.googleapis.com/download.tensorflow.org/models/speech_commands_v0.01.zip",
"http://download.tensorflow.org/models/speech_commands_v0.01.zip",
],
)
android_sdk_repository(
name = "androidsdk",
api_level = 23,
build_tools_version = "25.0.1",
# Replace with path to Android SDK on your system
path = "/opt/Android/Sdk/",
)
android_ndk_repository(
name="androidndk",
path="/home/user/Desktop/android-ndk-r13b/",
api_level=14)
when i ran the bazel command bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so --crosstool_top=//external:android/crosstool --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --cpu=armeabi-v7a i get the following error:
ERROR: /home/user/tensorflow/tensorflow/core/BUILD:2306:1: C++ compilation of rule '//tensorflow/core:protos_all_proto_cc_impl' failed (Exit 1)
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.cc:4:
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.h:9:
In file included from external/protobuf_archive/src/google/protobuf/stubs/common.h:52:
In file included from external/protobuf_archive/src/google/protobuf/stubs/mutex.h:33:
In file included from external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/mutex:35:
external/androidndk/ndk/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the
^
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.cc:4:
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.h:9:
In file included from external/protobuf_archive/src/google/protobuf/stubs/common.h:52:
external/protobuf_archive/src/google/protobuf/stubs/mutex.h:58:8: error: no type named 'mutex' in namespace 'std'
std::mutex mu_;
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.cc:4:
In file included from bazel-out/armeabi-v7a-opt/genfiles/tensorflow/core/framework/function.pb.h:9:
In file included from external/protobuf_archive/src/google/protobuf/stubs/common.h:53:
external/protobuf_archive/src/google/protobuf/stubs/callback.h:346:25: error: no type named 'remove_reference' in namespace 'std'
typedef typename std::remove_reference<T>::type base_type;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:346:41: error: expected member name or ';' after declaration specifiers
typedef typename std::remove_reference<T>::type base_type;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:347:17: error: unknown type name 'base_type'
typedef const base_type& type;
^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:401:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P1>::type p1_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:401:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P1>::type p1_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:402:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P2>::type p2_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:402:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P2>::type p2_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:403:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P3>::type p3_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:403:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P3>::type p3_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:404:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P4>::type p4_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:404:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P4>::type p4_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:405:17: error: no type named 'remove_reference' in namespace 'std'
typename std::remove_reference<P5>::type p5_;
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:405:33: error: expected member name or ';' after declaration specifiers
typename std::remove_reference<P5>::type p5_;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
external/protobuf_archive/src/google/protobuf/stubs/callback.h:383:9: error: member initializer 'p1_' does not name a non-static data member or base class
p1_(p1),
^~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:384:9: error: member initializer 'p2_' does not name a non-static data member or base class
p2_(p2),
^~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:385:9: error: member initializer 'p3_' does not name a non-static data member or base class
p3_(p3),
^~~~~~~
external/protobuf_archive/src/google/protobuf/stubs/callback.h:386:9: error: member initializer 'p4_' does not name a non-static data member or base class
p4_(p4),
^~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Target //tensorflow/contrib/android:libtensorflow_inference.so failed to build
Use --verbose_failures to see the command lines of failed build steps.
how to solve this issue?
I need function like this:
I will enter a set of images and when I Detect Object some thing,
this program can match between some thing to images
is that possible?
plese tell me ,what can i do to use myself .pb File ??
The app crashes after a few seconds of startup when used Inception V3. The current one is 5h. I've set Image_Size=299, Image_Mean=128, inputname to "mul" and output name to "final_result".
I followed the steps to your blog but I get an error about c/c++ files in the cpp folder(created by itself). I dont know how you built the .so file. I have built the jar file fine.
From the medium blog:
Now we have both jar and .so file. I have already built both .so file and jar, you can directly use from the below project.
I did not find the .so file.
I have completed training the dataset using TensorFlow and I am freezing the model. A protobuffer file(.pb) has been created and I am providing the same to Android Studio.
After running the app I am getting the following error:"No operation named [ipnode] in the Graph".
TechStack:
Spyder(Python 3.7)
Tensorflow version-1.13.1
Android Studio version- 3.4
compile SDKVersion is 28 and TargetVersion is 28 in build.grade (Module:app)
I want to use tensorflow model in android.But I don't know how to use placeholder.Can you help me?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.