2017-05-17 5 views
1

Android에서 the image_ocr example in Keras 교육의 tensorflow 모델을 사용하는 방법을 파악하려고합니다. 이 튜토리얼을 따라 응용 프로그램에서 사용할 텐서 흐름 모델 (예 : 그래프를 free.pb 파일로 고정)을 만들었습니다.Android에서 Keras 예제의 image_ocr 텐서 흐름 모델 사용

TFDroid의 예는 꽤 좋지만 어느 누구도 내가 가진 모델에는 적용 할 수없는 것 같습니다. 지금 몇 가지 질문이 있습니다.

  1. Android에서 자신의 모델을 사용할 때 고려해야 할 사항은 무엇입니까?
  2. tensorflow 모델을 교육하여 워크 플로우를 Android에서 사용하는 방법은 무엇입니까?

답변

1

나는이 주변에 더 좋은 문서를 일하고 있어요,하지만 지금 여기에 도움이 될 수 있습니다 내 현재 초안에서 발췌 : 당신에게이 들어있는 폴더를 줄 것이다 TensorFlow와 모델을 훈련, 대부분의 상황에서

을 GraphDef 파일 (대개 .pb 또는 .pbtxt 확장자로 끝남) 및 검사 점 파일 집합. 모바일 또는 임베디드 배포에 필요한 것은 하나의 GraphDef 파일로 '고정'되었거나 변수가 인라인 상수로 변환되어 하나의 파일에 모두 들어 있습니다. 변환을 처리하려면 freeze_graph.py 스크립트가 필요합니다.이 스크립트는 tensorflow/pythons/tools/freeze_graph.py에 있습니다. 이처럼 실행하겠습니다 다음 input_graph 인수가 모델 아키텍처를 보유하고있는 GraphDef 파일을 가리켜 야합니다

bazel build tensorflow/tools:freeze_graph 
bazel-bin/tensorflow/tools/freeze_graph \ 
--input_graph=/tmp/model/my_graph.pb \ --input_checkpoint=/tmp/model/model.ckpt-1000 \ --output_graph=/tmp/frozen_graph.pb \ 
--input_node_names=input_node \ 
--output_node_names=output_node \ 

. GraphDef가 디스크의 텍스트 형식으로 저장되어있을 가능성이 있습니다.이 경우 '.pb'대신 '.pbtxt'로 끝나기 쉽고 여분의 --input_binary=false 플래그를 명령에 추가해야합니다.

input_checkpoint은 가장 최근 저장된 검사 점이어야합니다. 체크 포인트 섹션에서 언급했듯이 전체 파일 이름이 아닌 여기에있는 체크 포인트 세트에 공통 접두사를 제공해야합니다.

output_graph은 고정 된 GraphDef가 저장되는 위치를 정의합니다. 텍스트 형식으로 많은 양의 공간을 차지하는 많은 가중치 값을 포함 할 가능성이 높기 때문에 항상 이진 파일로 저장됩니다. output_node_names은 그래프의 결과를 추출 할 노드의 이름 목록입니다. 이는 동결 프로세스가 그래프의 어느 부분이 실제로 필요한지, 그리고 요약 작업과 같은 교육 과정의 산출물을 이해해야하기 때문에 필요합니다. 주어진 출력 노드를 계산하는 데 기여하는 작업 만 유지됩니다. 그래프가 어떻게 사용되는지 알고 있다면, 이것들은 가져 오기 대상으로 Session :: Run()에 전달한 노드의 이름이어야합니다. 이 정보가 도움이되지 않으면 summarize_graph 도구를 실행하여 예상되는 결과에 대한 제안을 얻을 수 있습니다.

TensorFlow의 출력 형식이 시간이 지남에 따라 변경 되었기 때문에 input_saver과 같이 많이 사용되지 않는 다른 자주 사용되는 플래그도 있지만 최신 버전의 프레임 워크로 학습 한 그래프에는 이러한 플래그가 필요하지 않기를 바랍니다.

+0

답변 해 주셔서 감사합니다. 너무 많은 것들을 시도한 후에, 나는 이미 내 고정 그래프를 가지고있다. 이제 내 안드로이드 응용 프로그램에 사용하고 싶습니다. 현재이 문제가 있습니다 (https://stackoverflow.com/questions/46577833/using-bi-lstm-ctc-tensorflow-model-in-android). –

관련 문제