
我正在尝试通过本教程构建.apk文件-https://www.oreilly.com/learning/tensorflow-on-android
我想使用自己的retrained_graph.pb
我更改了ClassifIErActivity.java(在教程中为TensorFlowImageListener.java,但我没有找到该文件).
我更换:
private static final int input_SIZE = 299;private static final int IMAGE_MEAN = 128;private static final float IMAGE_STD = 128;private static final String input_name = "Mul:0";private static final String OUTPUT_name = "final_result:0";private static final String MODEL_file = "file:///androID_asset/retrained_graph.pb";private static final String LABEL_file = "file:///androID_asset/retrained_labels.txt";但是,当我在设备上运行apk时-初始化TensorFlow出错时崩溃.
D/AndroIDRuntime( 6524): Shutting down VME/AndroIDRuntime( 6524): FATAL EXCEPTION: mainE/AndroIDRuntime( 6524): Process: org.tensorflow.demo, PID: 6524E/AndroIDRuntime( 6524): java.lang.RuntimeException: Error initializing TensorFlow!E/AndroIDRuntime( 6524): at org.tensorflow.demo.ClassifIErActivity.onPrevIEwSizeChosen(ClassifIErActivity.java:130)E/AndroIDRuntime( 6524): at org.tensorflow.demo.CameraActivity.onPrevIEwSizeChosen(CameraActivity.java:158)E/AndroIDRuntime( 6524): at org.tensorflow.demo.CameraConnectionFragment.setUpCameraOutputs(CameraConnectionFragment.java:394)E/AndroIDRuntime( 6524): at org.tensorflow.demo.CameraConnectionFragment.openCamera(CameraConnectionFragment.java:411)E/AndroIDRuntime( 6524): at org.tensorflow.demo.CameraConnectionFragment.access@OverrIDe public voID onPrevIEwSizeChosen(final Size size, final int rotation) { final float textSizePx = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, TEXT_SIZE_DIP, getResources().getdisplayMetrics()); borderedText = new borderedText(textSizePx); borderedText.setTypeface(Typeface.MONOSPACE); try { classifIEr = TensorFlowImageClassifIEr.create( getAssets(), MODEL_file, LABEL_file, input_SIZE, IMAGE_MEAN, IMAGE_STD, input_name, OUTPUT_name); } catch (final Exception e) { throw new RuntimeException("Error initializing TensorFlow!", e); }... }0(CameraConnectionFragment.java:63)E/AndroIDRuntime( 6524): at org.tensorflow.demo.CameraConnectionFragment.onSurfaceTextureAvailable(CameraConnectionFragment.java:94)E/AndroIDRuntime( 6524): at androID.vIEw.TextureVIEw.getHarDWareLayer(TextureVIEw.java:370)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.updatedisplayListIfDirty(VIEw.java:15443)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.getdisplayList(VIEw.java:15488)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16258)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.drawChild(VIEwGroup.java:3713)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.dispatchDraw(VIEwGroup.java:3506)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.updatedisplayListIfDirty(VIEw.java:15461)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.getdisplayList(VIEw.java:15488)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16258)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.drawChild(VIEwGroup.java:3713)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.dispatchDraw(VIEwGroup.java:3506)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16539)E/AndroIDRuntime( 6524): at androID.Widget.FrameLayout.draw(FrameLayout.java:598)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.updatedisplayListIfDirty(VIEw.java:15466)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.getdisplayList(VIEw.java:15488)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16258)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.drawChild(VIEwGroup.java:3713)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.dispatchDraw(VIEwGroup.java:3506)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.updatedisplayListIfDirty(VIEw.java:15461)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.getdisplayList(VIEw.java:15488)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16258)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.drawChild(VIEwGroup.java:3713)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.dispatchDraw(VIEwGroup.java:3506)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.updatedisplayListIfDirty(VIEw.java:15461)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.getdisplayList(VIEw.java:15488)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16258)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.drawChild(VIEwGroup.java:3713)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwGroup.dispatchDraw(VIEwGroup.java:3506)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.draw(VIEw.java:16539)E/AndroIDRuntime( 6524): at androID.Widget.FrameLayout.draw(FrameLayout.java:598)E/AndroIDRuntime( 6524): at com.androID.internal.policy.impl.PhoneWindow$DecorVIEw.draw(PhoneWindow.java:3111)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.updatedisplayListIfDirty(VIEw.java:15466)E/AndroIDRuntime( 6524): at androID.vIEw.VIEw.getdisplayList(VIEw.java:15488)E/AndroIDRuntime( 6524): at androID.vIEw.ThreadedRenderer.updateVIEwTreedisplayList(ThreadedRenderer.java:309)E/AndroIDRuntime( 6524): at androID.vIEw.ThreadedRenderer.updateRootdisplayList(ThreadedRenderer.java:315)E/AndroIDRuntime( 6524): at androID.vIEw.ThreadedRenderer.draw(ThreadedRenderer.java:354)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwRootImpl.draw(VIEwRootImpl.java:2956)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwRootImpl.performDraw(VIEwRootImpl.java:2753)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwRootImpl.performTraversals(VIEwRootImpl.java:2339)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwRootImpl.doTraversal(VIEwRootImpl.java:1314)E/AndroIDRuntime( 6524): at androID.vIEw.VIEwRootImpl$TraversalRunnable.run(VIEwRootImpl.java:7057)E/AndroIDRuntime( 6524): at androID.vIEw.Choreographer$CallbackRecord.run(Choreographer.java:829)E/AndroIDRuntime( 6524): at androID.vIEw.Choreographer.doCallbacks(Choreographer.java:606)E/AndroIDRuntime( 6524): at androID.vIEw.Choreographer.doFrame(Choreographer.java:576)E/AndroIDRuntime( 6524): at androID.vIEw.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:815)E/AndroIDRuntime( 6524): at androID.os.Handler.handleCallback(Handler.java:739)E/AndroIDRuntime( 6524): at androID.os.Handler.dispatchMessage(Handler.java:95)E/AndroIDRuntime( 6524): at androID.os.Looper.loop(Looper.java:145)E/AndroIDRuntime( 6524): at androID.app.ActivityThread.main(ActivityThread.java:6917)E/AndroIDRuntime( 6524): at java.lang.reflect.Method.invoke(Native Method)E/AndroIDRuntime( 6524): at java.lang.reflect.Method.invoke(Method.java:372)E/AndroIDRuntime( 6524): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)E/AndroIDRuntime( 6524): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:1199)E/AndroIDRuntime( 6524): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'org.tensorflow.Output org.tensorflow.Operation.output(int)' oW/ActivityManager( 783): Force finishing activity 1 org.tensorflow.demo/.ClassifIErActivityW/ResourcesManager( 6576): Asset path '/system/framework/sec_platform_library.jar' does not exist or contains no resources.W/ResourcesManager( 6576): Asset path '/system/framework/smatlib.jar' does not exist or contains no resources.W/ResourcesManager( 6576): Asset path '/system/framework/secvisualeffect.jar' does not exist or contains no resources.W/ResourcesManager( 6576): Asset path '/system/framework/secharDWare.jar' does not exist or contains no resources.D/inputdispatcher( 783): Focused application set to: xxxxD/inputdispatcher( 783): Focus left window: 6524D/PointerIcon( 783): setMouseIconStyle1 pointerType: 1001 iconType:101 flag:0 pID:783 uID:1000D/PointerIcon( 783): setMouseCustomIcon IconType is same.101我发现这段代码可以处理异常:
private static final String input_name = "Mul:0";private static final String OUTPUT_name = "final_result:0";在tensorflow / tensorflow / examples / androID / src / org / tensorflow / demo / ClassifIErActivity.java中
我已经呆了2天,请大家帮帮我!错误的原因是什么?
解决方法:
我解决了这个问题,java代码中的注释未更新,现在只需更改即可:
private static final String input_name = "Mul";private static final String OUTPUT_name = "final_result";至:
总结以上是内存溢出为你收集整理的我为什么会出现错误:初始化Tensorflow?全部内容,希望文章能够帮你解决我为什么会出现错误:初始化Tensorflow?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)