TF Hub 모델 형식
TF Hub는 TensorFlow 프로그램에서 다시 로드, 빌드 및 재훈련할 수 있는 재사용 가능한 모델 조각을 제공합니다. 두 가지 형식으로 제공됩니다.
- 사용자 정의 TF1 Hub format: 주요 용도는 hub.Module API를 통한 TF1(또는 TF2의 TF1 호환성 모드)입니다. 전체 호환성 세부 정보는 아래에 나와 있습니다.
- 기본 TF2 SavedModel 형식: 주요 용도는 hub.load 및 hub.KerasLayer API를 통해 TF2에 있습니다. 전체 호환성 세부 정보는 아래에 나와 있습니다.
모델 형식은 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)
outputs = m.signatures["sig"](inputs) m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs) |
미세 조정 | 완전 지원(전체 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) m = hub.KerasLayer(handle)
outputs = m(inputs) |
완전 지원(전체 TF2 SavedModel 로딩 가이드). 다음 중 하나를 사용하세요. hub.load m = hub.load(handle) outputs = m(inputs) 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) m = hub.KerasLayer (handle, trainable = True) outputs = m (inputs) |
생성 | TF2 API tf.saved_model.save () 는 compat 모드에서 호출 할 수 있습니다. | 완전 지원(전체 TF2 SavedModel 생성 가이드 참조) |
[1] "TF2의 TF1 호환 모드"는 TensorFlow 마이그레이션 가이드의 설명과 같이 import tensorflow.compat.v1 as tf
로 TF2를 가져오고 tf.disable_v2_behavior()
를 실행하는 결합된 효과를 말합니다.