다음을 통해 공유


TensorflowCatalog 클래스

정의

다음 TensorFlowTransformer 두 가지 시나리오에서 사용됩니다.

  1. 미리 학습된 TensorFlow 모델을 사용한 채점: 이 모드에서 변환은 미리 학습된 Tensorflow 모델에서 숨겨진 계층의 값을 추출하고 출력을 ML.Net 파이프라인의 기능으로 사용합니다.
  2. TensorFlow 모델 재학습: 이 모드에서 변환은 ML.Net 파이프라인을 통해 전달된 사용자 데이터를 사용하여 TensorFlow 모델을 재학습합니다. 모델이 학습되면 출력을 점수 매기기 기능으로 사용할 수 있습니다.
public static class TensorflowCatalog
type TensorflowCatalog = class
Public Module TensorflowCatalog
상속
TensorflowCatalog

설명

TensorFlowTransform은 미리 학습된 Tensorflow 모델을 사용하여 지정된 출력을 추출합니다. 필요에 따라 사용자 데이터에 대한 TensorFlow 모델을 추가로 재학습하여 사용자 데이터에 대한 모델 매개 변수를 조정할 수 있습니다("전송 학습"으로도 알려짐).

채점의 경우 변환은 미리 학습된 Tensorflow 모델, 입력 노드의 이름 및 추출할 값을 가진 출력 노드의 이름을 입력으로 사용합니다. 또한 재학습을 위해 변환에는 TensorFlow 그래프의 최적화 작업 이름, 그래프의 학습 속도 작업 이름 및 해당 값, 손실 및 성능 메트릭을 계산하기 위한 그래프의 작업 이름 등과 같은 학습 관련 매개 변수가 필요합니다.

이 변환을 수행하려면 Microsoft.ML.TensorFlow nuget을 설치해야 합니다. TensorFlowTransform에는 입력, 출력, 데이터 처리 및 재학습과 관련하여 다음과 같은 가정이 있습니다.

  1. 입력 모델의 경우 현재 TensorFlowTransform은 Frozen 모델 형식과 SavedModel 형식을 모두 지원합니다. 그러나 모델의 재학습은 SavedModel 형식에 대해서만 가능합니다. 검사점 형식은 현재 텐서플로 C-API의 로딩 지원이 부족하여 점수 매기기 또는 재학습에 지원되지 않습니다.
  2. 변환은 한 번에 하나의 예제만 채점할 수 있습니다. 그러나 재학습은 일괄 처리로 수행할 수 있습니다.
  3. 고급 전송 학습/미세 조정 시나리오(예: 네트워크에 더 많은 계층 추가, 입력 모양 변경, 재학습 프로세스 중에 업데이트할 필요가 없는 계층 고정 등)는 TensorFlow C-API를 사용하여 모델 내에서 네트워크/그래프 조작에 대한 지원이 부족하기 때문에 현재 불가능합니다.
  4. 입력 열의 이름은 TensorFlow 모델의 입력 이름과 일치해야 합니다.
  5. 각 출력 열의 이름은 TensorFlow 그래프의 작업 중 하나와 일치해야 합니다.
  6. 현재 double, float, long, int, short, sbyte, ulong, uint, ushort, byte 및 bool은 입력/출력에 허용되는 데이터 형식입니다.
  7. 성공하면 변환에 지정된 각 출력 열에 IDataView 해당하는 새 열이 도입됩니다.

TensorFlow 모델의 입력 및 출력은 summarize_graph 도구를 사용하여 GetModelSchema() 가져올 수 있습니다.

메서드

LoadTensorFlowModel(ModelOperationsCatalog, String, Boolean)

TensorFlow 모델을 메모리에 로드합니다. 이 메서드는 모델을 한 번 로드한 후 스키마를 쿼리하고 사용을 ScoreTensorFlowModel(String, String, Boolean)만드는 TensorFlowEstimator 데 사용할 수 있는 편리한 방법입니다. 이 API를 사용하려면 TensorFlow 재배포에 대한 추가 NuGet 종속성이 필요합니다. 자세한 내용은 연결된 문서를 참조하세요. TensorFlowModel 또한 Dispose()를 명시적으로 호출하거나 "using" 구문으로 변수를 선언하여 암시적으로 해제해야 하는 관리되지 않는 리소스에 대한 참조도 보유합니다.>

LoadTensorFlowModel(ModelOperationsCatalog, String)

TensorFlow 모델을 메모리에 로드합니다. 이 메서드는 모델을 한 번 로드한 후 스키마를 쿼리하고 사용을 ScoreTensorFlowModel(String, String, Boolean)만드는 TensorFlowEstimator 데 사용할 수 있는 편리한 방법입니다. 이 API를 사용하려면 TensorFlow 재배포에 대한 추가 NuGet 종속성이 필요합니다. 자세한 내용은 연결된 문서를 참조하세요. TensorFlowModel 또한 Dispose()를 명시적으로 호출하거나 "using" 구문으로 변수를 선언하여 암시적으로 해제해야 하는 관리되지 않는 리소스에 대한 참조도 보유합니다.>

적용 대상

추가 정보