0

현재 Google ML 엔진에서 모델을 배포하는 방법에 대해 조사하고 있습니다. 처음에는 TensorFlow 1.1.0을 사용하여 모델을 개발했습니다 (이 질문이 제기 될 때까지는 최신 버전이 존재합니다). 그러나 GCP에서 TensorFlow가 지원되는 가장 높은 버전은 1.0.1입니다.TensorFlow 1.0.1 SavedModelBuilder

문제는 내가 제대로 SavedModel 같은 모델과 variables/ 디렉토리 아래의 변수를 절약 할 수 TensorFlow 1.1.0, SavedModelBuilder를 사용하던 이전 할 때입니다. 그러나 TensorFlow 1.0.1로 전환하면 비슷하게 작동하지 않습니다. SavedModel 파일을 만들었지 만 variables/ 아래에 파일이 만들어지지 않으므로 SavedModel 파일 (누락 된 파일은 variables/) 만 사용하여 모델을 만들 수 없습니다.

알려진 버그입니까? 또는 TensorFlow 1.0.1의 SavedModelBuilder이 TensorFlow 1.1.0의 기능을 수행하도록하려면 어떻게해야합니까?

감사합니다.

편집, 자세한 내용 :

는 사실, 명시 적 tf.Variable의 내 모델에서 존재하지 않는있다. 그러나 여러 개의 tf.contrib.lookup.MutableDenseHashTable이 있으며 TensorFlow 1.1.0에서는 올바르게 내보내졌지만 TensorFlow 1.0.1에서는 올바르게 내보내지지 않았습니다 (1.0.1에서는 변수가 전혀 내보내지지 않았기 때문에).

+0

이 명확히하기 위해, 예를 들어, 당신의 훈련 작업에 추가 패키지로 지정, 당신은'tf.contrib.lookup.MutableDenseHashTable'는 1.1.0에 변수로 수출되고 있다는 말을하지만,하지 않을 1.0.1? – jwayne

+0

@jwayne 변수로 내 보낸 지 확실하지 않습니다. 그러나 모델 저장 및 로딩 (1.1.0의'SavedModelBuilder'를 포함한'MutableDenseHashTable'을 포함하여 1.0.1에서는 괜찮습니다.) – sokokaleb

답변

0

변수가없는 TensorFlow에서 모델을 저장하고로드하는 기능이이 commit에 도입되었으며 1.1.0에서만 사용 가능합니다.

임시 해결책으로 모델에 더미 (사용되지 않은) 변수를 만들 수 있습니다.

편집 : 밖으로 저장되지 않고있는 MutableDenseHashTable이 같은 영업 이익 업데이트를 기반으로, 그것은 소리 .

CloudML 엔진에서 TensorFlow 1.1을 실행할 수 있지만 수동으로 추가 패키지로 추가해야합니다.

먼저 TensorFlow 1.1 wheel을 다운로드하십시오. 그런 다음

gcloud ml-engine jobs submit training my_job \ 
    --module-name trainer.task \ 
    --staging-bucket gs://my-bucket \ 
    --package-path /my/code/path/trainer \ 
    --packages tensorflow-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl 
+0

사실, SavedModel은 서빙 모델로 사용되기 때문에, 변수와 값을 저장해야 그래프와 변수 및 내용을 모두 한 번로드 할 수 있습니다. – sokokaleb