지금까지 수집 한 내용에서 TensorFlow 그래프를 파일에 덤핑 한 다음 다른 프로그램에로드하는 방법에는 여러 가지가 있지만 작동 방식에 대한 명확한 예제 / 정보를 찾을 수 없었습니다. 내가 이미 알고있는 것은 이것이다 :
- a를 사용하여 모델의 변수를 체크 포인트 파일 (.ckpt)에 저장
tf.train.Saver()
하고 나중에 복원 ( source ) - 모델을 .pb 파일에 저장하고
tf.train.write_graph()
및tf.import_graph_def()
( 소스 ) 를 사용하여 다시로드합니다. - .pb 파일에서 모델을로드하고 다시 학습 한 다음 Bazel을 사용하여 새 .pb 파일에 덤프합니다 ( 소스 ).
- 그래프를 고정하여 그래프와 가중치를 함께 저장합니다 ( 소스 ).
- 사용
as_graph_def()
모델을 저장 및 무게 / 변수 (상수로 매핑 소스 )
그러나 이러한 다른 방법에 대한 몇 가지 질문을 해결할 수 없었습니다.
- 체크 포인트 파일과 관련하여 모델의 훈련 된 가중치 만 저장합니까? 체크 포인트 파일을 새 프로그램에로드하여 모델을 실행하는 데 사용할 수 있습니까, 아니면 단순히 특정 시간 / 단계에서 모델의 가중치를 저장하는 방법으로 사용됩니까?
- 와 관련
tf.train.write_graph()
하여 가중치 / 변수도 저장됩니까? - Bazel과 관련하여 재교육을 위해 .pb 파일로만 저장 /로드 할 수 있습니까? 그래프를 .pb로 덤프하는 간단한 Bazel 명령이 있습니까?
- 고정과 관련하여 고정 된 그래프는
tf.import_graph_def()
? 를 사용하여로드 할 수 있습니다 . - TensorFlow 용 Android 데모는 .pb 파일에서 Google의 Inception 모델로로드됩니다. 내 자신의 .pb 파일을 대체하려면 어떻게해야합니까? 네이티브 코드 / 메서드를 변경해야합니까?
- 일반적으로이 모든 방법의 차이점은 정확히 무엇입니까? 또는 더 광범위하게
as_graph_def()
/.ckpt/.pb 의 차이점은 무엇입니까?
요컨대, 제가 찾고있는 것은 그래프 (다양한 연산 등)와 가중치 / 변수를 파일에 저장하는 방법입니다. 그러면 그래프와 가중치를 다른 프로그램에로드하는 데 사용할 수 있습니다. , 사용을 위해 (반드시 계속 / 재교육하는 것은 아님).
이 주제에 대한 문서는 그다지 간단하지 않으므로 답변 / 정보를 보내 주시면 감사하겠습니다.