Pascal Dataset 라는 데이터셋을 이용하여 한 이미지 안에 다양한 객체를 분류하는 작업을 해보자.

 

1. path = untar_data(URLs.PASCAL_2007)

path.ls()

 

2. df = pd.read_csv(path/'train.csv')

df.head()

 

train.csv 파일에 있는 모든 이미지의 label을 판다스를 이용하여 load한다.

그러면 파일이름, label, validation set 순서로 표현하는 dataframe을 만들 수 있다.

 

3- 1. 우리가 얻은 dataframe을 빠르게 DataLoaders에서 사용하는 방법

dls = ImageDataLoaders.from_df(df, path, folder='train', valid_col='is_valid',

label_delim=' ',

item_tfms=Resize(460),

batch_tfms=aug_transforms(size=224))

 

from_df 메소드 사용하기

path = 이미지가 있는 폴더 경로

valid_col = validations set을 지정해주는 역할

label_delim = 라벨을 구분해준다.

 

4.dls.show_batch()

 

5.learn = cnn_learner(dls, resnet50, metrics = partial(accuracy_multi, thresh = 0.5) )

multi label 문제라는 것을 fasai library가 탐지하여 맞는 loss function을 골라준다.

 

error_rate는 multi-label 문제에서 쓰이지 않는다.

accuracy_thresh가 multi-label 문제에서 쓰인다.

 

6.learn.lr_find()

 

7.learn.fine_tune(2,3e-2)

 

8.learn.show_results()

 

9.learn.predict(path/'train/000005.jpg')

10.interp = interpretation.from_learner(learn)

interp.plot_top_losses(9)

모델이 잘못한 걸 확인하는 부분

 

 

 

3-2. 앞서 배운 데이터블락 API를 사용하여 배우는 방법

+ Recent posts