이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

tf.estimator.DNNClassifier

TensorFlow 1 개 버전 GitHub의에서 소스보기

TensorFlow DNN 모델에 대한 분류.

: 상속 Estimator

전자 필기장에서 사용

튜토리얼에서 사용

예:

 categorical_feature_a = categorical_column_with_hash_bucket(...)
categorical_feature_b = categorical_column_with_hash_bucket(...)

categorical_feature_a_emb = embedding_column(
    categorical_column=categorical_feature_a, ...)
categorical_feature_b_emb = embedding_column(
    categorical_column=categorical_feature_b, ...)

estimator = tf.estimator.DNNClassifier(
    feature_columns=[categorical_feature_a_emb, categorical_feature_b_emb],
    hidden_units=[1024, 512, 256])

# Or estimator using the ProximalAdagradOptimizer optimizer with
# regularization.
estimator = tf.estimator.DNNClassifier(
    feature_columns=[categorical_feature_a_emb, categorical_feature_b_emb],
    hidden_units=[1024, 512, 256],
    optimizer=tf.compat.v1.train.ProximalAdagradOptimizer(
      learning_rate=0.1,
      l1_regularization_strength=0.001
    ))

# Or estimator using an optimizer with a learning rate decay.
estimator = tf.estimator.DNNClassifier(
    feature_columns=[categorical_feature_a_emb, categorical_feature_b_emb],
    hidden_units=[1024, 512, 256],
    optimizer=lambda: tf.keras.optimizers.Adam(
        learning_rate=tf.compat.v1.train.exponential_decay(
            learning_rate=0.1,
            global_step=tf.compat.v1.train.get_global_step(),
            decay_steps=10000,
            decay_rate=0.96))

# Or estimator with warm-starting from a previous checkpoint.
estimator = tf.estimator.DNNClassifier(
    feature_columns=[categorical_feature_a_emb, categorical_feature_b_emb],
    hidden_units=[1024, 512, 256],
    warm_start_from="/path/to/checkpoint/dir")

# Input builders
def input_fn_train:
  # Returns tf.data.Dataset of (x, y) tuple where y represents label's class
  # index.
  pass
def input_fn_eval:
  # Returns tf.data.Dataset of (x, y) tuple where y represents label's class
  # index.
  pass
def input_fn_predict:
  # Returns tf.data.Dataset of (x, None) tuple.
  pass
estimator.train(input_fn=input_fn_train)
metrics = estimator.evaluate(input_fn=input_fn_eval)
predictions = estimator.predict(input_fn=input_fn_predict)
 

의 입력 trainevaluate 기능을 다음해야는, 그렇지 않으면있을 것 KeyError :

  • 만약 weight_column 없는없는 None 와 기능 key=weight_column 값 A는 Tensor .
  • column 에서 feature_columns :
    • 만약 column A는 CategoricalColumn 와 기능 key=column.name value A는 SparseTensor .
    • 만약 column A는 WeightedCategoricalColumn 함께 제 : 두 개의 기능 key ID 열에 이름, 상기 제 2 key 추 칼럼 이름. 두 기능 ' value 해야 SparseTensor .
    • 만약 column A는 DenseColumn 와 기능 key=column.name value A는 Tensor .

손실 softmax를 교차 엔트로피를 사용하여 계산됩니다.

hidden_units 레이어 당 수 숨겨진 단위의 Iterable. 모든 층이 완전히 연결되어 있습니다. 전의. [64, 32] 수단 1 층은 64 개 개의 노드를 가지며, 두 번째는 32을 갖는다.
feature_columns 모델에서 사용하는 모든 기능 열을 포함하는 반복 가능한. 세트에있는 모든 항목에서 파생 된 클래스의 인스턴스해야 _FeatureColumn .
model_dir 디렉토리이 또한 이전에 저장 한 모델을 훈련을 계속하기 위해 추정 한 디렉토리에서로드 체크 포인트로 사용할 수있는 등 모델 매개 변수, 그래프를 저장합니다.
n_classes 라벨 클래스의 수. 2, 즉 바이너리 분류 기본값. > 1이어야합니다.
weight_column 문자열 또는 NumericColumn 만든 tf.feature_column.numeric_column 가중치를 나타내는 기능 열을 정의. 이 훈련 도중 아래로 중량 부스트 예에 사용된다. 그것은 예를의 손실을 곱한 것이다. 이 문자열 인 경우는 중량 텐서를 가져 키로서 사용되는 features . 그것은 경우 _NumericColumn , 원료 텐서 키에 의해 페치 weight_column.key , 다음 weight_column.normalizer_fn 체중 텐서를 얻기 위해 그것을 적용된다.
label_vocabulary 문자열리스트 가능한 라벨 값을 나타낸다. 주어진 경우, 라벨은 문자열 형식이어야하며 어떤 값이 있어야합니다 label_vocabulary . 이 주어지지 않는다면, 그 수단 라벨 이미 내의 정수 또는 부동으로 인코딩된다 [0, 1]의 n_classes=2 및 {0,1, ..., n_classes-1}에 대한의 정수 값으로서 인코딩 n_classes > 2. 어휘가 제공 및 라벨 문자열입니다되지 않은 경우에도 오류가있을 것입니다.
optimizer 의 인스턴스 tf.keras.optimizers.* 모델을 훈련하는 데 사용됩니다. 또한 문자열이 될 수 있습니다 ( 'Adagrad'중 하나를, '아담', 'Ftrl', 'RMSProp', SGD '), 또는 호출. Adagrad 최적화 기본값.
activation_fn 활성화 함수는 각 층에인가. 경우 None , 사용 tf.nn.relu .
dropout 하지 않을 때는 None , 우리는 주어진 좌표를 중퇴 할 확률.
config RunConfig 객체는 런타임 설정을 구성 할 수 있습니다.
warm_start_from 체크 포인트에 대한 문자열 파일 경로가에서 예열 시작, 또는 WarmStartSettings 완전히 구성 예열 시작에 반대. 문자열 파일 경로가 대신 제공된다 경우 WarmStartSettings , 모든 가중치는 워밍업을 시작이며, 어휘 및 텐서 이름이 변경되지 않은 것으로 가정한다.
loss_reduction 하나 tf.losses.Reduction 제외 NONE . 배치를 통해 훈련 손실을 감소하는 방법을 설명합니다. 기본값은 SUM_OVER_BATCH_SIZE .
batch_norm 여부는 각 숨겨진 레이어 후 배치 정상화를 사용합니다.

열망 호환성

열망 실행이 활성화 된 상태 추정량을 사용할 수 있습니다. 참고 input_fn 그들이 그래프 모드와 호환되도록 작성해야하므로 모든 고리는 그래프 컨텍스트 내부 실행된다. 참고 것을 input_fn 사용하여 코드 tf.data 일반적으로는 그래프와 열망 모드 모두에서 작동합니다.

config

export_savedmodel

model_dir

model_fn 수익 model_fn 에 바인딩 self.params .
params

행동 양식

eval_dir

소스보기

쇼 평가 지표가 덤프하는 디렉토리 이름.

인수
name 평가의 이름은 사용자의 요구는 테스트 데이터 대 데이터를 훈련에 서로 다른 데이터 세트에 대한 여러 평가를 실행합니다. 다른 평가에 대한 통계는 별도의 폴더에 저장하고, tensorboard에서 개별적으로 나타납니다.

보고
디렉토리의 경로 문자열 평가 지표가 포함되어 있습니다.

evaluate

소스보기

모델 주어진 평가 데이터 평가 input_fn .

각 단계 호출 input_fn 하나 개의 데이터 배치를 반환합니다. 평가됩니다 때까지 :

인수
input_fn 평가를위한 입력 데이터를 구성하는 기능. 참조 미리 만들어진 추정량을 자세한 내용은. 이 기능은 구성하고 다음 중 하나를 반환해야합니다 :

  • tf.data.Dataset 객체 :의 출력 Dataset 객체가 튜플해야합니다 (features, labels) 아래 같은 제약.
  • 튜플 (features, labels) : features A는 tf.Tensor 거나 문자열 기능 이름의 사전 Tensorlabels A는 Tensor 거나 문자열 레이블 이름의 사전 Tensor . 두 featureslabels 에 의해 소비된다 model_fn . 그들은의 기대에 만족해야 model_fn 입력으로부터합니다.
steps 모델을 평가하기위한 단계의 수. 경우 None 일까지 평가하여 input_fn 최종의 입력 예외가 발생하지 않는다.
hooks 목록 tf.train.SessionRunHook 서브 클래스 인스턴스. 평가 호출 내부 콜백을 사용합니다.
checkpoint_path 특정 체크 포인트의 경로 평가합니다. 경우 None , 최신 체크 포인트 model_dir 사용됩니다. 에는 검문소가없는 경우 model_dir , 평가는 새로 초기화 실행되는 Variables 대신 체크 포인트에서 복원 것들.
name 평가의 이름은 사용자의 요구는 테스트 데이터 대 데이터를 훈련에 서로 다른 데이터 세트에 대한 여러 평가를 실행합니다. 다른 평가에 대한 통계는 별도의 폴더에 저장하고, tensorboard에서 개별적으로 나타납니다.

보고
지정된 평가 지표 함유하는 딕셔너리 model_fn 이름에 의해 키 입력뿐만 아니라 입력 global_step 이 평가를 수행 하였다하는 글로벌 단계의 값을 포함한다. 통조림 추정량의 경우, DICT는 포함 loss (미니 배치 당 평균 손실)과 average_loss (샘플 당 평균 손실). 통조림 분류는 또한 반환 accuracy . 통조림 회귀 변수는 또한 반환 label/meanprediction/mean .

제기
ValueError 만약 steps <= 0 .

experimental_export_all_saved_models

소스보기

내보내는 SavedModeltf.MetaGraphDefs 각 요청 모드.

비아 전달 각 모드 input_receiver_fn_map ,이 방법은 호출하여 새로운 그래프를 생성 input_receiver_fn 기능을 획득하고 라벨을 Tensor 들. 다음으로,이 방법은 호출 Estimatormodel_fn 그래프로 (즉, 가장 최근의 체크 포인트가 부족하거나) 이러한 기능 및 라벨에 따라 모델 그래프를 생성 할 수있는 통과 모드에서, 주어진 체크 포인트를 복원합니다. 전용 모드 중 하나의 변수를 저장하는데 사용된다 SavedModel (우선 순위 tf.estimator.ModeKeys.TRAIN , tf.estimator.ModeKeys.EVAL 다음 tf.estimator.ModeKeys.PREDICT , 예컨대 그 최대 3 개)의 tf.MetaGraphDefs 하나의 변수의 단일 세트로 저장됩니다 SavedModel 디렉토리.

변수와 들어 tf.MetaGraphDefs , 아래의 타임 스탬프 수출 디렉토리 export_dir_base 및 기록 SavedModel 포함하는 그것으로 tf.MetaGraphDef 주어진 모드와 관련 서명을.

예측 보낸 MetaGraphDef 하나 제공 SignatureDef 의 각 요소 export_outputs 로부터 반환 딕셔너리 model_fn 동일한 키를 사용하여 이름. 이러한 키 중 하나는 항상 tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY 서빙 요청이 하나를 지정하지 않는 경우 서비스 될 서명을 나타냅니다. 각 서명은 출력은 대응하여 제공된다 tf.estimator.export.ExportOutput S 및 입력 항상 의해 제공되는 입력 수신기이다 serving_input_receiver_fn .

교육 및 평가의 경우, train_op 별도의 수집 및 손실 측정에 저장되고, 예측이 포함되어 SignatureDef 문제의 모드.

추가 자산은에 기록 될 수 SavedModel 비아 assets_extra 인수. 이것은 각각의 키는 assets.extra 디렉토리에 상대적 (파일 이름 포함) 대상 경로를 제공하는 딕셔너리이어야한다. 해당 값은 소스 파일의 전체 경로를 복사 할 수 있습니다. 예를 들어, 그것은으로 지정 이름을 변경하지 않고 하나의 파일을 복사하는 간단한 경우 {'my_asset_file.txt': '/path/to/my_asset_file.txt'} .

인수
export_dir_base 의 디렉토리가 포함 된 문자열 수출 포함하는 타임 스탬프 하위 디렉토리 생성하는 SavedModel 들.
input_receiver_fn_map 의 DICT tf.estimator.ModeKeysinput_receiver_fn 매핑, input_receiver_fn 인수를 취하지 않고 적절한 서브 클래스 반환하는 함수입니다 InputReceiver .
assets_extra assets.extra에 보낸 내 디렉토리 채우는 방법을 지정하는 DICT SavedModel , 또는 None 여분의 자산이 필요하지 않은 경우.
as_text 여부를 쓰기 SavedModel 텍스트 형식으로 프로토합니다.
checkpoint_path 체크 포인트 경로를 보냅니다. 경우 None (기본값), 가장 최근의 체크 포인트는 모델 디렉토리에 발견 선택됩니다.

보고
bytes 객체로 내 보낸 디렉토리 경로.

제기
ValueError 어떤 경우 input_receiver_fn 없습니다 None , 더 export_outputs 제공되지 않습니다, 또는 검사 점을 찾을 수 없습니다.

export_saved_model

소스보기

그래프 A와 추론 수출 SavedModel 지정된 디렉토리로.

자세한 가이드을 참조 추정량에서 SavedModel을 .

이 방법은 먼저 호출하여 새로운 그래프를 생성 serving_input_receiver_fn 특징 수득 Tensor 이 후 호출들, 및 Estimatormodel_fn 그 기능에 기초하여 상기 모델 그래프를 생성한다. 그것은 새로운 세션이 그래프에 (즉, 가장 최근의 체크 포인트가 부족하거나) 지정된 체크 포인트를 복원합니다. 마지막으로 주어진 아래의 타임 스탬프 수출 디렉토리 생성 export_dir_base 하고, 기록 SavedModel 이 하나의 포함에 tf.MetaGraphDef 이 세션에서 저장을.

내 보낸 MetaGraphDef 하나 제공 SignatureDef 의 각 요소에 대해 export_outputs 으로부터 반환 DICT model_fn 같은 키를 사용하여 명명. 이러한 키 중 하나는 항상 tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY 서빙 요청이 하나를 지정하지 않는 경우 서비스 될 서명을 나타냅니다. 각 서명은 출력은 대응하여 제공된다 tf.estimator.export.ExportOutput S 및 입력 항상 의해 제공되는 입력 수신기이다 serving_input_receiver_fn .

추가 자산은에 기록 될 수 SavedModel 비아 assets_extra 인수. 이것은 각각의 키는 assets.extra 디렉토리에 상대적 (파일 이름 포함) 대상 경로를 제공하는 딕셔너리이어야한다. 해당 값은 소스 파일의 전체 경로를 복사 할 수 있습니다. 예를 들어, 그것은으로 지정 이름을 변경하지 않고 하나의 파일을 복사하는 간단한 경우 {'my_asset_file.txt': '/path/to/my_asset_file.txt'} .

experimental_mode 매개 변수는 같은 단일 기차 / 평가 / 예측 그래프를 내보낼 수 있습니다 SavedModel . 참조 experimental_export_all_saved_models 전체 문서에 대한합니다.

인수
export_dir_base 의 디렉토리가 포함 된 문자열 수출 포함하는 타임 스탬프 하위 디렉토리 생성하는 SavedModel 들.
serving_input_receiver_fn 어떤 주장을지지 않습니다하고 반환하는 기능 tf.estimator.export.ServingInputReceiver 또는 tf.estimator.export.TensorServingInputReceiver .
assets_extra assets.extra에 보낸 내 디렉토리 채우는 방법을 지정하는 DICT SavedModel , 또는 None 여분의 자산이 필요하지 않은 경우.
as_text 여부를 쓰기 SavedModel 텍스트 형식으로 프로토합니다.
checkpoint_path 체크 포인트 경로를 보냅니다. 경우 None (기본값), 가장 최근의 체크 포인트는 모델 디렉토리에 발견 선택됩니다.
experimental_mode tf.estimator.ModeKeys 모드를 나타내는 값을 보냅니다. 이 기능은 실험이라고합니다.

보고
bytes 객체로 내 보낸 디렉토리 경로.

제기
ValueError 어떤 경우 serving_input_receiver_fn 제공되지 않습니다, 더 export_outputs 제공되지 않습니다, 또는 검사 점을 찾을 수 없습니다.

get_variable_names

소스보기

반환이 모델의 모든 변수 이름의 목록입니다.

보고
이름 목록.

제기
ValueError 경우 Estimator 아직 체크 포인트를 생산하지 않았다.

get_variable_value

소스보기

반환 이름으로 주어진 변수의 값입니다.

인수
name 문자열이나 텐서의 이름을 문자열의 목록.

보고
NumPy와 어레이 - 텐서의 값.

제기
ValueError 경우 Estimator 아직 체크 포인트를 생산하지 않았다.

latest_checkpoint

소스보기

최신 저장 검사 점 파일의 파일 이름을 찾습니다 model_dir .

보고
최신 검사 점 또는 전체 경로 None 검사 점은 발견되지 않은 경우.

predict

소스보기

주어진 기능에 대한 예측을 산출한다.

인터리빙이 일을 출력하지 않습니다 예측할 수 있습니다. 참조 : 문제 / 20506

인수
input_fn 기능을 구성하는 기능. 예측 될 때까지 계속 input_fn 최종의 입력 예외 (제기 tf.errors.OutOfRangeError 또는 StopIteration ). 참조 미리 만들어진 추정량을 자세한 내용은. 이 기능은 구성하고 다음 중 하나를 반환해야합니다 :

  • tf.data.Dataset 목적은 -의 출력 Dataset 객체는 다음과 같은 제약 조건이 있어야합니다.
  • 기능 - tf.Tensor 거나 문자열 기능 이름의 사전 Tensor . 기능에 의해 소비된다 model_fn . 그들은의 기대에 만족해야 model_fn 입력으로부터합니다.
  • 첫 번째 항목이 특징으로서 추출되어있는 경우의 튜플.
predict_keys 목록 str , 키의 이름을 예측할 수 있습니다. 경우 사용됩니다 tf.estimator.EstimatorSpec.predictions A는 dict . 경우 predict_keys 다음 사용되는 예측의 휴식하는 사전에서 필터링됩니다. 경우 None , 모두 반환합니다.
hooks 목록 tf.train.SessionRunHook 서브 클래스 인스턴스. 예측 전화 내부 콜백을 사용합니다.
checkpoint_path 특정 체크 포인트의 경로를 예측합니다. 경우 None , 최신 체크 포인트 model_dir 사용됩니다. 에는 검문소가없는 경우 model_dir , 예측은 새로 초기화 실행되는 Variables 대신 체크 포인트에서 복원 것들.
yield_single_examples 경우 False 에 의해 반환되는 전체 배치를 얻을 수 model_fn 개별 요소에 배치 분해 대신. 경우에 유용합니다 model_fn 그 첫 번째 차원 배치 사이즈와 동일하지 않은 일부 텐서를 반환합니다.

수익률 :

평가 값의 predictions 텐서.

제기
ValueError 예측의 배치 길이가 동일하지 않습니다 및 경우 yield_single_examples 입니다 True .
ValueError 사이에 충돌이있는 경우 predict_keyspredictions . 예를 들어 경우 predict_keys 하지 않습니다 None 하지만 tf.estimator.EstimatorSpec.predictions 하지 않은 것입니다 dict .

train

소스보기

기차 모델 주어진 훈련 데이터 input_fn .

인수
input_fn minibatches으로 훈련 입력 데이터를 제공하는 기능. 참조 미리 만들어진 추정량을 자세한 내용은. 이 기능은 구성하고 다음 중 하나를 반환해야합니다 :

  • tf.data.Dataset 객체 :의 출력 Dataset 객체가 튜플해야합니다 (features, labels) 아래 같은 제약.
  • 튜플 (features, labels) : features A는 tf.Tensor 거나 문자열 기능 이름의 사전 Tensorlabels A는 Tensor 거나 문자열 레이블 이름의 사전 Tensor . 두 featureslabels 에 의해 소비된다 model_fn . 그들은의 기대에 만족해야 model_fn 입력으로부터합니다.
hooks 목록 tf.train.SessionRunHook 서브 클래스 인스턴스. 교육 루프 내부 콜백을 사용합니다.
steps 모델을 훈련 할 단계의 수. 경우 None , 때까지 영원히 기차 기차 input_fn 발생하지 tf.errors.OutOfRange 오류 또는 StopIteration 예외를. steps 점진적으로 작동합니다. 당신이 호출하면 두 번 train(steps=10) 후 훈련은 총 20 단계에서 발생합니다. 경우 OutOfRange 또는 StopIteration 중간에 발생, 훈련은 20 단계 전에 중지합니다. 증분 동작을하지 않으려면 설정을하세요 max_steps 대신. 설정하면, max_steps 없어야합니다 None .
max_steps 하는 기차 모델 전체 단계의 수. 경우 None , 때까지 영원히 기차 기차 input_fn 발생하지 tf.errors.OutOfRange 오류 또는 StopIteration 예외를. 설정하면, steps 없어야합니다 None . 경우 OutOfRange 또는 StopIteration 중간에 발생, 훈련 전에 중지 max_steps 단계. 를 두 번 호출 train(steps=100) 200 훈련 반복을 의미한다. 반면에, 두 개의 호출합니다 train(max_steps=100) 첫 번째 호출은 모두 100 단계를 한 이후 두 번째 호출은 어떤 반복 작업을 수행하지 않음을 의미합니다.
saving_listeners 목록 CheckpointSaverListener 객체. 전이나 체크 포인트 절약 후 즉시 실행 콜백을 사용합니다.

보고
self , 체인합니다.

제기
ValueError 두 경우 stepsmax_steps 하지 않습니다 None .
ValueError 하나 만약 steps 또는 max_steps <= 0 .