TF1/TF2의 모델 호환성

TF Hub 모델 형식

TF Hub는 TensorFlow 프로그램에서 다시 로드, 빌드 및 재훈련할 수 있는 재사용 가능한 모델 조각을 제공합니다. 두 가지 형식으로 제공됩니다.

모델 형식은 tfhub.dev의 모델 페이지에서 찾을 수 있습니다. 모델 로딩/추론, 미세 조정 또는 생성은 모델 형식에 따라 TF1/2에서 지원되지 않을 수 있습니다.

TF1 Hub 형식 {:#compatibility_of_hubmodule}의 호환성

작업 TF2의 TF1/TF1 호환 모드[1] TF2
로딩/추론 전체 지원(전체 TF1 Hub 형식 로딩 가이드)
m = hub.Module(handle) outputs = m(inputs)
hub.load 중 하나를 사용하는 것이 좋습니다.
 m = hub.load (handle) 출력 = m.signatures [ "sig"] (입력) 
또는 hub.KerasLayer
 m = hub.KerasLayer (handle, signature = "sig") 출력 = m (입력) 
미세 조정 완전 지원(전체 TF1 Hub 형식 미세 조정 가이드)
m = hub.Module(handle, trainable=True, tags=["train"]*is_training) outputs = m(inputs)
참고: 별도의 훈련 그래프가 필요하지 않은 모듈에는 훈련 태그가 없습니다.
지원되지 않음
생성 완전 지원(전체 TF1 Hub 형식 생성 가이드 참조)
참고: TF1 Hub 형식은 TF1에 맞춰져 있으며 TF2에서는 부분적으로만 지원됩니다. TF2 SavedModel의 생성을 고려해 보세요.
지원되지 않음

TF2 SavedModel {:#compatibility_of_tf2_savedmodel}의 호환성

TF1.15 이전에는 지원되지 않습니다.

작업 TF2의 TF1.15/TF1 호환 모드[1] TF2
로딩/추론 다음 중 하나를 사용하세요. hub.load
m = hub.load(handle) outputs = m(inputs)
또는 hub.KerasLayer
m = hub.KerasLayer(handle) outputs = m(inputs)
완전 지원(전체 TF2 SavedModel 로딩 가이드). 다음 중 하나를 사용하세요. hub.load
m = hub.load(handle) outputs = m(inputs)
또는 hub.KerasLayer
m = hub.KerasLayer(handle) outputs = m(inputs)
미세 조정 Model.fit()으로 훈련되거나 custom model_fn 가이드에 따라 model_fn이 모델을 래핑하는 Estimator에서 훈련된 경우, tf.keras.Model에서 사용되는 hub.KerasLayer를 지원합니다.
참고: hub.KerasLayer는 이전 tf.compat.v1.layers 또는 hub.Module API처럼 그래프 모음을 채우지 않습니다.
완전 지원(전체 TF2 저장된 모델 미세 조정 가이드). 다음 중 하나를 사용하세요. hub.load:
 m = hub.load (handle) 출력 = m (inputs, training = is_training) 
또는 hub.KerasLayer :
 m = hub.KerasLayer (handle, trainable = True) outputs = m (inputs) 
생성 TF2 API tf.saved_model.save()는 호환 모드에서 호출할 수 있습니다. 완전 지원(전체 TF2 SavedModel 생성 가이드 참조)

[1] "TF2의 TF1 호환 모드"는 TensorFlow 마이그레이션 가이드의 설명과 같이 import tensorflow.compat.v1 as tf로 TF2를 가져오고 tf.disable_v2_behavior()를 실행하는 결합된 효과를 말합니다.