-
티훈조회 수: 1801, 2018.10.10 18:38:48
-
현재 .pb파일과 label을 만든 txt파일을 넣고서 실행중인데 빌드는 제대로 되는데 apk를 실행하면 크래쉬가 납니다. 딱히 특정한 에러코드가 뜨는 것도 없이 막무가내로 실행이 안되기에 어떻게 해야할 지 모르겠네요. 디버깅할 때 멈춘 위치에 대해서 보여드리겠습니다.
디버그에서 x가 뜨는 것은 아마 쓰레드 사용 부분에 의해 그런 것 같고 TensorflowImageClassifier의 string line을 실행할 때 마다 멈춥니다. 정확한 원인을 모르겠어서 답답하네요 ㅠㅠ
테스팅환경은 Nexus 5X 28API, 삼성 갤럭시 S8+ 8.0.1 26API 이 두 환경에서 테스팅을 해보았습니다.
댓글 7 ...
-
공돌이
2018.10.10 20:57
콘솔로그는 어떻게 나오나요? pb파일을 로딩못한게 아닌가 싶기는 한데... 콘솔에 로그를 보시면 java exception message가 있을거예요 -
티훈
2018.10.10 21:28
말씀 하시는대로 pb파일이 문제인거 같아요. 하라는대로 했을꺼라 생각하는데 머가 문제인걸까요
에러코드는 이렇게 뜨네요.
I/TensorImageClassifier: Reading labels from: pika_labels.txtI/TensorFlowInferenceInterface: Checking to see if TensorFlow native methods are already loaded
E/etensorflowdem: No implementation found for long org.tensorflow.contrib.android.RunStats.allocate() (tried Java_org_tensorflow_contrib_android_RunStats_allocate and Java_org_tensorflow_contrib_android_RunStats_allocate__)
I/TensorFlowInferenceInterface: TensorFlow native methods not found, attempting to load via tensorflow_inference
W/native: cpu_feature_guard.cc:33 The TensorFlow library was compiled to use SSE instructions, but these aren't available on your machine.
cpu_feature_guard.cc:33 The TensorFlow library was compiled to use SSE2 instructions, but these aren't available on your machine.
cpu_feature_guard.cc:33 The TensorFlow library was compiled to use SSE3 instructions, but these aren't available on your machine.
I/TensorFlowInferenceInterface: Successfully loaded TensorFlow native methods (RunStats error may be ignored)
E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
Process: com.example.jpkim.simpletensorflowdemo, PID: 20108
java.lang.RuntimeException: Error initializing TensorFlow!
at com.example.jpkim.simpletensorflowdemo.MainActivity$4.run(MainActivity.java:156)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.RuntimeException: Failed to load model from 'file:///android_asset/pika.pb'
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.<init>(TensorFlowInferenceInterface.java:100)
at com.example.jpkim.simpletensorflowdemo.TensorFlowImageClassifier.create(TensorFlowImageClassifier.java:113)
at com.example.jpkim.simpletensorflowdemo.MainActivity$4.run(MainActivity.java:146)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.io.IOException: Not a valid TensorFlow Graph serialization: NodeDef mentions attr 'T' not in Op<name=Where; signature=input:bool -> index:int64>; NodeDef: Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/FilterGreaterThan/Where = Where[T=DT_BOOL](Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/FilterGreaterThan/Where/Cast). (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.loadGraph(TensorFlowInferenceInterface.java:392)
at org.tensorflow.contrib.android.TensorFlowInferenceInterface.<init>(TensorFlowInferenceInterface.java:96)
at com.example.jpkim.simpletensorflowdemo.TensorFlowImageClassifier.create(TensorFlowImageClassifier.java:113)
at com.example.jpkim.simpletensorflowdemo.MainActivity$4.run(MainActivity.java:146)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
I/Process: Sending signal. PID: 20108 SIG: 9
Disconnected from the target VM, address: 'localhost:8601', transport: 'socket'
-
공돌이
2018.10.10 22:09
Caused by: java.lang.RuntimeException: Failed to load model from 'file:///android_asset/pika.pb'
이 메시지로 보면 원인은 둘중에 하나 같아요
1) pb파일이 경로내에 존재하지 않거나
2) pb파일이 모바일에서 읽을수 있는 형태가 아니거나
2)의 경우는 해당 pb 파일이 정상적인 파일인지 pc에서 image_label.py (이름은 정확히 기억이 안나는데 inference용 스크립트) 로 한번 테스트해보시면 바로 아실 수 있을거예요.
단, retrain 해서 최초에 나온 pb파일은 op중에 모바일에서 지원하지 않는게 있기때문에 변환을 시켜 비지원 op를 빼야 합니다. -
티훈
2018.10.11 02:37
넵 알겠습니다. 지금 다시 트레이닝 데이터를 만들어보고 있습니다만 혹시 테스트할 때 쓰셨던 트레이닝 데이터를 첨부해주실 수 있나요? 제 트레이닝데이터가 문제인지, 제가 pb파일 경로설정을 잘못한 것인지 체크를 해보려고 하는데 다시 트레이닝 하는데 시간이 걸리네요 ㅠㅠ 만약 첨부하기에 너무 큰 용량이면 pdh930105@gmail.com 으로 보내주셔도됩니다.
-
공돌이
2018.10.11 11:49
제 놋북을 샅샅이 뒤졌는데...다 지워버리고 없네요...ㅠㅜ. 인셉션 안한지 꽤 돼서리...ㅠㅜ.
다시 설치해서 샘플까지 만들려면 주중에는 좀 힘들고, 주말에 한번 만들어서 올리거나 보내드리겠습니다...죄송 ㅠㅜ
텐서플로우도 판올림하면서 인셉션 학습용 스크립트도 많이 간편해졌는데, 관련해서는 시간이 될때 강좌를 한번 올려볼게요.
flower_photos를 이용한 쉬운 강좌는, 영어이긴 하지만 아래 내용이 구글에서 공식적으로 제공하는 인셉션 튜토리얼이니 참고하세요.
(제가 올렸을때랑 비교했을때, 많이 간편해지고, 쉬워져 있습니다)
https://codelabs.developers.google.com/codelabs/tensorflow-for-poets/#0
https://codelabs.developers.google.com/codelabs/tensorflow-for-poets-2/#0
아, 그리고 올리실때에는 꼭 optimize를 하신 후에 올리셔야 합니다. 그냥 retrained_graph는 모바일에서 정상적으로 동작하지 않습니다.( optimized_for_inference 혹은 quantized 된 그래프를 사용). 요즘은 tensorflow lite란게 나와서 훨씬 크기도 작고 가볍게 사용가능한 방법도 있으니 참고하시구요...
-
공돌이
2018.10.11 11:53
오...제 친구놈이 안지운거 있다고 하나 보내줬어요...메일로 보내드릴테니 되는지 함 확인해주세요.
-
티훈
2018.10.11 12:53
정말 감사합니다 ㅠㅠ 테스트해보고 다시 연락드리겠습니다
번호
|
분류
|
제목
|
닉네임
| ||
---|---|---|---|---|---|
26 | 마인드마이스터 | ehyun | 75 | 2020.07.21 | |
25 | 마이스터태스크 | 자쟁이 | 143 | 2020.02.09 | |
24 | 마인드마이스터 | 레오파드 | 1013 | 2019.10.16 | |
23 | 개발/IT관련 | 안드어려웡 | 0 | 2019.10.07 | |
22 | 마이스터태스크 |
로그인시 오류
![]() | 쿠쿠 | 1200 | 2019.04.04 |
21 | 개발/IT관련 |
오류 질문드려요
+3
| dfdgdx | 1675 | 2019.03.24 |
20 | 마이스터태스크 | IRU | 166 | 2018.12.31 | |
19 | 마이스터태스크 |
댓글 작성 시 오류
![]() | 빨강머리 | 121 | 2018.12.05 |
18 | 개발/IT관련 | 이웃집비버 | 158 | 2018.11.07 | |
17 | 마인드마이스터 | 하여 | 1323 | 2018.11.04 | |
√ | 개발/IT관련 | 티훈 | 1801 | 2018.10.10 | |
15 | 마이스터태스크 | JE | 173 | 2018.09.20 | |
14 | 마이스터태스크 | BadCoach | 90 | 2018.09.14 | |
13 | 마이스터태스크 | 야곱 | 123 | 2018.07.18 | |
12 | 마인드마이스터 | 은별 | 357 | 2018.04.09 | |
11 | 마이스터태스크 | kapensus | 154 | 2018.04.02 | |
10 | 마이스터태스크 | 유화란취 | 210 | 2018.03.13 | |
9 | 마이스터태스크 | 유화란취 | 83 | 2018.03.13 | |
8 | 마이스터태스크 | 유화란취 | 675 | 2018.03.12 | |
7 | 마이스터태스크 |
복구하는 방법
+1
| 최인규 | 296 | 2017.07.24 |