2017-12-22 3 views
0

파이썬 3 용 TensorFlow 1.4 모델을 만든 후, 이제 Google Cloud ML 엔진이 현재 파이썬 2.7 만 지원한다는 사실을 알았습니다.세그먼트 오류 : 11 파이썬 3에서 파이썬 2로 TensorFlow 스크립트를 다시 이식 한 후

필자의 Python 3 코드를 처음에 뒤로 이식하는 것은 간단합니다. 일부 스크립트는 #!/usr/bin/env python3#!/usr/bin/env python으로 바꿀 때 예상대로 작동합니다. python -V은 내 (macOS) 환경에서 2.7.10을보고합니다.

그러나 한 스크립트는 너무 우아하게 반응하지 않습니다. 지금 실행할 때 이전 경고 또는 기타 진단 출력없이 Segmentation fault: 11가 생성됩니다.

근본 원인을 어떻게 알 수 있습니까? 그래서 그 스크립트를 파이썬 2에서 맛있게 만들 수 있도록 변경해야 할 사항이 있습니까?

iterator = dataset.make_initializable_iterator() 
get_next = iterator.get_next() 

답변

2

여기에 두 가지 문제가 있습니다 : 하나는 파이썬 3 지원 및 기타에 관한

UPDATE 분할 오류가 분명히 다음과 같이 get_nexttf.data.Iterator에서 얻을 수있다 session.run(get_next)를 호출하는 동안 발생 segfault에 관한 것입니다. 작업을 제출할 때

파이썬 3 지원 CloudML 엔진은 이제 'pythonVersion'필드를 통해, 파이썬 3를 지원합니다 (API reference docs 참조). 당신이 gcloud를 사용하는 경우이 (의 그것에게 config.yaml 이름을하자)처럼

당신은 설정 파일을 작성해야합니다 : 당신이 당신의 작업을 제출

trainingInput: 
    pythonVersion: "3.5" 

가리킨 gcloud을 해당 파일, 예를 들어,에

gcloud ml-engine jobs submit training --config=config.yaml ... 

세그먼트 폴트 이는 메모리 부족에 의해 발생 될 수있다. 해당 작업에 대한 콘솔의 메모리 사용량을 확인하십시오. 즉, 작업이 갑작스럽게 중단되면 오류 발생시의 메모리 사용량이 해당 작업에 정확하게 반영되지 않을 수 있습니다.

+0

우수한 파이썬 3. 다시 segfault, 나는 지금 모델이 데이터 집합 파일을 열 수 없다는 것을 알았습니다. 클라우드 ML 외부에서 작동하는 상대 경로에서 여전히이 기능을 사용하고 있지만'gcloud ml-engine 로컬 열차 '에서는 좋은 방법이 아닙니다. 아마 이것에 대한 후속 질문을 게시 할 것입니다. – Drux

+0

FYI : 후속 질문이 게시 됨 [여기] (https://stackoverflow.com/questions/47952143/does-google-cloud-ml-engine-trainer-has-to-be-explicitly-aware-of-google -cloud-s). – Drux