Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 분류 결과표
- del
- 최댓값
- 최솟값
- insert()
- wcss
- pandas
- append()
- count()
- len()
- sklearn
- Python
- DataFrame
- 반복문
- Machine Learning
- 덴드로그램
- hierarchical_clustering
- DataAccess
- list
- function
- matplotlib
- Dictionary
- data
- string
- IN
- analizer
- nan
- dendrogram
- numpy
- elbow method
Archives
- Today
- Total
개발공부
Fine Tuning을 하기 위한 코드와 설명 본문
Fine Tuning
Fine Tuning이란 Transfer Learning을 이용해 학습한 상태에서 (즉, fit을 한 상태에서)
베이스 모델의 Frozen Layer 범위에 변화를 주거나 컴파일에 변화를 주어 추가로 학습을 시키는 것이다.
예제
모델은 이미 생성 되어 있고, 학습을 한 상태이다.
# 1. 먼저 베이스 모델의 전체 레이러를 학습 가능토록 바꿔준다.
base_model.trainable = True
# 2. 베이스모델의 전체 레이어 수를 확인한다
len(base_model.layers)
# 3. 몇번째 레이어까지, 학습이 안되도록 할지 결정해준다.
end_layer = 100
# 4. 베이스 모델의 첫번째 레이어부터 우리가 정한 레이어까지는 학습이 안되도록 설정해준다.
for layer in base_model.layers [ : end_layer]:
layer.trainable = False
model.compile(tf.keras.optimizers.Adam(0.0001), loss = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(train_generator, epochs = 5, validation_data = validation_generator)
이때의 결과는 더 좋아질 수도 더 안좋아질 수 도 있다.
'Python > Deep Learning' 카테고리의 다른 글
| 에포크 시마다 기록(로그)을 남길 수 있는 CSVLogger (0) | 2022.06.16 |
|---|---|
| 에포크 시마다 가장 좋은 모델을 저장하는 ModelCheckpoint (0) | 2022.06.16 |
| Transfer Learning을 이용한 이미지 분류 실습 (0) | 2022.06.16 |
| Transfer Learning 개념 (0) | 2022.06.16 |
| 파일을 training과 test 디렉토리로 나눠서 저장하는 방법 (0) | 2022.06.15 |