TensorFlow는 딥 러닝과 같은 고급 ML 방법을 지원하는 오픈소스 ML 플랫폼입니다. 이 페이지에서는 Earth Engine의 TensorFlow 관련 기능을 설명합니다. TensorFlow 모델은 Earth Engine 외부에서 개발되고 학습되지만 Earth Engine API는 TFRecord 형식으로 학습 및 테스트 데이터를 내보내고 TFRecord 형식으로 이미지를 가져오거나 내보내는 메서드를 제공합니다. Earth Engine의 데이터와 함께 TensorFlow를 사용하기 위한 파이프라인을 개발하는 방법에 관한 자세한 내용은 TensorFlow 예시 페이지를 참고하세요. Earth Engine에서 데이터를 TFRecord 파일에 쓰는 방법을 자세히 알아보려면 TFRecord 페이지를 참고하세요.
ee.Model
ee.Model
패키지는 TensorFlow 지원 머신러닝 모델과의 상호작용을 처리합니다.
AI Platform에 호스팅된 모델과 상호작용
ee.Model.fromAiPlatformPredictor()
를 사용하여 새 ee.Model
인스턴스를 만들 수 있습니다. Earth Engine 데이터를 텐서로 패키징하고 Google AI Platform에 예측 요청으로 전달한 다음 응답을 Earth Engine 데이터 유형으로 자동으로 재조합하는 ee.Model
객체입니다. 모델과 입력의 크기와 복잡도에 따라 대량의 예측을 수용하도록 AI Platform 모델의 최소 노드 크기를 조정하는 것이 좋습니다.
Earth Engine에서는 AI Platform 모델이 TensorFlow의 SavedModel 형식을 사용해야 합니다. 호스팅된 모델이 Earth Engine과 상호작용하려면 입력/출력이 TensorProto 교환 형식, 특히 base64로 직렬화된 TensorProto와 호환되어야 합니다. 이를 더 쉽게 하기 위해 Earth Engine CLI에는 입력/출력 형식을 변환하는 데 필요한 작업에서 기존 SavedModel을 래핑하는 model prepare
명령어가 있습니다.
ee.Model.fromAiPlatformPredictor()
와 함께 모델을 사용하려면 모델을 사용할 수 있는 충분한 권한이 있어야 합니다. 특히 나 또는 모델을 사용하는 모든 사용자에게
ML Engine 모델 사용자 역할이 있어야 합니다. Cloud Console의 모델 페이지에서 모델 권한을 검사하고 설정할 수 있습니다.
리전
모델 생성, 버전 생성, ee.Model.fromAiPlatformPredictor()
에서 리전을 지정하여 모델에 리전 엔드포인트를 사용해야 합니다. 모든 리전에서 작동하지만 (글로벌은 사용하지 않음) us-central1
를 사용하는 것이 좋습니다. REGIONS
매개변수를 지정하지 마세요. Cloud 콘솔에서 모델을 만드는 경우 지역 체크박스가 선택되어 있는지 확인합니다.
비용
이미지 예측
model.predictImage()
를 사용하여 호스팅된 모델을 사용하여 ee.Image
에 대한 예측을 실행합니다. predictImage()
의 반환 유형은 ee.Image
이며, 이는 지도에 추가하거나, 다른 계산에 사용하거나, 내보낼 수 있습니다. Earth Engine은 입력 밴드를 자동으로 타일링하고 필요에 따라 크기 변경 및 오버타일링에 맞게 출력 프로젝션을 조정합니다. 타일링 작동 방식에 관한 자세한 내용은 TFRecord 문서를 참고하세요. 밴드가 스칼라인 경우에도 Earth Engine은 항상 3D 텐서를 모델에 전달합니다 (마지막 크기는 1임).
거의 모든 컨볼루션 모델에는 고정된 입력 투영 (모델이 학습된 데이터의 투영)이 있습니다. 이 경우 ee.Model.fromAiPlatformPredictor()
호출에서 fixInputProj
매개변수를 true로 설정합니다.
예측을 시각화할 때는 입력 프로젝션이 고정된 모델을 축소할 때 주의하세요. 이는 여기에 설명된 것과 동일한 이유 때문입니다. 특히 큰 공간 범위로 확대하면 너무 많은 데이터가 요청되어 AI Platform의 속도가 느려지거나 거부될 수 있습니다.