TF1/TF2의 모델 호환성

TF Hub 모델 형식

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

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

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

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

TF2 SavedModel {:#compatibility_of_tf2_savedmodel}의 호환성

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

작업 TF2의 TF1.15/TF1 호환 모드[1] TF2
로딩/추론 hub.load 중 하나를 사용하십시오.
 m = hub.load (handle) 출력 = m (입력) 
또는 hub.KerasLayer
 m = hub.KerasLayer (핸들) 출력 = m (입력) 
완전히 지원됨 ( 전체 TF2 저장된 모델 로딩 가이드 ). hub.load 중 하나를 사용하십시오.
 m = hub.load (handle) 출력 = m (입력) 
또는 hub.KerasLayer
 m = hub.KerasLayer (핸들) 출력 = m (입력) 
미세 조정 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 () 는 compat 모드에서 호출 할 수 있습니다. 완전 지원(전체 TF2 SavedModel 생성 가이드 참조)

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