File size: 1,936 Bytes
c56fecd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import sys
import zipfile
from fastai import *
import numpy as np
import pandas as pd 
import os
import timm
from timm import create_model 
from fastai.vision.all import *

torch.device('cpu')
def seed_everything(seed):
    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.backends.cudnn.deterministic = True
seed_everything(42)

test = {
    'Id': ['2022-12-21 00.49.46.jpg', '2022-12-21 00.49.46.jpg'],
    'Eyes': [0.3, 0.2],
}
train_df = pd.DataFrame(test)
print(train_df)
dls = DataBlock(blocks=(ImageBlock, CategoryBlock),
                get_x=ColReader('Id'),
                get_y=ColReader('Eyes'),
                splitter=RandomSplitter(0.2),
                item_tfms=Resize(224),
                batch_tfms=setup_aug_tfms([Brightness(), Contrast(), Hue(), Saturation(), Flip(size=224)]),
               )
paw_dls = dls.dataloaders(train_df, batch_size=8, seed=12, device='cpu')
test = paw_dls.test_dl(train_df)
learn = cnn_learner(paw_dls, models.resnet50, pretrained=False, metrics=error_rate) 
learn.to('cpu')
catanddog = learn.load('../dog')
image = 'photo-1529778873920-4da4926a72c2.jpeg'
pred = catanddog.predict(image)[1]
print(pred)
def metric_rmse(input,target):
    return 100*torch.sqrt(F.mse_loss(F.sigmoid(input.flatten()), target))
model = create_model('swin_large_patch4_window7_224', pretrained=False, num_classes=1)
learn = Learner(paw_dls, model, loss_func = BCEWithLogitsLossFlat(),  metrics=metric_rmse)
# learner = learner.load(f'/kaggle/input/puredog/pure-dog-{fold}')
if pred == 0:
    learn.load('../archive-3/pure-dog-1')
    pred = learn.predict(image)
    print("Score for this doggy:", int(pred[2] * 100))
if pred == 1:
    for i in range(10):
        learn.load(f'../archive-2/pure-cat-{i}')
        pred = learn.predict(image)
        print(pred)
    print("Score for this catto:", min(int(pred[2] * 100 + 35), 100))