728x90
반응형
딥러닝 코드의 기본 구조가 compile > fit (훈련) > evaluate,predict (평가, 예측) 이런식의 흐름으로 진행된다는 것은 알고있지만, 각각의 훈련을 위한 API 구성요소가 무엇이 있고 어떤 특징이 있는지 공식 문서를 기반으로 정리해보겠습니다 :)
Model.compile
구성 요소 | 내용 | 설명 |
optimizer | RMSpop,SGD, Adam,Nadam,Adagrad, Adamax 등등 | 사용하려는 옵티마이저 이름을 문자열 형태 혹은 tf.keras.optimizers 인스턴스 형태로 기입 |
loss | binary_crossentropy, binary_focal_crossentropy, categorical_crossentropy, huber_loss, mean_absolute_error, mean_squared_error 등등 | 문자열 혹은 tf.keras.losses.Loss 인스턴스 형태로 손실함수 정의 |
metrics | accuracy, root_mean_squared_error 등등 | 평가지표를 문자열 혹은 tf.keras.metrics.Metric 인스턴스로 제시 {outputA:'accuracy',outputB:'mse'} 혹은 ['accuracy','mse'] 처럼 리스트나 딕셔너리 형태로 제시 가능함 |
loss_weights | 리스트 형태 사용시 결과값과 1:1 매칭 필요, dict 형태 사용시 결과값의 명칭을 스칼라 계수와 매칭시켜줘야 함 | 모델의 출력에 가중치부여를 위해 스칼라 형태 계수를 선택적으로 지정해주는 dict 혹은 리스트 형태 |
weighted_metrics | metrics list | 훈련/테스트 동안 평가될 매트릭스 리스트 (sample_weight 혹은 clas_weight 활용) |
run_eagerly | True / False (가급적 모델에 tf.function.run_eagerly = True가 아닌 이상 사용하지 않길 권장) |
False (default) True: 모델 구조가 tf.function에 포함되지 않을 것임 |
steps_per_execution | 정수 타입입력 | default 1 tf.function 실행마다 사용될 batch의 수를 의미함 |
jit_compile | True가 모든 모델에 적합하지는 않음. | True: 모델의 훈련 스텝을 XLA (머신러닝 최적화 컴파일러)를 사용해서 컴파일함 |
Model.fit(x,y,batch_size,epoch,verbase,callbacks, validation_split, validation data....)
구성요소 | 내용 | 설명 |
batch_size | 정수 | gradient 업데이트 때마다 사용하는 샘플의 수 (default 값은 32) |
epoch | 정수 | 모델 훈련을 위한 전체 데이터 순회 횟수 |
verbose | 'auto', 1, 2 대부분 auto 에서는 1이 사용됨 |
0 = silent 1 = 바 형태의 진행 2 = 에포크당 한줄 형태 |
callbacks | BackupAndRestore, BaseLogger, EarlyStopping, ModelCheckpoint, Tensorboard, Remotemonitor 등등 | keras.callbacks.Callback의 인스턴스들 리스트 callback 맞춤화를 위해서는 tf.keras.callbacks.Callback하위클래스를 오버라이드 하는 형태로 조정 가능 |
validation_split | 0에서 1 사이의 실수 | 별도의 검증 데이터 분리르 안했을 시에, 훈련데이터의 얼마 정도를 검증데이터로 사용 |
validation_data | 검증데이터 | 노이즈나 드롭아웃에 영향을 받지 않음. |
shuffle | True / False -> 전체데이터 셔플시 'batch' => 배치 내에서 섞을 건지 |
각 에포크 전에 훈련데이터의 셔플 여부를 결정 |
calss_weight | dict 형태로 어떤 클래스에 어떤 가중치를 사용할 것을 제시 | 훈련 중에 손실함수 가중치에 반영되는 값으로 모델에 특정 샘플에 집중하라는 명시적 제시로 사용 가능 |
sample_weight | 훈련 샘플을 위한 넘파이 배열 형태의 가중치 | 훈련 중 손실함수 가중치 계산시 사용 |
initial_epoch | 정수 | 훈련 시작시 사용될 epoch 횟수 지정 |
steps_per_epoch | 정수 혹은 None | 다음 에포크로 넘어가기 전 사용되는 배치 샘플의 수 명시 |
validation_steps | 에포크가 끝나기 전 검증을 수행할 때 사용하는 배치 샘플의 수 | validation_data가 제시되었을 때만 사용가능함. None 제시시에는 검증데이터 소진때까지 검증 수행 |
validation_batch_size | 정수 혹은 None | 검증 batch 마다 사용하는 샘플의 수 |
validation_freq | 정수 혹은 collection.abc.Container의 인스턴스 | 새로운 검증 수행 전에 실행되어야 하는 훈련 에포크의 수 (몇 에포크마다 validation을 수행할 것인지) |
max_queue_size | 정수 (default 10) | 제너레이터 혹은 keras.utils.Sequence 인풋에서만 사용됨. 단어 그대로 generator queue의 최대 사이즈를 의미함 |
workers | 정수 (default 1) | 제너레이터 혹은 keras.utils.Sequence 인풋에서만 사용됨. process-based threading 실행 시 진행가능한 최대 개수의 process |
use_multiprocessing | True / False (default False) | 제너레이터 혹은 keras.utils.Sequence 인풋에서만 사용됨. |
자료를 정리하면서 이해가 되는 부분도, 헷갈리는 부분도 있었는데요 🧐
공부하면서 추가 / 수정해나가겠습니다 !
Source:
728x90
반응형
'Data Science > Deep Learning' 카테고리의 다른 글
Pytorch 주피터, 코랩, 아니콘다에서 버전 확인하기 (0) | 2022.11.13 |
---|---|
GAN 모델 구현 사이트 추천 (0) | 2022.11.12 |
Keras 모델 fit 결과값 해석하기! (0) | 2022.11.06 |
Tensorflow 기본 함수 정리 (0) | 2022.11.04 |
Tensorflow axis = -1 의미 파악하기 (0) | 2022.11.04 |
댓글