2017-12-21 1 views
0

ML 프로젝트에서 작업 중이며 Tensorflow과 함께 keras을 사용하고 있습니다. 나는 파이썬 3.5 내 로컬 윈도우 머신에서 모델을 저장하고 모델을 가상 머신 (또한 3.5를 실행)에 복사하여 예측 모델을 사용할 모델을 만든다.Keras> 파이썬 버전이 다른 다른 컴퓨터에서 훈련 된 모델 사용

작업이 매우 명확하고 쉽게 보이지만 predict 함수를 호출하는 중에 오류가 발생합니다.

ValueError: Tensor Tensor("activation_1/Sigmoid:0", shape=(?, 1), dtype=float32) is not an element of this graph. 

나는 그것이 플랫폼의 차이 문제가 될 수 있다고 생각, 그래서 나는 (파이썬 3.4 포함) 리눅스 시스템에서 내 모델을 훈련,하지만 난 여전히 예측 가상 머신에서 동일한 오류가 발생합니다.

오류의 원인이 OS 또는 Python 버전 차이 또는 다른 것일까요? 각 플랫폼에서 별도로 모델링 훈련, 저장 및 예측 작업이 잘 이루어집니다.

+0

두 가지 질문 : 1. 동일한 시스템에서 작동한다고 말하면 모델 직렬화가 포함됩니까? 2. 모델을 저장하기 위해 (pickle/JSON) 무엇을 사용하고 있습니까? 실제로 3 가지 질문 ... 모델의 입구 층은 무엇입니까? –

+0

1. 예, 모델과 파이썬 세션을 닫습니다. 그런 다음 다른 파이썬 세션에서로드합니다. 2. JSON을 사용하여 아키텍처를 저장하고 h5를 가중치로 사용합니다. 3. 입구 층은 256 뉴런으로 '조밀'합니다. – nabroyan

+0

문제가 될 수있는 아이디어가 없으므로 작동해야합니다. –

답변

0

저장 부분에 문제가있는 것으로 나타났습니다. 이것은 해결 나는이

model.save('model.h5') 

같은 모델을 웹에 약간의 검색을 수행 한 후 최적의 모델

model.fit(..., callbacks = [ModelCheckpoint(filepath='model.h5', save_best_only=True)]) 

을 절약하고 내가 제거한 그 부분을 몇 가지 조언을 시도하기위한 ModelCheckpoint 콜백을 사용하여 저장된 문제.

관련 문제