[딥러닝] Tensorflow에서 데이터로더 병렬처리 방법개요tensorflow에서 sequence 데이터로더를 사용하여 학습할 때, 데이터로더 처리 시간이 길어 gpu 사용률(Volatile GPU-Util)이 낮은 경우가 있다. gpu 사용률이 낮은건 다양한 이유가 있지만, 그 중 cpu 처리 속도가 느려 데이터를 로드하는 시간이 길어 학습 연산하는 gpu가 놀고 있는 경우도 있다. 이런 경우에는 학습 시간이 오래 걸리기 때문에, 데이터를 불러오는 시간을 줄여야 한다. 이 때, tensorflow에서 지원하는 OrderedEnqueuer를 사용하면 sequence를 병렬처리하여 시간을 단축시킬 수 있다.OrderedEnqueuer 사용법Sequence 데이터로더 생성Sequence를 상속받아 Data..
[딥러닝] Tensorflow 에서 모델 생성하는 법모델 생성 방법Tensorflow에서는 딥러닝 모델을 만드는 방법이 아래와 같이 3가지가 있습니다. Sequential 모델Functional 모델Subclassing 모델1, 2번은 기존 Keras를 사용하셨다면 이해하기 쉽고, 3번은 pytorch와 비슷한 방법입니다. 각각 어떻게 모델을 만드는지 알아보겠습니다.Sequential 모델 가장 구현하기 쉬운 방법입니다. Sequential 모델을 생성하여 원하는 layer를 순차적으로 add하는 방식입니다. 다만 이 방법으로는 직관적인 모델을 빠르게 구현할 수 있지만, 구조가 조금 복잡해지면 구현하기 어려울 수 있다는 단점이 있습니다.from tensorflow.keras.models import Se..
[딥러닝] tensorflow에서 학습된 모델 저장, 불러오기저장하기저장할 때에는 2가지 방법이 있다. 모델 구조와 weight를 한 번에 저장하는 방법과, weight만을 저장하는 방법이다. 상황에 따라 필요한 방법을 사용하면 된다. 모델을 통째로 저장할 때에는 디렉토리 경로를 지정해주면 해당 경로에 모델이 저장된다. weight만을 저장할 때에는 아래와 같이 확장자 지정 없이 경로를 지정해 주면 weigh값만 저장이 된다.# 1. 모델 통째로 저장 model.save('./my_model') # 2. weight만 저장 model.save_weights('./my_model/epoch_001') # 3. callbacks를 사용하여 저장 # 체크포인트 경로 지정({}변수 에 epoch 값이 들어가도록..
- Total
- Today
- Yesterday