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를 사용하여 배우는 방법
'이제는 사용하지 않는 공부방 > Artificial intelligence' 카테고리의 다른 글
fastai vision tutorial/ Points (1) | 2021.01.16 |
---|---|
fastai vision tutorial/segmentation (1) | 2021.01.15 |
fastai vision tutorial/single-label with the data block API (0) | 2021.01.15 |
fastai vision tutorial/classifying breeds (0) | 2021.01.14 |
fastai vision tutorial/single label classification (0) | 2021.01.14 |