BIG
Study. 개와 고양이 이미지 분석
[스스로 정리한 코드 분석과 흐름]
1. 파일 불러오기 및 디렉토리 정렬
- zip 파일 압축 풀기
- train, test 파일을 불러온다.
- matplotlib을 이용하여 이미지를 불러온다.
- train 파일 불러온 것을 그대로 쓸 수가 없기 때문에 사전에 전처리를 해야 한다.
- 파일 이름만 나와있기 때문에 디렉토리의 경로를 추가해주어서 path를 정렬한다.
- train['label'] = train['path'].apply(lambda x:x.split('/')[-1].split('.')[0]) ⇒ (path 옆에 개인지 고양이 인지 라벨링 해주는 작업) /를 기준으로 나눠서 -1(맨 오른쪽)에서 다시 . 을 기준으로 파일이 분리되는데 그중에서 0(첫 번째 자리) 값을 넣어서 apply 한다.
- test 파일도 위와 똑같이 path를 만들어서 정렬한다.
2. 훈련용 데이터와 테스트용 데이터 분할
- sklearn에서 제공하는 라이브러리를 사용한다.
- 두 개의 변수를 만들어서 기존 훈련용 데이터의 10%를 검증용 데이터로 만들었고 분리할 때 train의 label을 기준으로 균등하게 분리한다.
- label을 기준으로 count 해봄으로써 훈련용 데이터가 90%이고 검증용이 10%로 잘 분리되어 있는 것을 확인했다.
3. 데이터 증식
- 데이터 증식 ⇒ 딥러닝을 할 때 최대한 데이터가 확보되어야지 다양한 케이스에 대해서 훈련할 수 있기 때문에 데이터 증식이 필요하다.
- rescale=1./255 ⇒ 이미지들은 한 픽셀 당 0~255 값을 가지게 되는데, 이 픽셀들을 정규화시켜주려면 /255를 하면 0~255 값을 정렬된다.
- horizontal_flip ⇒ 좌우반전
- vertical.flip ⇒ 수평 수직
- fill_mode='nearset' ⇒ 데이터 이동이나 회전했을 때 비는 공간을 가까이 있는 색으로 채운다.
4. 이미지 크기 정렬과 검증용 추가
- train : 훈련용 / valid : 검증용 / test : 테스트용
- path에는 주소만 나와있는데 실제 주소를 알려주고 이미지를 불러와서 그 이미지의 가로, 세로 동일한 사이즈로 맞춰주는 작업을 한다.
- 훈련, 검증, 테스트 3가지를 다 해야 한다.
- batch_size : 한 번에 데이터를 다 올려서 학습하는 게 아니라 단위로 올리기 때문에 batch_size를 16 정도로 해준다
- 3개 중에 test는 y_col이 없기 때문에 지우고 대신에 class_mode=None으로 해주고 shuffle=False를 해준다.
- train_generator = train_datagen.flow_from_dataframe(x_train, x_col='path', y_col='label', batch_size=16, target_size=(300, 300)) ⇒ 이미지 generator 했던 것을 기반으로 flow_from_dataframe으로 해서 x_train의 x변수는 path로 주고, y변수는 label로 설정하고 batch_size(학습할 단위)는 16이라고 하고 target_size(이미지의 가로세로 크기)는 300X300으로 설정해서 train_generator에다가 넣는다.
- valid는 train과 똑같이 하고 변수 이름만 valid_generator로 변경
- test_generator = train_datagen.flow_from_dataframe(test, x_col='path', class_mode=None, shuffle=False, batch_size=16, target_size=(300, 300)) ⇒ test는 이렇게 해준다.
'🖊️Data Analysis > 📌 DL)개와 고양이 이미지 분석' 카테고리의 다른 글
[Python] 개와 고양이 이미지 분석 (0) | 2021.07.12 |
---|
댓글