공부중

[CNN] model.fit 본문

인공지능...?/머신러닝 및 Neural Network

[CNN] model.fit

복습 2024. 2. 5. 16:43
728x90
fit(
    x=None,
    y=None,
    batch_size=None,
    epochs=1,
    verbose='auto',
    callbacks=None,
    validation_split=0.0,
    validation_data=None,
    shuffle=True,
    class_weight=None,
    sample_weight=None,
    initial_epoch=0,
    steps_per_epoch=None,
    validation_steps=None,
    validation_batch_size=None,
    validation_freq=1,
    max_queue_size=10,
    workers=1,
    use_multiprocessing=False
)

 

고정된 수의 에포크(데이터 세트 반복) 동안 모델을 학습합니다.

 

인수

x 입력 데이터. 그것은 수:

  • Numpy 배열(또는 유사한 배열) 또는 배열 목록(모델에 여러 입력이 있는 경우)
  • TensorFlow 텐서 또는 텐서 목록(모델에 입력이 여러 개인 경우)
  • 모델에 입력 이름이 있는 경우 입력 이름을 해당 배열/텐서에 매핑하는 dict입니다.
  • 데이터 tf.data세트. (inputs, targets)또는 중 하나의 튜플을 반환해야 합니다 (inputs, targets, sample_weights).
  • 발전기 또는 keras.utils.Sequence반환 (inputs, targets)또는 (inputs, targets, sample_weights).
  • A tf.keras.utils.experimental.DatasetCreator- 유형의 단일 인수를 사용하는 콜러블을 래핑 tf.distribute.InputContext하고 를 반환합니다 tf.data.Dataset. DatasetCreator사용자가 에 대한 복제본별 일괄 처리 및 샤딩 논리를 지정하려는 경우에 사용해야 합니다 Dataset. tf.keras.utils.experimental.DatasetCreator자세한 내용은 문서를 참조하세요 . 반복자 유형(데이터 세트, 생성기, 시퀀스)의 압축 풀기 동작에 대한 자세한 설명은 아래에 나와 있습니다. 이것이 세 번째 구성 요소로 포함된 경우 sample_weights샘플 가중치는 인수에 적용되지만 의 인수에는 weighted_metrics적용되지 않습니다 . 를 사용하는 경우 에는 유형  지원됩니다 . metricscompile()tf.distribute.experimental.ParameterServerStrategyDatasetCreatorx
y 대상 데이터. 입력 데이터와 마찬가지로 xNumpy 배열 또는 TensorFlow 텐서일 수 있습니다. 이는 일치해야 합니다 x(Numpy 입력 및 텐서 대상을 가질 수 없거나 그 반대일 수 없음). x가 데이터 세트, 생성기 또는 keras.utils.Sequence인스턴스 인 경우 y지정하면 안 됩니다(대상은 에서 가져오므로 x).
batch_size 정수 또는 None. 그라데이션 업데이트당 샘플 수입니다. 지정하지 않으면 기본값은 32입니다. 데이터가 데이터 세트, 생성기 또는 인스턴스 형식인 경우 (일괄 처리를 생성하므로) 지정하지 마십시오 .batch_sizebatch_sizekeras.utils.Sequence
epochs 정수. 모델을 훈련하는 데 필요한 에포크 수입니다. x에포크는 전체 및 제공된 데이터 에 대한 반복입니다 y ( 플래그가 없음 이외의 것으로 설정되지 않은 경우). 와 함께 는 " 최종 시대"로 이해되어야 합니다. 모델은 에서 제공하는 여러 반복에 대해 학습되지 않고 단지 인덱스 에포크 에 도달할 때까지만 학습됩니다. steps_per_epochinitial_epochepochsepochsepochs
verbose 'auto', 0, 1 또는 2. 자세한 정보 표시 모드. 0 = 자동, 1 = 진행률 표시줄, 2 = 에포크당 한 줄. 'auto'는 대부분의 경우 1이 되지만 와 함께 사용하면 2가 됩니다 ParameterServerStrategy. 진행률 표시줄은 파일에 기록될 때 특별히 유용하지 않으므로 대화형으로 실행하지 않을 때는(예: 프로덕션 환경에서) verbose=2를 권장합니다. 기본값은 '자동'입니다.
callbacks 인스턴스 목록입니다 keras.callbacks.Callback. 훈련 중에 적용할 콜백 목록입니다. 보다 tf.keras.callbacks. 메모 tf.keras.callbacks.ProgbarLogger tf.keras.callbacks.History콜백은 자동으로 생성되므로 에 전달할 필요가 없습니다 . 에 대한 인수를 기반으로 생성되거나 생성되지 않습니다 . 일괄 수준 호출이 포함된 콜백은 현재 에서 지원되지 않으며 사용자는 대신 적절한 값을 사용하여 에포크 수준 호출을 구현하는 것이 좋습니다 . model.fittf.keras.callbacks.ProgbarLoggerverbosemodel.fittf.distribute.experimental.ParameterServerStrategysteps_per_epoch
validation_split 0과 1 사이의 부동 소수점입니다. 검증 데이터로 사용될 훈련 데이터의 비율입니다. 모델은 훈련 데이터의 이 부분을 구분하고, 훈련하지 않으며, 각 에포크가 끝날 때 이 데이터에 대한 손실과 모델 측정항목을 평가합니다. 검증 데이터는 섞기 전에 제공된 데이터의 마지막 샘플에서 선택 x됩니다 y. x이 인수는 데이터 세트, 생성기 또는 keras.utils.Sequence인스턴스 인 경우 지원되지 않습니다 . 및 가 모두 제공되면 가 재정의됩니다 . 에서는 아직 지원되지 않습니다 . validation_datavalidation_splitvalidation_datavalidation_splitvalidation_splittf.distribute.experimental.ParameterServerStrategy
validation_data 각 시대가 끝날 때 손실과 모델 측정항목을 평가하는 데이터입니다. 모델은 이 데이터에 대해 학습되지 않습니다. 따라서 노이즈 및 드롭아웃과 같은 정규화 레이어를 사용 하거나 영향을 받지 않는 데이터의 유효성 검사 손실이 있다는 사실에 유의하세요 . 재정의됩니다 . 다음과 같을 수 있습니다: validation_splitvalidation_datavalidation_datavalidation_splitvalidation_data
shuffle 부울(각 에포크 전에 훈련 데이터를 섞을지 여부) 또는 str('배치'의 경우)입니다. x이 인수는 생성기이거나 tf.data.Dataset의 객체인 경우 무시됩니다 . 'batch'는 HDF5 데이터의 한계를 처리하기 위한 특별한 옵션입니다. 배치 크기의 청크로 섞입니다. 가 아닌 경우 효과가 없습니다 . steps_per_epochNone
class_weight 손실 함수에 가중치를 부여하는 데 사용되는 선택적 사전 매핑 클래스 인덱스(정수)를 가중치(부동 소수점) 값으로 지정합니다(훈련 중에만). 이는 과소 대표 클래스의 샘플에 "더 많은 주의를 기울이십시오"라고 모델에 지시하는 데 유용할 수 있습니다. 가 지정되고 대상의 순위가 2 이상인 경우 원-핫 인코딩되어야 하거나 희소 클래스 레이블에 대한 명시적인 최종 차원이 포함되어야 합니다. class_weighty1
sample_weight 손실 함수에 가중치를 부여하는 데 사용되는 훈련 샘플에 대한 선택적인 Numpy 가중치 배열입니다(훈련 중에만). 입력 샘플과 길이가 동일한 평면(1D) Numpy 배열(가중치와 샘플 간의 1:1 매핑)을 전달하거나 시간 데이터의 경우 모양이 있는 2D 배열을 전달 하여 모든 샘플의 모든 시간 단계마다 가중치가 다릅니다. 이 인수는 데이터 세트, 생성기 또는 인스턴스인 경우 지원되지 않으며 대신 의 세 번째 요소로 Sample_weights를 제공합니다 . 샘플 가중치는 의 인수를 통해 지정된 측정항목에 적용되지 않습니다 . 측정항목에 샘플 가중치를 적용하려면 대신 in을 통해 지정할 수 있습니다 . (samples, sequence_length)xkeras.utils.Sequencexmetricscompile()weighted_metricscompile()
initial_epoch 정수. 훈련을 시작할 시점(이전 훈련 실행을 재개하는 데 유용함)
steps_per_epoch 정수 또는 None. 한 에포크가 완료되었다고 선언하고 다음 에포크를 시작하기 전의 총 단계 수(샘플 배치)입니다. TensorFlow 데이터 텐서와 같은 입력 텐서를 사용하여 훈련할 때 기본값은 None데이터세트의 샘플 수를 배치 크기로 나눈 값과 동일하며, 이를 결정할 수 없는 경우 1입니다. x가 tf.data데이터세트이고 'steps_per_epoch'가 None이면 입력 데이터세트가 소진될 때까지 에포크가 실행됩니다. 무한히 반복되는 데이터세트를 전달할 때 인수를 지정해야 합니다 . 무한히 반복되는 데이터세트로 훈련이 무기한 실행되는 경우 . 이 인수는 배열 입력에서는 지원되지 않습니다. 사용할 때 : steps_per_epochsteps_per_epoch=-1tf.distribute.experimental.ParameterServerStrategy
  • steps_per_epoch=None지원되지 않습니다.
validation_steps 제공되고 데이터 세트인 경우에만 관련됩니다 . 매 에포크가 끝날 때 검증을 수행할 때 중지하기 전에 추출할 총 단계(샘플 배치) 수입니다. 'validation_steps'가 None이면 데이터 세트가 소진될 때까지 유효성 검사가 실행됩니다. 무한히 반복되는 데이터세트의 경우 무한 루프에 빠지게 됩니다. 'validation_steps'가 지정되고 데이터세트의 일부만 소비되는 경우 각 에포크의 데이터세트 시작 부분부터 평가가 시작됩니다. 이렇게 하면 매번 동일한 검증 샘플이 사용됩니다. validation_datatf.datavalidation_data
validation_batch_size 정수 또는 None. 검증 배치당 샘플 수입니다. 지정하지 않으면 기본값은 입니다 . 데이터가 데이터 세트, 생성기 또는 인스턴스 형식인지 여부를 지정하지 마십시오 (일괄 처리를 생성하므로). batch_sizevalidation_batch_sizekeras.utils.Sequence
validation_freq 검증 데이터가 제공되는 경우에만 관련됩니다. 정수 또는 인스턴스(예: 목록, 튜플 등) 정수인 경우 새 검증 실행이 수행되기 전에 실행할 훈련 Epoch 수를 지정합니다(예: 2 Epoch마다 검증 실행). 컨테이너인 경우 유효성 검사를 실행할 에포크를 지정합니다. 예를 들어 첫 번째, 두 번째 및 10번째 에포크가 끝날 때 유효성 검사를 실행합니다. collections.abc.Containervalidation_freq=2validation_freq=[1, 2, 10]
max_queue_size 정수. keras.utils.Sequence생성기 또는 입력에만 사용됩니다 . 생성기 대기열의 최대 크기입니다. 지정하지 않으면 기본값은 10입니다. max_queue_size
workers 정수. keras.utils.Sequence생성기 또는 입력에만 사용됩니다 . 프로세스 기반 스레딩을 사용할 때 스핀업할 최대 프로세스 수입니다. 지정하지 않으면 workers 기본값은 1입니다.
use_multiprocessing 부울. keras.utils.Sequence생성기 또는 입력에만 사용됩니다 . 이면 True프로세스 기반 스레딩을 사용하십시오. 지정하지 않으면 기본값은 입니다 . 이 구현은 다중 처리에 의존하기 때문에 피클할 수 없는 인수를 하위 프로세스에 쉽게 전달할 수 없으므로 생성기에 전달하면 안 됩니다. use_multiprocessingFalse

 

 

 

 

 

 

 


 

관련 링크 

https://www.tensorflow.org/api_docs/python/tf/keras/Model#fit

 

tf.keras.Model  |  TensorFlow v2.15.0.post1

A model grouping layers into an object with training/inference features.

www.tensorflow.org

 

https://github.com/keras-team/keras/blob/v2.15.0/keras/engine/training.py#L1455-L1890

 

 

728x90

'인공지능...? > 머신러닝 및 Neural Network' 카테고리의 다른 글

[AI 용어 정리] Context, Atrous Convolution, HARD  (0) 2025.01.07
[딥러닝]  (0) 2024.09.26
[딥러닝 영상 분석]  (1) 2024.09.25
Colab Pro 결제  (0) 2024.09.14
[CNN]  (0) 2024.02.05