기계학습 특강 (1주차) 9월7일
우리의 1차 목표:이미지 -> 개/고양이 판단하는 모형을 채용하고, 그 모형에 데이터를 넣어서 학습하고, 그 모형의 결과를 판단하고 싶다. (즉 클래시파이어를 만든다는 소리)
우리의 2차 목표:그 모형에 "새로운" 자료를 전달하여 이미지를 분류할 것이다. (즉 클래시파이어를 쓴다는 소리)
from fastai.vision.all import *
URLs.PETS
path = untar_data(URLs.PETS)/'images'
path
PILImage.create('/home/csy/.fastai/data/oxford-iiit-pet/images/Abyssinian_1.jpg')
_lst = ['/home/csy/.fastai/data/oxford-iiit-pet/images/Abyssinian_1.jpg','/home/csy/.fastai/data/oxford-iiit-pet/images/Abyssinian_10.jpg']
_lst
_lst[0]
PILImage.create(_lst[1])
filenames = get_image_files(path)
filenames
filenames[0]
print(filenames[0])
PILImage.create(filenames[0])
print(filenames[1])
PILImage.create(filenames[1])
print(filenames[2])
PILImage.create(filenames[2])
print(filenames[3])
PILImage.create(filenames[3])
print(filenames[4])
PILImage.create(filenames[4])
print(filenames[5])
PILImage.create(filenames[5])
print(filenames[6])
PILImage.create(filenames[6])
print(filenames[7])
PILImage.create(filenames[7])
print(filenames[8])
PILImage.create(filenames[8])
print(filenames[9])
PILImage.create(filenames[9])
print(filenames[20])
PILImage.create(filenames[20])
vector로 되어 있는 tensor
'A'.isupper()
def f(fname):
if fname[0].isupper():
return 'cat'
else:
return 'dog'
f('dddd')
filenames[0]
ImageDataLoaders.from_name_func??
dls는 object
- 동사
- 명사(method)
size가 다르기 때문에 dls 적용이 되지 않아 resize로 조정을 해주었다.
path
dls = ImageDataLoaders.from_name_func(path,filenames,f,item_tfms=Resize(224))
#dls
dls.show_batch(max_n=16)
ysj = cnn_learner(dls,resnet34,metrics=error_rate)
ysj.fine_tune(1)
filenames[0]
ysj.predict(PILImage.create(filenames[0]))
ysj.predict(filenames[0])
filenames[1]
ysj.predict(filenames[1])
ysj.show_results()
checker = Interpretation.from_learner(ysj)
checker.plot_top_losses(k=16)
PILImage.create('2022-01-13-cat.jpg')
ysj.predict(PILImage.create('2022-01-13-cat.jpg'))
PILImage.create(requests.get('https://dimg.donga.com/ugc/CDB/SHINDONGA/Article/5e/0d/9f/01/5e0d9f011a9ad2738de6.jpg').content)
img=PILImage.create(requests.get('https://dimg.donga.com/ugc/CDB/SHINDONGA/Article/5e/0d/9f/01/5e0d9f011a9ad2738de6.jpg').content)
ysj.predict(img)
img=PILImage.create(requests.get('https://github.com/guebin/STML2022/blob/master/_notebooks/2022-09-06-cat1.png?raw=true').content)
ysj.predict(img)
img=PILImage.create(requests.get('https://github.com/guebin/STML2022/blob/master/_notebooks/2022-09-06-cat2.jpeg?raw=true').content)
ysj.predict(img)
img=PILImage.create(requests.get('https://github.com/guebin/STML2022/blob/master/_notebooks/2022-09-06-hani01.jpeg?raw=true').content)
ysj.predict(img)
img=PILImage.create(requests.get('https://github.com/guebin/STML2022/blob/master/_notebooks/2022-09-06-hani02.jpeg?raw=true').content)
ysj.predict(img)
img=PILImage.create(requests.get('https://github.com/guebin/STML2022/blob/master/_notebooks/2022-09-06-hani03.jpg?raw=true').content)
ysj.predict(img)
PILImage.create('2022-09-07-dogs.jpeg')
ysj.predict(PILImage.create('2022-09-07-dogs.jpeg'))
img2=PILImage.create('2022-09-07-dogs.jpeg')
ysj.predict(img2)
PILImage.create(requests.get('https://media.npr.org/assets/img/2021/08/11/gettyimages-1279899488_wide-f3860ceb0ef19643c335cb34df3fa1de166e2761-s900-c85.webp').content)
img=PILImage.create(requests.get('https://media.npr.org/assets/img/2021/08/11/gettyimages-1279899488_wide-f3860ceb0ef19643c335cb34df3fa1de166e2761-s900-c85.webp').content)
ysj.predict(img)