텐서플로:: 피복재:: 원천

이것은 추상 클래스입니다.

#include <source.h>

로드할 servable을 제공하는 모듈에 대한 추상화, 더 정확하게는 해당 servable을 로드하는 데 사용할 수 있는 데이터에 대한 핸들입니다.

요약

이러한 데이터 핸들의 예는 다음과 같습니다.

  • 직렬화된 어휘 맵에 대한 파일 시스템 경로
  • 로드할 기계 학습 모델을 지정하는 수신 RPC에 대한 핸들
  • 로더는 (참조 loader.h를 ) 데이터 핸들은 일반적으로 작은 것으로 가정한다.

소스는 새로운 servables 및 / 또는 servables의 새 버전 및 / 또는 게재 가능한 버전을 언로드 할 필요성에 대해 알고 일부 외부 리소스 (예 : 파일 시스템, RPC 호출)를 모니터링합니다. 이는 타겟 모듈 (예를 지시하도록 제공된 콜백 사용 AspiredVersionsManager 부하에 소정의 게재 가능한) 버전 (들). 또한, 대상 모듈의 의미에 따라 소스 암묵 그 servables를 생략하여 하역하는 것과 지시한다.

일반적인 경우가 있다는 것입니다 소스가 정확히 하나가 게재 할에 대한 버전을 방출한다. 더 간단한 경우는 servable이 서버의 수명 동안 단일 정적 버전을 갖는다는 것입니다.

소스는 여러 방출된 서블릿 간에 공유되는 상태를 저장할 수 있습니다.

  1. 여러 servable이 사용하는 공유 스레드 풀 또는 기타 리소스입니다.
  2. 각 제공 가능한 인스턴스에서 데이터 구조를 복제하는 시간과 공간 오버헤드를 피하기 위해 여러 제공 가능한 공유가 사용하는 공유 읽기 전용 데이터 구조입니다. 초기화 시간과 크기가 무시할 수 있는 공유 상태(예: 스레드 풀)는 소스에 의해 즉시 생성될 수 있으며, 소스는 방출된 각 ServableData 항목에 이에 대한 포인터를 포함합니다. 비싸거나 큰 공유 상태의 창조는 첫 번째 적용을 연기해야 로더 ::로드 () 관리자에 의해 지배 전화, 즉. 대칭의 로더 :: 언로드 () 을 해체해야한다 비싼 / 대형 공유 상태를 사용하여 최종 게재 가능한에게 전화를 겁니다.

생성자와 소멸자

~Source ()

공개 유형

AspiredVersionsCallback 사용
std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)>
A에 대한 콜백 소스 대상에 게재 가능한 공급 버전 (들)을 로딩한다.

공공 기능

SetAspiredVersionsCallback ( AspiredVersionsCallback callback)=0
virtual void
사용할 AspiredVersionsCallback을 제공합니다. 최대 한 번만 호출할 수 있습니다.

공개 유형

AspiredVersions콜백

std::function< void(const StringPiece servable_name, std::vector< ServableData< T >> versions)> AspiredVersionsCallback

A에 대한 콜백 소스 대상에 게재 가능한 공급 버전 (들)을 로딩한다.

콜백의 단일 호출은 단일 제공 가능한 스트림('servable_name'에 의해 제공됨)과 관련됩니다. 호출에서 제공되는 모든 버전은 'servable_name'에서 식별된 servable용이어야 합니다. 다른 제공 가능한 스트림에 대한 호출은 서로 직교합니다.

다중 호출은 동일한 ID(즉, 동일한 제공 가능한 이름 및 버전)를 가진 제공 가능한 데이터 개체를 제공할 수 있습니다. 이러한 제공 가능한 데이터 개체는 의미적으로 동일한 것으로 취급됩니다. 받는 사람은 궁극적으로 하나를 유지하고 나머지는 버립니다.

제공 가능한 버전 V가 첫 번째 호출에서 제공되고 이후에 두 번째 호출에서 생략된 경우 V 생략의 의미는 콜백 대상의 의미 체계에 따라 다릅니다. 특정 대상은 V의 생략을 V를 언로드하라는 암시적 명령으로 해석합니다. 각 대상은 이와 관련하여 의미 체계를 문서화해야 합니다.

공공 기능

SetAspiredVersions콜백

virtual void SetAspiredVersionsCallback(
  AspiredVersionsCallback callback
)=0

사용할 AspiredVersionsCallback을 제공합니다. 최대 한 번만 호출할 수 있습니다.

~ 출처

virtual  ~Source()=default