lesson1-breeds

Dogs breeds

本实例我是在jupter上运行的
使用的是fastai

%reload_ext autoreload
%autoreload 2
%matplotlib inline
from fastai.imports import *
from fastai.torch_imports import *
from fastai.transforms import *
from fastai.conv_learner import *
from fastai.model import *
from fastai.dataset import *
from fastai.sgdr import *
from fastai.plots import *
#torch.cuda.set_device(0)
#这是在jupter的根目录下
PATH = "databreed/"
sz = 224
arch = resnext101_64
bs = 58
label_csv = f'{PATH}labels1.csv'
n = len(list(open(label_csv))) - 1 # header is not counted (-1)
val_idxs = get_cv_idxs(n) # random 20% data for validation set
n
10
len(val_idxs)
2
# If you haven't downloaded weights.tgz yet, download the file.
#     http://forums.fast.ai/t/error-when-trying-to-use-resnext50/7555
#     http://forums.fast.ai/t/lesson-2-in-class-discussion/7452/222
#!wget -O fastai/weights.tgz http://files.fast.ai/models/weights.tgz

#!tar xvfz fastai/weights.tgz -C fastai

Initial exploration

!ls {PATH}
labels1.csv  test
label_df = pd.read_csv(label_csv)
label_df.head()
idbreed
0000bec180eb18c7604dcecc8fe0dba07boston_bull
1001513dfcb2ffafc82cccf4d8bbaba97dingo
2001cdf01b096e06d78e9e5112d419397pekinese
300214f311d5d2247d5dfe4fe24b2303dbluetick
40021f9ceb3235effd7fcde7f7538ed62golden_retriever
label_df.pivot_table(index="breed", aggfunc=len).sort_values('id', ascending=False)
id
breed
basenji1
bedlington_terrier1
bluetick1
borzoi1
boston_bull1
dingo1
golden_retriever1
pekinese1
scottish_deerhound1
shetland_sheepdog1
tfms = tfms_from_model(arch, sz, aug_tfms=transforms_side_on, max_zoom=1.1)
data = ImageClassifierData.from_csv(PATH, 'train', f'{PATH}labels1.csv', test_name='test', # we need to specify where the test set is if you want to submit to Kaggle competitions
                                   val_idxs=val_idxs, suffix='.jpg', tfms=tfms, bs=bs)
fn = PATH + data.trn_ds.fnames[0]; fn
'databreed/train/000bec180eb18c7604dcecc8fe0dba07.jpg'
img = PIL.Image.open(fn); img

png

img.size
(500, 375)
size_d = {k: PIL.Image.open(PATH + k).size for k in data.trn_ds.fnames}
row_sz, col_sz = list(zip(*size_d.values()))
row_sz = np.array(row_sz); col_sz = np.array(col_sz)
row_sz[:5]
array([500, 500, 400, 500, 500])
plt.hist(row_sz);

png

plt.hist(row_sz[row_sz < 1000])
(array([1., 0., 0., 0., 0., 1., 1., 0., 0., 5.]),
 array([231. , 257.9, 284.8, 311.7, 338.6, 365.5, 392.4, 419.3, 446.2, 473.1, 500. ]),
 <a list of 10 Patch objects>)

png

plt.hist(col_sz);

png

plt.hist(col_sz[col_sz < 1000])
(array([1., 0., 0., 0., 1., 3., 0., 0., 0., 3.]),
 array([227. , 254.3, 281.6, 308.9, 336.2, 363.5, 390.8, 418.1, 445.4, 472.7, 500. ]),
 <a list of 10 Patch objects>)

png

len(data.trn_ds), len(data.test_ds)
(8, 4)
len(data.classes), data.classes[:5]
(10, ['basenji', 'bedlington_terrier', 'bluetick', 'borzoi', 'boston_bull'])

Initial model

def get_data(sz, bs): # sz: image size, bs: batch size
    tfms = tfms_from_model(arch, sz, aug_tfms=transforms_side_on, max_zoom=1.1)
    data = ImageClassifierData.from_csv(PATH, 'train', f'{PATH}labels1.csv', test_name='test',
                                       val_idxs=val_idxs, suffix='.jpg', tfms=tfms, bs=bs)
    
    # http://forums.fast.ai/t/how-to-train-on-the-full-dataset-using-imageclassifierdata-from-csv/7761/13
    # http://forums.fast.ai/t/how-to-train-on-the-full-dataset-using-imageclassifierdata-from-csv/7761/37
    return data if sz > 300 else data.resize(340, 'tmp') # Reading the jpgs and resizing is slow for big images, so resizing them all to 340 first saves time

#Source:   
#    def resize(self, targ, new_path):
#        new_ds = []
#        dls = [self.trn_dl,self.val_dl,self.fix_dl,self.aug_dl]
#        if self.test_dl: dls += [self.test_dl, self.test_aug_dl]
#        else: dls += [None,None]
#        t = tqdm_notebook(dls)
#        for dl in t: new_ds.append(self.resized(dl, targ, new_path))
#        t.close()
#        return self.__class__(new_ds[0].path, new_ds, self.bs, self.num_workers, self.classes)
#File:      ~/fastai/courses/dl1/fastai/dataset.py

Precompute

data = get_data(sz, bs)
learn = ConvLearner.pretrained(arch, data, precompute=True)
learn.fit(1e-2, 5)

Augment

from sklearn import metrics
data = get_data(sz, bs)
learn = ConvLearner.pretrained(arch, data, precompute=True, ps=0.5)
learn.fit(1e-2, 2)
learn.precompute = False
learn.fit(1e-2, 5, cycle_len=1)
learn.save('224_pre')
learn.load('224_pre')

Increase size

# Starting training on small images for a few epochs, then switching to bigger images, and continuing training is an amazingly effective way to avoid overfitting.

# http://forums.fast.ai/t/planet-classification-challenge/7824/96
# set_data doesn’t change the model at all. It just gives it new data to train with.
learn.set_data(get_data(299, bs)) 
learn.freeze()

#Source:   
#    def set_data(self, data, precompute=False):
#        super().set_data(data)
#        if precompute:
#            self.unfreeze()
#            self.save_fc1()
#            self.freeze()
#            self.precompute = True
#        else:
#            self.freeze()
#File:      ~/fastai/courses/dl1/fastai/conv_learner.py
HBox(children=(IntProgress(value=0, max=6), HTML(value='')))
learn.summary()
OrderedDict([('Conv2d-1',
              OrderedDict([('input_shape', [-1, 3, 224, 224]),
                           ('output_shape', [-1, 64, 112, 112]),
                           ('trainable', False),
                           ('nb_params', 9408)])),
             ('BatchNorm2d-2',
              OrderedDict([('input_shape', [-1, 64, 112, 112]),
                           ('output_shape', [-1, 64, 112, 112]),
                           ('trainable', False),
                           ('nb_params', 128)])),
             ('ReLU-3',
              OrderedDict([('input_shape', [-1, 64, 112, 112]),
                           ('output_shape', [-1, 64, 112, 112]),
                           ('nb_params', 0)])),
             ('MaxPool2d-4',
              OrderedDict([('input_shape', [-1, 64, 112, 112]),
                           ('output_shape', [-1, 64, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-5',
              OrderedDict([('input_shape', [-1, 64, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 16384)])),
             ('BatchNorm2d-6',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-7',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-8',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 9216)])),
             ('BatchNorm2d-9',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-10',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-11',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 65536)])),
             ('BatchNorm2d-12',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('Conv2d-13',
              OrderedDict([('input_shape', [-1, 64, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 16384)])),
             ('BatchNorm2d-14',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-15',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-16',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 65536)])),
             ('BatchNorm2d-17',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-18',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-19',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 9216)])),
             ('BatchNorm2d-20',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-21',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-22',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 65536)])),
             ('BatchNorm2d-23',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-24',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-25',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 65536)])),
             ('BatchNorm2d-26',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-27',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-28',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 9216)])),
             ('BatchNorm2d-29',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-30',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-31',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 65536)])),
             ('BatchNorm2d-32',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 512)])),
             ('ReLU-33',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 256, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-34',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 512, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 131072)])),
             ('BatchNorm2d-35',
              OrderedDict([('input_shape', [-1, 512, 56, 56]),
                           ('output_shape', [-1, 512, 56, 56]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-36',
              OrderedDict([('input_shape', [-1, 512, 56, 56]),
                           ('output_shape', [-1, 512, 56, 56]),
                           ('nb_params', 0)])),
             ('Conv2d-37',
              OrderedDict([('input_shape', [-1, 512, 56, 56]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 36864)])),
             ('BatchNorm2d-38',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-39',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-40',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-41',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('Conv2d-42',
              OrderedDict([('input_shape', [-1, 256, 56, 56]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 131072)])),
             ('BatchNorm2d-43',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-44',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-45',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-46',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-47',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-48',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 36864)])),
             ('BatchNorm2d-49',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-50',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-51',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-52',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-53',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-54',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-55',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-56',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-57',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 36864)])),
             ('BatchNorm2d-58',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-59',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-60',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-61',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-62',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-63',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-64',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-65',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-66',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 36864)])),
             ('BatchNorm2d-67',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-68',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-69',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 262144)])),
             ('BatchNorm2d-70',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 1024)])),
             ('ReLU-71',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 512, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-72',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 1024, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 524288)])),
             ('BatchNorm2d-73',
              OrderedDict([('input_shape', [-1, 1024, 28, 28]),
                           ('output_shape', [-1, 1024, 28, 28]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-74',
              OrderedDict([('input_shape', [-1, 1024, 28, 28]),
                           ('output_shape', [-1, 1024, 28, 28]),
                           ('nb_params', 0)])),
             ('Conv2d-75',
              OrderedDict([('input_shape', [-1, 1024, 28, 28]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-76',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-77',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-78',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-79',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('Conv2d-80',
              OrderedDict([('input_shape', [-1, 512, 28, 28]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 524288)])),
             ('BatchNorm2d-81',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-82',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-83',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-84',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-85',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-86',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-87',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-88',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-89',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-90',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-91',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-92',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-93',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-94',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-95',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-96',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-97',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-98',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-99',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-100',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-101',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-102',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-103',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-104',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-105',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-106',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-107',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-108',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-109',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-110',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-111',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-112',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-113',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-114',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-115',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-116',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-117',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-118',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-119',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-120',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-121',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-122',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-123',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-124',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-125',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-126',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-127',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-128',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-129',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-130',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-131',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-132',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-133',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-134',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-135',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-136',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-137',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-138',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-139',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-140',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-141',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-142',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-143',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-144',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-145',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-146',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-147',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-148',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-149',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-150',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-151',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-152',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-153',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-154',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-155',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-156',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-157',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-158',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-159',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-160',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-161',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-162',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-163',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-164',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-165',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-166',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-167',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-168',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-169',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-170',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-171',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-172',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-173',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-174',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-175',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-176',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-177',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-178',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-179',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-180',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-181',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-182',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-183',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-184',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-185',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-186',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-187',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-188',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-189',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-190',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-191',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-192',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-193',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-194',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-195',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-196',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-197',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-198',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-199',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-200',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-201',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-202',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-203',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-204',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-205',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-206',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-207',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-208',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-209',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-210',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-211',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-212',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-213',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-214',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-215',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-216',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-217',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-218',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-219',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-220',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-221',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-222',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-223',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-224',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-225',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-226',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-227',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-228',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-229',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-230',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-231',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-232',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-233',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-234',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-235',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-236',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-237',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-238',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-239',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-240',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-241',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-242',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-243',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-244',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-245',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-246',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-247',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-248',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-249',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-250',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-251',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-252',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-253',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-254',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-255',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-256',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-257',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-258',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-259',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-260',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-261',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-262',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-263',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-264',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-265',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-266',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-267',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-268',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-269',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-270',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-271',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-272',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-273',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-274',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-275',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 147456)])),
             ('BatchNorm2d-276',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-277',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-278',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 1048576)])),
             ('BatchNorm2d-279',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2048)])),
             ('ReLU-280',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 1024, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-281',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 2048, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 2097152)])),
             ('BatchNorm2d-282',
              OrderedDict([('input_shape', [-1, 2048, 14, 14]),
                           ('output_shape', [-1, 2048, 14, 14]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-283',
              OrderedDict([('input_shape', [-1, 2048, 14, 14]),
                           ('output_shape', [-1, 2048, 14, 14]),
                           ('nb_params', 0)])),
             ('Conv2d-284',
              OrderedDict([('input_shape', [-1, 2048, 14, 14]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 589824)])),
             ('BatchNorm2d-285',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-286',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-287',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4194304)])),
             ('BatchNorm2d-288',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('Conv2d-289',
              OrderedDict([('input_shape', [-1, 1024, 14, 14]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 2097152)])),
             ('BatchNorm2d-290',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-291',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-292',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4194304)])),
             ('BatchNorm2d-293',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-294',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-295',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 589824)])),
             ('BatchNorm2d-296',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-297',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-298',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4194304)])),
             ('BatchNorm2d-299',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-300',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-301',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4194304)])),
             ('BatchNorm2d-302',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-303',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-304',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 589824)])),
             ('BatchNorm2d-305',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-306',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('Conv2d-307',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4194304)])),
             ('BatchNorm2d-308',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('trainable', False),
                           ('nb_params', 4096)])),
             ('ReLU-309',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 7, 7]),
                           ('nb_params', 0)])),
             ('AdaptiveMaxPool2d-310',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 1, 1]),
                           ('nb_params', 0)])),
             ('AdaptiveAvgPool2d-311',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 2048, 1, 1]),
                           ('nb_params', 0)])),
             ('AdaptiveConcatPool2d-312',
              OrderedDict([('input_shape', [-1, 2048, 7, 7]),
                           ('output_shape', [-1, 4096, 1, 1]),
                           ('nb_params', 0)])),
             ('Flatten-313',
              OrderedDict([('input_shape', [-1, 4096, 1, 1]),
                           ('output_shape', [-1, 4096]),
                           ('nb_params', 0)])),
             ('BatchNorm1d-314',
              OrderedDict([('input_shape', [-1, 4096]),
                           ('output_shape', [-1, 4096]),
                           ('trainable', True),
                           ('nb_params', 8192)])),
             ('Dropout-315',
              OrderedDict([('input_shape', [-1, 4096]),
                           ('output_shape', [-1, 4096]),
                           ('nb_params', 0)])),
             ('Linear-316',
              OrderedDict([('input_shape', [-1, 4096]),
                           ('output_shape', [-1, 512]),
                           ('trainable', True),
                           ('nb_params', 2097664)])),
             ('ReLU-317',
              OrderedDict([('input_shape', [-1, 512]),
                           ('output_shape', [-1, 512]),
                           ('nb_params', 0)])),
             ('BatchNorm1d-318',
              OrderedDict([('input_shape', [-1, 512]),
                           ('output_shape', [-1, 512]),
                           ('trainable', True),
                           ('nb_params', 1024)])),
             ('Dropout-319',
              OrderedDict([('input_shape', [-1, 512]),
                           ('output_shape', [-1, 512]),
                           ('nb_params', 0)])),
             ('Linear-320',
              OrderedDict([('input_shape', [-1, 512]),
                           ('output_shape', [-1, 120]),
                           ('trainable', True),
                           ('nb_params', 61560)])),
             ('LogSoftmax-321',
              OrderedDict([('input_shape', [-1, 120]),
                           ('output_shape', [-1, 120]),
                           ('nb_params', 0)]))])
learn.fit(1e-2, 3, cycle_len=1)
HBox(children=(IntProgress(value=0, description='Epoch', max=3), HTML(value='')))


epoch      trn_loss   val_loss   accuracy                    
    0      0.303971   0.242417   0.921722  
    1      0.309993   0.239827   0.91683                     
    2      0.288534   0.23499    0.919276                    






[array([0.23499]), 0.9192759310662629]

Validation loss is much lower than training loss. This is a sign of underfitting. Cycle_len=1 may be too short. Let’s set cycle_mult=2 to find better parameter.

# When you are under fitting, it means cycle_len=1 is too short (learning rate is getting reset before it had the chance to zoom in properly).
learn.fit(1e-2, 3, cycle_len=1, cycle_mult=2) # 1+2+4 = 7 epochs
HBox(children=(IntProgress(value=0, description='Epoch', max=7), HTML(value='')))


epoch      trn_loss   val_loss   accuracy                    
    0      0.267461   0.235228   0.924168  
    1      0.270705   0.230974   0.922211                    
    2      0.240056   0.230974   0.923679                    
    3      0.238908   0.232905   0.926125                    
    4      0.223686   0.229831   0.923679                    
    5      0.212009   0.227405   0.924168                    
    6      0.199683   0.227282   0.926125                    






[array([0.22728]), 0.9261252481176895]

Training loss and validation loss are getting closer and smaller. We are on right track.

log_preds, y = learn.TTA() # (5, 2044, 120), (2044,)
probs = np.mean(np.exp(log_preds),0)
accuracy_np(probs, y), metrics.log_loss(y, probs)
(0.9315068493150684, 0.22650256548463946)
len(data.val_ds.y), data.val_ds.y[:5]
(2044, array([19, 15,  7, 99, 73]))
learn.save('299_pre')
learn.load('299_pre')
learn.fit(1e-2, 1, cycle_len=2) # 1+1 = 2 epochs
HBox(children=(IntProgress(value=0, description='Epoch', max=2), HTML(value='')))


epoch      trn_loss   val_loss   accuracy                    
    0      0.215887   0.227493   0.926614  
    1      0.21398    0.224618   0.926614                    






[array([0.22462]), 0.9266144826337549]
learn.save('299_pre')
log_preds, y = learn.TTA()
probs = np.mean(np.exp(log_preds),0)
accuracy_np(probs, y), metrics.log_loss(y, probs)
(0.9334637964774951, 0.22243022015961378)

This dataset is so similar to ImageNet dataset. Training convolution layers doesn’t help much. We are not going to unfreeze.

Create submission

https://youtu.be/9C06ZPF8Uuc?t=1905

data.classes
['affenpinscher',
 'afghan_hound',
 'african_hunting_dog',
 'airedale',
 'american_staffordshire_terrier',
 'appenzeller',
 'australian_terrier',
 'basenji',
 'basset',
 'beagle',
 'bedlington_terrier',
 'bernese_mountain_dog',
 'black-and-tan_coonhound',
 'blenheim_spaniel',
 'bloodhound',
 'bluetick',
 'border_collie',
 'border_terrier',
 'borzoi',
 'boston_bull',
 'bouvier_des_flandres',
 'boxer',
 'brabancon_griffon',
 'briard',
 'brittany_spaniel',
 'bull_mastiff',
 'cairn',
 'cardigan',
 'chesapeake_bay_retriever',
 'chihuahua',
 'chow',
 'clumber',
 'cocker_spaniel',
 'collie',
 'curly-coated_retriever',
 'dandie_dinmont',
 'dhole',
 'dingo',
 'doberman',
 'english_foxhound',
 'english_setter',
 'english_springer',
 'entlebucher',
 'eskimo_dog',
 'flat-coated_retriever',
 'french_bulldog',
 'german_shepherd',
 'german_short-haired_pointer',
 'giant_schnauzer',
 'golden_retriever',
 'gordon_setter',
 'great_dane',
 'great_pyrenees',
 'greater_swiss_mountain_dog',
 'groenendael',
 'ibizan_hound',
 'irish_setter',
 'irish_terrier',
 'irish_water_spaniel',
 'irish_wolfhound',
 'italian_greyhound',
 'japanese_spaniel',
 'keeshond',
 'kelpie',
 'kerry_blue_terrier',
 'komondor',
 'kuvasz',
 'labrador_retriever',
 'lakeland_terrier',
 'leonberg',
 'lhasa',
 'malamute',
 'malinois',
 'maltese_dog',
 'mexican_hairless',
 'miniature_pinscher',
 'miniature_poodle',
 'miniature_schnauzer',
 'newfoundland',
 'norfolk_terrier',
 'norwegian_elkhound',
 'norwich_terrier',
 'old_english_sheepdog',
 'otterhound',
 'papillon',
 'pekinese',
 'pembroke',
 'pomeranian',
 'pug',
 'redbone',
 'rhodesian_ridgeback',
 'rottweiler',
 'saint_bernard',
 'saluki',
 'samoyed',
 'schipperke',
 'scotch_terrier',
 'scottish_deerhound',
 'sealyham_terrier',
 'shetland_sheepdog',
 'shih-tzu',
 'siberian_husky',
 'silky_terrier',
 'soft-coated_wheaten_terrier',
 'staffordshire_bullterrier',
 'standard_poodle',
 'standard_schnauzer',
 'sussex_spaniel',
 'tibetan_mastiff',
 'tibetan_terrier',
 'toy_poodle',
 'toy_terrier',
 'vizsla',
 'walker_hound',
 'weimaraner',
 'welsh_springer_spaniel',
 'west_highland_white_terrier',
 'whippet',
 'wire-haired_fox_terrier',
 'yorkshire_terrier']
data.test_ds.fnames
['test/ab2520c527e61f197be228208af48191.jpg',
 'test/8ffc8a83bb9ac7884a9420c97b23940c.jpg',
 'test/9f4bbcd8a5b189514d3098516983621a.jpg',
 'test/f77793be1597dd1ea50b22532b38bd23.jpg',
 'test/f719b425410b6eb3e3132702150affd6.jpg',
 'test/adfe7237864e2c4e28a0627f97527fa2.jpg',
 'test/7fec33e194124a985167075c40af7702.jpg',
 'test/2ee0a2da17019b2c95f5283c15a692ff.jpg',
 'test/c6d49ce66e3fdae87e2be8ad8fd402b8.jpg',
 'test/b6d38beff7efbd38934e383eecf063be.jpg',
 'test/0829420985a1d5b647b969d44af3e844.jpg',
 'test/07ad25df7e380e29aa4a5788a96cef73.jpg',
 'test/ab3242753d5b6a79985112a3cd63908a.jpg',
 'test/e9b105a5b7873f33477f777d5a9447f8.jpg',
 'test/d0d7f99b88dab4f9fc97be9af2cffde2.jpg',
 'test/59f8e54314ff4f560d615af6476c69cd.jpg',
 'test/af01e814dd0a625042c1abda80671bf1.jpg',
 'test/05fba1b035d12542ad00a38461b10c17.jpg',
 'test/a4116ec18c342040855024b6940a234b.jpg',
 'test/0bb63e30692f00bc7bf0ab5ac787b162.jpg',
 'test/e2f853c8345758faf5d9b2075f196fd3.jpg',
 'test/e66e1f3be08028cc17ea788657e014fa.jpg',
 'test/f1b2c118e65c95ba1a00d102787d19a6.jpg',
 'test/da23c55978faa8bd88db953c1f264549.jpg',
 'test/0e826c710afd789f8db9ff522a7a04c0.jpg',
 'test/1ba6e093c8af25d01a3602382312c339.jpg',
 'test/1c647b0875674bd1aba3153e6fc951c6.jpg',
 'test/1acbf4637bcce746291d39e8147efaa3.jpg',
 'test/9d876a62e20c672a72f8212c022f55d1.jpg',
 'test/f6244044c1433c7067e3129486612ee1.jpg',
 'test/cb8323065d4827069d53e0ffba2f0c84.jpg',
 'test/d8a6e8ffcba849cedc4c186eef224c65.jpg',
 'test/8594ae6003221de99ffbc5d9fa357e34.jpg',
 'test/e9615e7f30ffcf6d705ce9cbcb6d688c.jpg',
 'test/3728d6b1b7c0ebd9e4722ae7e709ec45.jpg',
 'test/b3346fab09a796c121e0dffe84268e73.jpg',
 'test/7478402a790ae8a04b5f3c4e2768c4cf.jpg',
 'test/c5e43e81eb8a4fd5a455898b9a858d18.jpg',
 'test/b3bcc2a3a94c70497779eadaef668d3c.jpg',
 'test/0328ce0d5f48e3dbaef86e830e2e9241.jpg',
 'test/6ae186b904e3cc8528591a3e50a48f20.jpg',
 'test/a8aa29593077a6407c7834eb6fef3c7c.jpg',
 'test/2269b48ab82d6b6feeb462c5f867819d.jpg',
 'test/f90ac8934d1349d115a4961c20ee447b.jpg',
 'test/7b37af62f102cef63ee44361b2a4bb2d.jpg',
 'test/d14bc7e00b69187953e6ac38209ab19d.jpg',
 'test/551ce3484383dc77bd5cb563a50bad46.jpg',
 'test/42feb15909b1a7da5d85bc1a2baafe47.jpg',
 'test/8646d62c1e40c6a1806b472508200b89.jpg',
 'test/c81cfe1f3434bb984f43cfb74600ecff.jpg',
 'test/2f90d005ca7d718be9377b94091849ba.jpg',
 'test/34a6fa4ebc327fc03164793636b1bfbe.jpg',
 'test/29e85e7dd33b3d55c72ff8cf8878a3fb.jpg',
 'test/5fedefbcfd02cc6570cc2a4dbc0c0c13.jpg',
 'test/a309c2637a49acc6accfda9eb230803f.jpg',
 'test/7937d9e90e6960aaccd74675d26d90a7.jpg',
 'test/2162f28a3151f4ca907a8a9d79492618.jpg',
 'test/291956adf955ac9e9776a8fe0db8745b.jpg',
 'test/b52c5200163243ef1aec04f34a68050d.jpg',
 'test/4d2c5271ca71c95234b78bc0910f3d04.jpg',
 'test/657459acdc17b85c06af605c1ab723ca.jpg',
 'test/025156133d8d8700f6c7027371b1b8e0.jpg',
 'test/29548de9a7435fccdcf228afe5fd221f.jpg',
 'test/5e193ae2c366405e230a53daa4fb7721.jpg',
 'test/b44cbb609e863c0aa906322507df3e3c.jpg',
 'test/21174614214935ba20a7be058b29033e.jpg',
 'test/d21a8021f66adc2ea042290d5e1d97ca.jpg',
 'test/eeffe08e577ad8dda81bbfe12bf8faea.jpg',
 'test/a97fbce11cf35df434835888150ceae6.jpg',
 'test/9bc5701373a8e4cb3d64d75322a19f9b.jpg',
 'test/8e38a2da3dc51eedac2153c37b9b2ad6.jpg',
 'test/0e8d997db26798c7c1612847319973e5.jpg',
 'test/8eb4d197b67a2ee9670ab5576d568328.jpg',
 'test/69e231ddd06ed66f4517f695908c7e6e.jpg',
 'test/d049461a887cfddf49953b3e56d89b9e.jpg',
 'test/3740097cc690e3a0ef05e078cc6a37c5.jpg',
 'test/3b2642968aa7fd5883577aca00ad1458.jpg',
 'test/aaae20eed76f8015d6994955bc30076c.jpg',
 'test/72470246b6d48c951cbc8c853c5a6bba.jpg',
 'test/42c10d2fdabe41a8d0f3120025737fab.jpg',
 'test/2f7b43f07134ad69bf36ada8d90939ef.jpg',
 'test/3a6122ad0c4f104d1d36b3cf644896da.jpg',
 'test/db3b5c710e99f6a5d09b8fda8eeff5a7.jpg',
 'test/1b220f74609a8f2015ea898471c0674d.jpg',
 'test/bac5e3f6454352aec23245bff7a10612.jpg',
 'test/d7cbc532e819d760ab9e418654cef03f.jpg',
 'test/3ee1025997b782f6eb2ddd20cd0965c1.jpg',
 'test/322543f668826f158650c94714a832db.jpg',
 'test/b9005a0f449a339ff21a3bfc0068cf45.jpg',
 'test/87e316f956ffcd34bda2dc49d84a9739.jpg',
 'test/ef1710d5cb79a5e0b46f7b9a101a25b4.jpg',
 'test/0d5b801bfeff4eefb3994b8fc59bc2ff.jpg',
 'test/eab189c5274b79b36dd566fea4e9847e.jpg',
 'test/ed67681e7935d75f9ce011dbf8474fe4.jpg',
 'test/7b3a9c2f5f01acd4846bdc65f4190ece.jpg',
 'test/2e87338a89f13b429485cedf8ee89206.jpg',
 'test/6f5b716569f463d9a0519f3d8ce0d33b.jpg',
 'test/8341f50a86c819b3cb8828740a97e7ef.jpg',
 'test/940d587d69cafcbc7bdd88ecc5c82829.jpg',
 'test/c2c9364fa0fb2347fef08f172bcfecd8.jpg',
 'test/3a98899438c614970758846618857045.jpg',
 'test/87f26de902396e2db022e604ae91f15e.jpg',
 'test/ddd7f84a932ec7213b9c1f6de8c09262.jpg',
 'test/2a83319c4aacda676534a6b77b2ceb20.jpg',
 'test/2f1b46804087ade2b6c210125f34323f.jpg',
 'test/de327414ced20d4e6f786a68bff82e10.jpg',
 'test/2753689addaba82e4a90e51dd832d11c.jpg',
 'test/978860f8b3fc9f0af9041d1285179206.jpg',
 'test/87e67ad3d0620a61ea7cc95a3e17f123.jpg',
 'test/5c451b205045be2ba89e5308e0ab505c.jpg',
 'test/1b176552396034ed1c864c3adb6cd16e.jpg',
 'test/4252288f9a9b3d363b17060ef0f5f99e.jpg',
 'test/7ec8e254a7a22d7302c101b814cb48b4.jpg',
 'test/667c969a3a1d19c86ca7e6ab2f877832.jpg',
 'test/0684c3415499ddfd78e945c725066034.jpg',
 'test/6479fb9f458435d91d0d066004c2fc33.jpg',
 'test/53cb184b5e5ce7ef5488fc21f6c32ec2.jpg',
 'test/902b5ce26b286ed9883a9b6a5cc814d8.jpg',
 'test/e47bc25097050ba689b64de02c725837.jpg',
 'test/9810389b3ae0ecc305e4fde32397874f.jpg',
 'test/fefafa1c1b5877561330d0a0fd4d5440.jpg',
 'test/3b48fe220307f1b42003918b0fb48a84.jpg',
 'test/515e5d592804cbf2b8a5d446eb194468.jpg',
 'test/32d1d7ac227098b3f964705d5f651236.jpg',
 'test/d2dec608053c1cf80cae8116cd470cda.jpg',
 'test/13557ec58aad7410efbc8f843754988b.jpg',
 'test/9eb06361f4acb2c2213e5ae32e640653.jpg',
 'test/4777d63bb8201678d8de585843272ff5.jpg',
 'test/463ffe453648a5cf157f2d24551b2b1f.jpg',
 'test/725eb0f0b9b1cd56bc1715b8d86fa845.jpg',
 'test/9bcde951cb5d820636881a8e81eb7951.jpg',
 'test/65c792d01f8d25d7f6aa45a679261340.jpg',
 'test/fc28e20d3e3ef312a15b2255e0ba77a6.jpg',
 'test/459ae8de71479f5bcc14ffef240dfead.jpg',
 'test/4909fc5b89f974fa007c12ba62ecf785.jpg',
 'test/197b591a10fe82030b1db2c3bdee8102.jpg',
 'test/40bed16bb4157c6d9a2fe340d563ff35.jpg',
 'test/61dd794deb9841564d9643dd5737370a.jpg',
 'test/4f0b2dbc23fdef5f939144f456a62140.jpg',
 'test/85624000301b28c675b431de0b67a98a.jpg',
 'test/8e7ca18f952999b5f678f7f7843d9b6d.jpg',
 'test/e3a55cc9c91da472abbced51d98d6ff6.jpg',
 'test/03205e3e568c87e1568a8415272a8da4.jpg',
 'test/084585fd8a9fcef3c7261669cacbc1be.jpg',
 'test/d2f9fbdaa33d1bc99a4366b350022994.jpg',
 'test/905267bd815441ff829cce3be24c6d71.jpg',
 'test/3836dac7313ba15526cd031b72af37f1.jpg',
 'test/4a346ac767ff900e8cc4c4352b57d6ee.jpg',
 'test/5d10fc611701eb7d1fb8bf2cf4df7aed.jpg',
 'test/e15513ca7ebb4730731f34c25e906502.jpg',
 'test/71d8ea950f6312b766d75d6ad8ac3ba2.jpg',
 'test/57c8db20a559e22dcbd7b7363c378287.jpg',
 'test/e1b0cbcf3235fe9a7b35c1652081ff8d.jpg',
 'test/7613042504cd73273ab2607cf518ba92.jpg',
 'test/b49d77d44fff249f62118af19f3468c2.jpg',
 'test/58657786baaa98ea777000c3a3b4e899.jpg',
 'test/5489187518477ed3110942da76c30f91.jpg',
 'test/57ff0f64f17597e00f58aa6db0392f83.jpg',
 'test/00225dcd3e4d2410dd53239f95c0352f.jpg',
 'test/c90109fe5971384b82dc9d4085609d5b.jpg',
 'test/3e764ad13028326c980cdb1263e70ef0.jpg',
 'test/69be99b844287176383f857ee406df75.jpg',
 'test/9cccecca16c742f03c63da72b19e4d0b.jpg',
 'test/214e5c3f441c8608c29eb76182b3f66a.jpg',
 'test/aa8175f0fd2d1a16d75dbb339b372a5b.jpg',
 'test/b9e8990b15b719aba1e1621cfa63f636.jpg',
 'test/4e06ab5e4129cd603e8a5df22ae9dcfc.jpg',
 'test/0e0ba1c25d4f30cd8a6b87ecc54f38b6.jpg',
 'test/2dca1e75b099224d925c3512a8bf252b.jpg',
 'test/7d48bba12b3f425324b987bfc3fef74f.jpg',
 'test/d6434ecc4fcc7c8fe4b463e956481de1.jpg',
 'test/d9d9c99f2c03d23f178441f8713798b6.jpg',
 'test/05eb4d66296f21bc9782688414fdbe17.jpg',
 'test/8f7822c77aa8149639490731c09b478a.jpg',
 'test/61307a91fa0311f071c568faf1a372c3.jpg',
 'test/452e58a7cfc482391e5ed7a25201f446.jpg',
 'test/844a8bc3ae10f267e8838fecfa5871fd.jpg',
 'test/9a9f274697e2d195724c3e9f466eef25.jpg',
 'test/dd2228d2fbb3ddc8fb350106c2d989ef.jpg',
 'test/ed0c3f827519441d3d542944978aedad.jpg',
 'test/d354419a80463739ce343ad80c3a906b.jpg',
 'test/70b9453812ebb5a91dc7860b2b26ab87.jpg',
 'test/e4b7ff61849485992246c0f2ab7e8804.jpg',
 'test/1439e842cb9f8b2c3fcc64806cf82728.jpg',
 'test/8ea913fc454a2628a5012d0dde92678c.jpg',
 'test/98ab98e40fc6786a5441eb6a1ef628ca.jpg',
 'test/84706e80023d20f30f1cf4f69741f9dc.jpg',
 'test/dce8d03553ab29570f67a28bf0ee0709.jpg',
 'test/45d5e4a25b7fc78c4439f6be2ffd4540.jpg',
 'test/df9ee3c663b1f2ca84781c09fa8c31f8.jpg',
 'test/762c598988525da91610c46e7a690343.jpg',
 'test/969b6b76b1e57682cb66eb18d24918c9.jpg',
 'test/7ebdd13f29a86637dffab6a2bf6945a4.jpg',
 'test/3bf061e6985f4b74f622cc54bb1cd5fd.jpg',
 'test/e43f6e621469f438f351d31d889b839f.jpg',
 'test/94e6990e098745b875219aa29b53e05f.jpg',
 'test/61a2bf4fc6f35bff211a298b6fc23d8d.jpg',
 'test/fcef727e767ef68b3973bfd25ad41305.jpg',
 'test/4c7fc253026fa9f6bc8583123692633b.jpg',
 'test/c9f781b5b98e347b854fb8cfaf0328d2.jpg',
 'test/693f2b472f62bfb69ef2a443175df06d.jpg',
 'test/ca8bf19cb287abbbf9cd8e1d8ea41355.jpg',
 'test/61e105759437e35bcb9630bca0e6bc7d.jpg',
 'test/23a849cf21f4a759477f1013997af060.jpg',
 'test/615499312d797d41a24a386cf7049b31.jpg',
 'test/dcddc9135d0a138bb83a55bbc06adacc.jpg',
 'test/bcd3f3f8402b5b476ca6d6c5fe1661bd.jpg',
 'test/d16cf4793e35e275e539cadfa7d1196d.jpg',
 'test/bd324712e1758b65a450dd065b384b1b.jpg',
 'test/fc0f848abb459c9dc98c455356788516.jpg',
 'test/e1e6d180a31b0a9c0d741d0f142ea6af.jpg',
 'test/90e3c749b540a5399091d9aa79c6498f.jpg',
 'test/10c4c824396380cbc41c36f28b1b9baf.jpg',
 'test/4e5db847af4d184dfc7a2ccee550432a.jpg',
 'test/bc7fbe41176e246289fed59d47af17d7.jpg',
 'test/4692b7d214fafbff4266a3a8678a1fd6.jpg',
 'test/2cc09f27c6e1e8e88172367cea8c3780.jpg',
 'test/6d1f9d9b9da664c396aef5cad54a8ed8.jpg',
 'test/e35b90290702042d17ceee2aaf2d1475.jpg',
 'test/90a3e77e8802823f857c32d281f3397b.jpg',
 'test/5bdecbb70e574f7427bfc869a7311ff3.jpg',
 'test/d4084988b2bc28dcc901be3666bee7f5.jpg',
 'test/7ba0334452749bbb7c49cf75c8a5e949.jpg',
 'test/988d031d16dbc136432726cb3bb53294.jpg',
 'test/9cc2fe1b331667444eb25b60deebf645.jpg',
 'test/436905a18153b169c71cc3ab7fb2091c.jpg',
 'test/36ad4269f38b87653eb7aeb70101f0ae.jpg',
 'test/9eaa7a13f259e77cd0b57e824ac7cd8f.jpg',
 'test/77c922894ce01be17d3016a377f985d1.jpg',
 'test/9a5d178c8e74fcd1363759ff679989ae.jpg',
 'test/f9c1fec06778d69677c24dacfb9f4840.jpg',
 'test/32c9cfccb110a85a09a1f5ad73bedaf4.jpg',
 'test/97d4ed796a33f67ebbec96b7ecc2dc22.jpg',
 'test/4d306cc7f5b127fe31f6094c0f3fbc09.jpg',
 'test/426dfd819da9c855bc00123b2cb2aa09.jpg',
 'test/29ee32e55ed89846115db9088e4cbada.jpg',
 'test/2972fed195a90795186fabc9ff7e409c.jpg',
 'test/a0b7a24c1fa6ddbb4a648ea7b8fc4eb0.jpg',
 'test/d18faeca0980bb364e31d69e662b3511.jpg',
 'test/0a0b97441050bba8e733506de4655ea1.jpg',
 'test/c01ef8dd3edaaa5cd03cab3b9a4a7fd2.jpg',
 'test/78eca7a75e7f42a5699e5801eb56a46f.jpg',
 'test/3ed792220e96f6c5eddbc4681da9b2a5.jpg',
 'test/f681821203c5ff0a675b6f998767e4ab.jpg',
 'test/3e45415cd08b2cef738fe2e373123daf.jpg',
 'test/890bf4dfb17c971e1303d7f57577c841.jpg',
 'test/522b3f3f94bb5deebebe2c43fb2e70c2.jpg',
 'test/6d41ac100737f33db95996bdae59bad1.jpg',
 'test/6d68a6ba3914c95014efc8dbb1bc2c72.jpg',
 'test/a3dbbb37c62f7cfd4e1b4d2795aaf7de.jpg',
 'test/3a43689ad0c3a2a3989cd670697fb7de.jpg',
 'test/5ba6afea1f5e415f5a6e762f4fed0344.jpg',
 'test/42d47502a728ebb752db63871329f09a.jpg',
 'test/129107cbe7b96bdd10d61811c8f70686.jpg',
 'test/283109fef09eb536e61f334e6945c7eb.jpg',
 'test/f7fda1184e21dcd0cb94086cac9ee762.jpg',
 'test/cbf2d65fae046a5aa45bb3ed58f838f6.jpg',
 'test/35a0b143e2927ad5d6125e6b33312c9a.jpg',
 'test/6236d7ce8173737bf3caf7270184bc76.jpg',
 'test/02804190c4ffc82b073d9f0036f66bc6.jpg',
 'test/9bdee231306efbac04ef1280c2ab2fa0.jpg',
 'test/7015592b41f682ee0604ab1024fde5ab.jpg',
 'test/8ffb64ee0970306a0b01f7a2a8da73eb.jpg',
 'test/0656e4606d4a98f2e8c8452416ac1ea0.jpg',
 'test/58c35fe95f8466c8136550467d5121a7.jpg',
 'test/578bd79f99ac25b93362847a6e505e21.jpg',
 'test/6c750aa0f0f37f89d942b674279b3bac.jpg',
 'test/61bca8b109157bcd0bbcc083b6590e3b.jpg',
 'test/e0d51afc60c25eb2205be1644af09cc5.jpg',
 'test/15e1e7f0c942bc77e04097abcf18f6e3.jpg',
 'test/93102b5b9f01ffcf30ddf0fe2cb17a59.jpg',
 'test/4068db24e52f8d67c667d6b035036b19.jpg',
 'test/d5292fc676d046dac6c1d29e2a03e3a2.jpg',
 'test/fdf6e6be8630044c6d14df570849cf44.jpg',
 'test/37e091359191cf82e1d2adc38d5f0c64.jpg',
 'test/e65d6492c026c925660d80543664b8a7.jpg',
 'test/3f999cf1693fa903bf7dd6164dd46e59.jpg',
 'test/8e25febdc662f5e500efe8ba2cf44cae.jpg',
 'test/4ef2b99d3028844d067feda58dc5f1f0.jpg',
 'test/feb308ce2a7ad3d84e84807efae21518.jpg',
 'test/ca97512cc0f458942025ee480023bc95.jpg',
 'test/14c184c41c90fdcca3411e730ae4737c.jpg',
 'test/8c543f881fbed3b143f8eef96968514e.jpg',
 'test/8aa49bb2a9dddc1b22b98c31689f9e38.jpg',
 'test/b7b0553cd3215f530ee06bd126630c3a.jpg',
 'test/8e649b689c5f156ac0c0d0a7ebadf965.jpg',
 'test/fa717a1532249d9c0532378c80c46c8e.jpg',
 'test/37f91f5de2d6ecedb6abebff33d7fa17.jpg',
 'test/52c2021a5ec2aa05e841df52b6a97d41.jpg',
 'test/a04ec5d3e358109699247c1d60dd6d2e.jpg',
 'test/83b3a854863d6e7047bee089969663ff.jpg',
 'test/59f49b780e38528b3234abc5842eff67.jpg',
 'test/379c3539bed019806f08b52163cbc2d2.jpg',
 'test/3c12e379d2378cd7a996bdeb825e3c10.jpg',
 'test/065e0b70a690e06a826885b454622928.jpg',
 'test/53d336cdfe574e917155b300ae3e5cca.jpg',
 'test/95e14fef6ed902998eac129ec69fb805.jpg',
 'test/2775e3092b56166daec6df4a38a14368.jpg',
 'test/50f60661565a02c5b96f446f089832e6.jpg',
 'test/c4e5a86214f9ac9b28c7381009b708ca.jpg',
 'test/496e85b1192c522cae8b0a7919ff6ae9.jpg',
 'test/4384fc6887440d1d46dafbd0a6bdad71.jpg',
 'test/ef9432cc6dc7ab7ba38d18abffe6d1a0.jpg',
 'test/7cb70171e113b88bf215260c25f55d2b.jpg',
 'test/35aaea679a279ceec46f649f0590f325.jpg',
 'test/4a5d85b5525bf424f90a2928a13b047d.jpg',
 'test/d00a9cb79ee6edbdb0e683de51a8f50a.jpg',
 'test/20d1255f2c5c32baa6c0a6cbb659a184.jpg',
 'test/4d99cb036a4b902a121201ffaba48965.jpg',
 'test/f73c6b6891b3e40a6bc9dd26f4e65767.jpg',
 'test/174e1bc31c5da607dda786cc43eeaa50.jpg',
 'test/38727f56b82312db412d2df2ef718bb6.jpg',
 'test/d6cad6b7f0a8a36e58a1f98d71e823ce.jpg',
 'test/ef4c9b0875ec51068b2720a01fa36b65.jpg',
 'test/6063fa5fef88446f86b8081bdf12d9e6.jpg',
 'test/09cbd98c55f58ad0535b5066c72e6e42.jpg',
 'test/f4a2ee1dd5542da8b0150fe8f7a2b7c3.jpg',
 'test/09612c47e84bcdf06c8e5a99ac1a8bd2.jpg',
 'test/6cd1a9cbd3d52ed1fd1c07630dd77505.jpg',
 'test/6d15ae3e88e32472a777752502f5ef61.jpg',
 'test/afb7f1305285c47c360c2a21284425cb.jpg',
 'test/4ea0130ffbe06871063bc51d23894b12.jpg',
 'test/18c3a6f7569d115f3663e75677565550.jpg',
 'test/63f945388f3013dc10f8e2c740ad9552.jpg',
 'test/e06fdea86b416e992137ad52bb5da5a8.jpg',
 'test/22dfa94e131e840a76e4961c3455004b.jpg',
 'test/ad889aca15b6168db4dd7133ac5a8ba4.jpg',
 'test/51dc2e213c35d513d9759a29eb652472.jpg',
 'test/da7be6ae218a4e5addcaa34cfb2d4fa3.jpg',
 'test/0854e34e53c9dd84579d4c37086dbdf5.jpg',
 'test/fb0416a56859decbc1f5f6994687b16b.jpg',
 'test/d4b35622d0df5814f4056812d7507e50.jpg',
 'test/f56b4140707da82fe91cb9e5df4ce68c.jpg',
 'test/ef413ae9b0de80605bc95de2d12a4082.jpg',
 'test/2bf6d0177046ba8936973513f3eafce0.jpg',
 'test/6dde5ecd74b830cab77c57dad4f39024.jpg',
 'test/f10c58048410333d9c4156046b0ea54f.jpg',
 'test/b1040aa860eed1715e03883b94764c4a.jpg',
 'test/3304bb6f7dba8b14fb7ff61bef70cea9.jpg',
 'test/e55534e27f92b4c8177ed2beb1cbba7b.jpg',
 'test/eb8473f9fc102c45e0c0abd07de20a2a.jpg',
 'test/f90ace46a8ccf051f6f7ec783ad8e258.jpg',
 'test/33d4943b93b8c14459ec8a7c5d35cc25.jpg',
 'test/420ca2f011341d6e70558c6e2b46b258.jpg',
 'test/ff357aadc868c7b38e17bd5b87de31be.jpg',
 'test/06e9d34793f7cb6915f3f2b2e6f7fabe.jpg',
 'test/5ef10a9edd5c5bb11c1cc4d5a4df566f.jpg',
 'test/429003ca7c11f0dca8153c427316baeb.jpg',
 'test/9e1198eb00e2bb4cf66dffdc0abfdcec.jpg',
 'test/3fed2e25badf7b5e8c12a4b71098e132.jpg',
 'test/cd0a8261be06236f76518a976d38c071.jpg',
 'test/0954e09deca15b755d04a7826264da61.jpg',
 'test/c4011f49046784b517ce9e0a47ed3013.jpg',
 'test/c6866b837d54f3f136250e02a79976a0.jpg',
 'test/eeb73a13b70170c416aab67eac15fdfb.jpg',
 'test/9f57531651e9b35af426537ad10fbc57.jpg',
 'test/77fbc571d85238151072c9ef7d0f4c9e.jpg',
 'test/6c4a4565e1d0906cb370d01efe64ac16.jpg',
 'test/9d6923ebe18f316321de8b27da18ed5a.jpg',
 'test/5bad43e776606caab0912c9e7f0e75ff.jpg',
 'test/89838ed67f3fed8e3c66a2d697de47d8.jpg',
 'test/d90cc1b8fe0ac4fddc6241579378103c.jpg',
 'test/e91ffd67dd303f59029d041ff4fb65b8.jpg',
 'test/6dc95536e52a5b170b7ae72b6a1fee58.jpg',
 'test/f45014f665123584d3588802ee020bce.jpg',
 'test/518e16d098116b14a9ce2fdc4b80c06e.jpg',
 'test/b7389c527b5ba629b036d30bd74a49ec.jpg',
 'test/82ec6bdf968a14923340179515ce5546.jpg',
 'test/88acf79ce25c72f682e272e658725726.jpg',
 'test/7f55af43e287c09bf1b1b2423c1942ed.jpg',
 'test/364c84967c6ecf534c54cf06e20fc3fc.jpg',
 'test/cb54c8c517dc12da27e5a3b72f1a1411.jpg',
 'test/1cc56ea149a97f5c3b7844bdfda095d0.jpg',
 'test/c55000d37452394e64cd05c99a645e4c.jpg',
 'test/7edf77f00dcc7151013e71828cded079.jpg',
 'test/5f571aa094aff976ca384870f58f21ae.jpg',
 'test/6423e27d0255a4e237adb4993c229d26.jpg',
 'test/e3f04efb648b110b2eb04b9c041504d8.jpg',
 'test/3bbdb72ff6a0ad3b87077ff38b3ec468.jpg',
 'test/1b6828700205a5552e8ab2464647021f.jpg',
 'test/afdf981978119904e3303015913f4a79.jpg',
 'test/01cb4c4d181a23e157429168e948fe5a.jpg',
 'test/069f97f28c811705453d84528a7af240.jpg',
 'test/df86ba50c4d0b597af0d23bda37eb10e.jpg',
 'test/9d5350d6dddfb91fd8929607358de3a3.jpg',
 'test/d6312b7f6caf8db9d5fc88bba505813c.jpg',
 'test/c22ae24c27a5cc9096f25f1fe438259f.jpg',
 'test/22f8e7b687205a4a6a6f0ffd3bc507e1.jpg',
 'test/e71d9f32ea6eb1c2d944e8f4e811c209.jpg',
 'test/7328b1eee0be05c80f119753aa4623de.jpg',
 'test/f928a71d3356833e8c46734938c04cd7.jpg',
 'test/df577444ba8b7733f42c49e9d42111a9.jpg',
 'test/e4729bf465eac43afb6b04687d4703c3.jpg',
 'test/4d87c82f9698058f80a90e55e6376c3f.jpg',
 'test/1fdcbe1bcd80c118461512790a250e67.jpg',
 'test/3b81256ebf571a6af1f7be482b50cc7f.jpg',
 'test/c8a02332902fb932af7edb0675ccbf75.jpg',
 'test/0c6176b396e31ce7666185aa435be7e0.jpg',
 'test/6afa4800e25bf15e88599895e90b67b4.jpg',
 'test/3d1a15fec91e3648daaf273373a1c03d.jpg',
 'test/32df03ced7bcadd5594e95c2f461c05f.jpg',
 'test/2a23d2cc0635ee44798c5a0497927ac6.jpg',
 'test/722f83aa7a932ed3d8b3f7dade17a456.jpg',
 'test/86ca8cf0f5a914825f88d62908d5cb55.jpg',
 'test/ce28dda9cd9cd616d38527b263bc292a.jpg',
 'test/b19f7853f6b2b84a99fc3b7c8a8eaa64.jpg',
 'test/7852e7963247e079c2df5b542ba5db89.jpg',
 'test/4df248dcad4b6629b1a830070900d321.jpg',
 'test/9b348ce9f36574e99cc664f5aa8cf5f7.jpg',
 'test/fc50b817f059dbfff5fa1857d7769cc2.jpg',
 'test/f0ceb5eb780eba366f9a077486fe003d.jpg',
 'test/43333944508ef210c0a8dc5c3700a90c.jpg',
 'test/e440ec011c3c7ea94838ab5fc466159c.jpg',
 'test/08b34271d7d196d13bbeeea99504e099.jpg',
 'test/8b842f121c77fc2ca1eaac41fea241cf.jpg',
 'test/3d47c7d4b52c2d609d318dfcc416f839.jpg',
 'test/3b4bb3f2db01a65beee775a04313b25c.jpg',
 'test/255a2dcc7259be7f3591dad9c9043366.jpg',
 'test/92d8c1fd586f6565c82d6828335cac14.jpg',
 'test/6a44393dbb58504bd749db6cc825255d.jpg',
 'test/92c5cb90c59782ec6b87ddad45216295.jpg',
 'test/8d243d285e72a16d8c266866f5e6738e.jpg',
 'test/f83d03d1949ebedbbe8bb49debac8af9.jpg',
 'test/d07116a8e1777f6d360aa434377f32f1.jpg',
 'test/1cb17b18aeb47d13e7bec401cc42e79e.jpg',
 'test/5e071adbfa8d739c1fa3d5015ec6028f.jpg',
 'test/09d5118c848bc579eff8cfb669fd7aa1.jpg',
 'test/6a7c935d30ed7694422f5e74093082ca.jpg',
 'test/6f789dbed826fd84e76b697730f6e70c.jpg',
 'test/c2cfcfebb375fde437807ded4c172460.jpg',
 'test/7b1883b3c99c234dc623b842ce5cfb63.jpg',
 'test/e9b16b4bdf5b0561fc7c69b2f36e1a7e.jpg',
 'test/75eb74a82c3dfd4d8b20c8165f273707.jpg',
 'test/94cd0c3d8776791a957b9c8e53bbdf6b.jpg',
 'test/78e0d148de61ae803d373c5a7e65a228.jpg',
 'test/ec25ce11616bda2e8b7669c415128768.jpg',
 'test/c10d6f9e470ee1be933d81f8388c92fb.jpg',
 'test/dd3eb4338145e614d325a917a35e5a1e.jpg',
 'test/2f1ce585a580daa2d3ccdc51bc8b66ad.jpg',
 'test/d9ad7f21c3efa2f7a9bf39835214b5a5.jpg',
 'test/05bb6919c2dc679ea70ffc632f68ee2b.jpg',
 'test/3839723ca994957060885ee8e69c97c6.jpg',
 'test/1a38ab01d6a18a4693a57125fb7f0370.jpg',
 'test/6951fc251261f1c8148a518bee464126.jpg',
 'test/a562ab222aa5c4ea685da464c74ec8ba.jpg',
 'test/fb0aa9d598d54e50963be105661944dc.jpg',
 'test/1aa65d339d033885cabcd9ea067cf4f1.jpg',
 'test/950618805a891d92ba13229d237a0b86.jpg',
 'test/5a87f43ce9ff04627459d1caddd8c36d.jpg',
 'test/86584e58605edfc9ef50fef65beac0e2.jpg',
 'test/f86aa3a7e56a78d9931710865d05632d.jpg',
 'test/8d4c922dc3b59b2ad867ebeeca0d187f.jpg',
 'test/e4c743b9aaf615dd5fe162bf25f82fb5.jpg',
 'test/176db83947685a07cd11fa338bc629d6.jpg',
 'test/e411a1b3681604f6321af7cb8e8f2de7.jpg',
 'test/28e205cf6a6ff6f12b261eef8305766f.jpg',
 'test/3a438bd21a911c958c26351f8c65863c.jpg',
 'test/f37106dba00385993428e7c557b15805.jpg',
 'test/926655bc5ed1284e29fbc8d6e232757a.jpg',
 'test/32079b3920b2060221ea265401d93b62.jpg',
 'test/8a8dda8d9a2747ebfeaedb7bfcd38e19.jpg',
 'test/1be3650327dcff01488a0764353215ee.jpg',
 'test/6ae629d5ce69859d99f19646b9480910.jpg',
 'test/9dcd7b11a8912762da46d5f69732e505.jpg',
 'test/5f341ee24ded57979d4cd6a0839de824.jpg',
 'test/1eaa414c22931039f4e8b9502f88daf9.jpg',
 'test/4c2d4c51a554a781b69adae6f7c27643.jpg',
 'test/1ae26ef205f733fbb084c8aeae253b25.jpg',
 'test/cd3a666d082b6cb9a44ddb1dca5eedc9.jpg',
 'test/d8e7a8dd3d639116edfad1a9d1463130.jpg',
 'test/0dc570ec7086bab004a7e357164c04b8.jpg',
 'test/24f3f3e9af7ab0f4aea5b1b9cb0c0ab5.jpg',
 'test/55cffce6ffb1167881fdefe1615dee87.jpg',
 'test/4ec9d65e78c1c468ce371c4141d0d301.jpg',
 'test/b3076a6451bc471a6e2f05961de08aee.jpg',
 'test/f1fdf296d0252b3dfb46f1bfc37bcb63.jpg',
 'test/df2ce797bf398414aac7e20119c17cb6.jpg',
 'test/4cf0fcba95a9fbadc5a7ca4d7d01bbe7.jpg',
 'test/6f7c713bd7dec32b0a8d07dd4822d256.jpg',
 'test/e3982348ad8b974cef2298f741bc3c99.jpg',
 'test/223d756d28558360245944689cc2a988.jpg',
 'test/79829c383cbbf0aafafc5baefabd69ea.jpg',
 'test/d15e9804516670c47818f0f8258192eb.jpg',
 'test/525fd146a1434d54b38e75ca89e7c066.jpg',
 'test/dcdffa00518844bd21499db49979f9c8.jpg',
 'test/c24dd508285cd0484772e5a1abd87d3a.jpg',
 'test/bc6fc592b894e75a837a9c31bfec8655.jpg',
 'test/eaa65260eb9a2f7d3b5484ac97962788.jpg',
 'test/2fe3402ae5732b553ee6cb6076544fec.jpg',
 'test/a561fb8f5db3f033a2d01fefd097c94e.jpg',
 'test/c69c44572a5df3b7a9ac93e9071453dc.jpg',
 'test/d6d08fe634318194555a9419180d4ab0.jpg',
 'test/16c99eae8d1d81d632d5a76fa9448a68.jpg',
 'test/5cad010642dd82c686e4b8415eeaf347.jpg',
 'test/151b1e8efd6f63184058b983e10ff829.jpg',
 'test/70ef7f40159718bfb3683dec7c125b4b.jpg',
 'test/13b6f9b3dcbab9a4ba4b5c3de3cd5f6f.jpg',
 'test/4ec6fe076b150ca77641a4bf676d89c4.jpg',
 'test/329d3d6fea50b2ce65c611fd5b31d1d2.jpg',
 'test/bb0c7d7af4bdc0d3646afaf1339a15f2.jpg',
 'test/0110fb82ad93572bd6f5dae4b048037d.jpg',
 'test/e2888231cedd08540816e629c0733922.jpg',
 'test/cc8599c4a791441bd97a511a9474403d.jpg',
 'test/f407f19970c6d8d516722e899adc599c.jpg',
 'test/85c78df191958f1751aa118e6d3021aa.jpg',
 'test/f96722fdd8a6a0e9ff86eee619cec34d.jpg',
 'test/faf757243722ea255b9b190cd251b9d6.jpg',
 'test/db11b427fa998df38056fb050debd8eb.jpg',
 'test/565205413fb320b9387a99d344545b2b.jpg',
 'test/9dc6dbeed6a6cfc487456999acd35ae6.jpg',
 'test/25ba0484e0c90b93cefc170e5489c2f0.jpg',
 'test/768d51ef6eaa0b1ecf85b59f0fb832ab.jpg',
 'test/e2b4d6b6590fa2941e74238248093eb3.jpg',
 'test/574953f707e8c12b0349ca4c6fea9e3a.jpg',
 'test/b370ddfbcc1d5f3f694d424a3a9d096f.jpg',
 'test/74a50646dfd99459faf8c1a626c53795.jpg',
 'test/000621fb3cbb32d8935728e48679680e.jpg',
 'test/a1cb6364a59b4820943d1b4ff58800ec.jpg',
 'test/3a81b80e36c91964a3f01e5813a22a79.jpg',
 'test/610555087abc35e584044750d7154609.jpg',
 'test/56d6c58aa719ec8d4f8f513800578f8c.jpg',
 'test/67d17625287f1a4b64124f6065ec8701.jpg',
 'test/517ecc5a496cfff2b6372c26abe4c91b.jpg',
 'test/91faba2e7bd694aec44c6d91e386445b.jpg',
 'test/1228d5ff93a39830f6c36012a106f4c5.jpg',
 'test/9e72af813948e3349bc6b3454b4a6e52.jpg',
 'test/5c4503ac01840e7a9307b5e33acae248.jpg',
 'test/7b1fddc813adcb2b3519cb590d82f62e.jpg',
 'test/982457d7157c74ceeef40725a8412002.jpg',
 'test/7b4a5c0a390fc553a71bf4fddb4b05aa.jpg',
 'test/a0d9fe41fcaae599e8e133cd8a0ee688.jpg',
 'test/ff8f9a768544fda79ffad62576f4d129.jpg',
 'test/5325c84dafeec70d457b992795294317.jpg',
 'test/4de2ba963d28c9ade288ec40ba54afb9.jpg',
 'test/ae9b177d97d0d08bc6f1fd5a592ccc13.jpg',
 'test/538e7a043f4435bb7b4be8fbdc73f2d9.jpg',
 'test/9041d7c2bd1af2418962950cd8a2b885.jpg',
 'test/3fbeb111e0468e8c23f5746738054efa.jpg',
 'test/93f5a3810fde3ddc40ccccab4dc0487b.jpg',
 'test/48a865b32601a719b6748c194c8351bf.jpg',
 'test/dd7bf84df93991b7c15ec739c82acc04.jpg',
 'test/a2e03e4bca79b6858bdc707142dd8391.jpg',
 'test/6a393de9df49d1e313f0a3dd42aa2815.jpg',
 'test/7ca5580d25264b2454908b5346ff3281.jpg',
 'test/0a51fbac72fac75df279e18e4b1c042f.jpg',
 'test/e3c97ed588b32f49c7aae65cf91f17ba.jpg',
 'test/03af64f714d918ca61ba22d011816beb.jpg',
 'test/71cd1ef653a545062093510ab36004b7.jpg',
 'test/900c2fdffec1ca6956208ff7a236926e.jpg',
 'test/e17512584de423da7fc17bfb2c7548ae.jpg',
 'test/7cf2350be70ed2d335a54952fc6bb30e.jpg',
 'test/10dbf30635323f90703abc5d76493902.jpg',
 'test/1bf8b6d0b362943130a9fd6b2751913c.jpg',
 'test/0ae4367c7f7149a43b0e5b1c07ce7ed9.jpg',
 'test/d5029b3d5fb11beb988ea56e0f19e2e1.jpg',
 'test/7ee7bb563c55c1e40edc29928a5c0162.jpg',
 'test/65bd5879ec1bd32bd87a1c1ab54a0014.jpg',
 'test/c2d87315df1b02017edd04f30f8b60fa.jpg',
 'test/7490f284d304412d3641a67d298a094a.jpg',
 'test/7046540577c4b66cf19936231d391b8e.jpg',
 'test/dff6d0e5746812e0e5808c0e69a20574.jpg',
 'test/cedd6b0da3b4070ff7c7a185b85c7504.jpg',
 'test/49c5c75c9477167654a1c41937a866b7.jpg',
 'test/201bdc6f7a8b0fde297d1291fcd31380.jpg',
 'test/9bf93ac268122f8985cd9dcafa2e3a85.jpg',
 'test/3affbc524a54d1dcdf58bf0c3b96153f.jpg',
 'test/1c082570531b3fb68e82f06695d89de8.jpg',
 'test/067e053858f0cdbc2417c0ce58cdfafe.jpg',
 'test/c72a0bdabba7a8c21f04683e98794a23.jpg',
 'test/683036e204cc9f8ddfbe56c3d63ffe01.jpg',
 'test/b9aecb05c7f833a31f5e7e9399812332.jpg',
 'test/d9ff293c85c9263083b0369b9bad654e.jpg',
 'test/86c2d71776b76d0c7acdf34a87b7f9c7.jpg',
 'test/6544e8463854c7d6ed90258bd413ef63.jpg',
 'test/73bd84ab7916a285734b4a89a50ee247.jpg',
 'test/6e6a470bdb033d53a5c997833d86c6f2.jpg',
 'test/6ddb1d1a49efa4b83d83f30ffc409458.jpg',
 'test/52154f155ae6ba4b812cd18113ad7453.jpg',
 'test/e4ba350279796ff15c3a634037a6f88e.jpg',
 'test/c5120a58c8b044f3968bb8bf8c281ac0.jpg',
 'test/53ef70b153e67576e282924876d3f27b.jpg',
 'test/e427b9e1ab1b7f09cfb02ac073f56f2d.jpg',
 'test/204c040a1ddbc2aec6d5e4b4d0e03c7e.jpg',
 'test/b0362cd1e195639de7b1fcf70324d40e.jpg',
 'test/8d7be90433c849873a2917b4cd0b9885.jpg',
 'test/769f02384fbd98f2963699b8cd891572.jpg',
 'test/15eb91d38d13be03d41639899e923053.jpg',
 'test/77cebfd9254b131e6d25ec7ba5195276.jpg',
 'test/4c4cc4c7b3fa4f5b1567ecfce59bf34f.jpg',
 'test/c17f8c8203cb68424ae67a010c354924.jpg',
 'test/bdebc49101b9af7ba9e46182661dc4b5.jpg',
 'test/a354ad4e3e240da15462005e40b4583c.jpg',
 'test/c156f32e908a46a6b4bbef72f6223905.jpg',
 'test/ae323e40a7e64968fdb2650078de7cd7.jpg',
 'test/d472bed5237cc2cce18007ea5ab43d4b.jpg',
 'test/3e2c021f8d38b7e434b926e12424a016.jpg',
 'test/65bd007dd322ac49c62bb86195e529ed.jpg',
 'test/4beff00d6b5285d5dff491a494da0220.jpg',
 'test/d4bf6045e3453d9a2cc117d3e86a1e00.jpg',
 'test/52b0846e26f28f8f1a1899ad98481782.jpg',
 'test/30ef42c5c84b11fa3052524706687bcd.jpg',
 'test/cace8abb5880d8042cc79832eedbbc8b.jpg',
 'test/46782af314bc08de257d893c3128ac4a.jpg',
 'test/d814acb8ca7e3288d8ac5ed47407f662.jpg',
 'test/89262d9a1f00dc5aa300905f58cbde69.jpg',
 'test/5b3c30550768b2ad4a53fcd023e8cbb4.jpg',
 'test/4bf924974410498a1d52d9eb45eb0703.jpg',
 'test/5028d2d148171673158c6ec80c03d8e7.jpg',
 'test/df47feaaf3dfb33cf712cccdddc8060e.jpg',
 'test/1c84ca95720f4b60129fd44085fdaa40.jpg',
 'test/3a7d676acddfbd7f5cb3fceab8cd3aa4.jpg',
 'test/8356f99f79e539a97028b1e4af918c43.jpg',
 'test/bddd379859e4fa187b1874b9e061597d.jpg',
 'test/75f8a13ae05b56eed204a33bf99287ed.jpg',
 'test/f7d150e11c972c850159603843939b28.jpg',
 'test/8bc098fd981ba69ebb346b6a1608b0b5.jpg',
 'test/a78056d00ebb14a104a5d7438319e81d.jpg',
 'test/28f7fbb3750d3256de932c58000a4c33.jpg',
 'test/0db3f774655ada5d6f78f2a3c31fd295.jpg',
 'test/3707f315aececfd4d4bf7953b75bc68a.jpg',
 'test/d7759e463e93114b57e12c56e7a13289.jpg',
 'test/c627411dae091af961dab2988c35923e.jpg',
 'test/9d97ca8c85b481e7b1245cd65ec8bd5f.jpg',
 'test/0cfa9ee8a8e0912bb06bfd575f70bfb7.jpg',
 'test/9ace4c5cced4fb88678a5b0a9b3f3cf1.jpg',
 'test/0cc2a9144cd3a2292a108a28d68c17fe.jpg',
 'test/d9cc62cf60266f824731f8a4e70ba718.jpg',
 'test/ff766d48f0804590391df24f73cb2118.jpg',
 'test/959bc1618cb81e9aa244a52db1246076.jpg',
 'test/54c746a1470981b3e80893a0c8a5f973.jpg',
 'test/f10241d199251db359961e814733efc5.jpg',
 'test/5dac8f13467994de6ba778df1cdba3fd.jpg',
 'test/da18208afba4420b0333c7fef7642ec7.jpg',
 'test/0f21800e7f10cc35725b82d34da94ce8.jpg',
 'test/58885a79643c3a480aa9dc2ebef7672c.jpg',
 'test/32b4850ac87ed096cfe5d583ed95f156.jpg',
 'test/5cf394488058748c8bf816140dd02107.jpg',
 'test/04fc2616e5e491538a989b7eb80d7860.jpg',
 'test/d16f5acab90d41f1ac0014944027d490.jpg',
 'test/1b3f21283d424bf4034571b58b9530bf.jpg',
 'test/c52df09d15f0e89580a937fb49e01a6d.jpg',
 'test/2de3603e679bd3174a0a2464611bf21e.jpg',
 'test/0630bc53549c1169cb9c081907a8cb05.jpg',
 'test/8584099bbb10d51cc5b88ef5c8645198.jpg',
 'test/ffd06687c72445b0c6e8a130a0a8711a.jpg',
 'test/0298eb3d74444d2c405639d51c220bc2.jpg',
 'test/1cd2f85ce25710e78d9531ac24f46746.jpg',
 'test/fbf4abbd32d544ff9b5df6af25eec3e3.jpg',
 'test/f603da0e3cfff2ea4d792c96fe5ebac6.jpg',
 'test/957379d51e207de4885b41d0b1758d8c.jpg',
 'test/0169ed6715e26c0c5fb460941c8d3bee.jpg',
 'test/74e40c5277dc098324dfba2ae27c4b22.jpg',
 'test/5e1940d82de5036864fb3a44fa49bd7c.jpg',
 'test/8534fce6132c02ccb01f71ff64a80b16.jpg',
 'test/4e3440f75b37f3d13c0d8c025b30d337.jpg',
 'test/f28b4d5899f9db2a2caa7a3361c847f1.jpg',
 'test/f2e4e4f1ab9d156443682dc4653f23e5.jpg',
 'test/fde6a7af1944348eb4ecd1268f49a549.jpg',
 'test/545c3279db44dc7c00ccded6eb2ccaa3.jpg',
 'test/9f6611b8dc4ef5b77e18135f713f8a4d.jpg',
 'test/9b5ff522c48a66c4a85eb418ad4a0ed0.jpg',
 'test/4dc316028cd0fa65ba6bf0f65f40c62b.jpg',
 'test/f1167eabf53759dad015f0abb813a451.jpg',
 'test/56e9e806e409775f6d292b66b8855b1e.jpg',
 'test/534c23db9b723108381515a30c3ccb6f.jpg',
 'test/581b48f1991aa16b4a365716fd4f03ff.jpg',
 'test/8217c57f3ce8505a6a262a0583720f13.jpg',
 'test/e806fbb5ca4dd3a094f7819bd810cc65.jpg',
 'test/3006a0d7c9e93709001323cccda8998c.jpg',
 'test/3510f5450c79d0ba4083a1b92195fd80.jpg',
 'test/341bd8a802798866f6fc1d13bfe53a34.jpg',
 'test/a4086a730b6c5011be6eee3bb3b92463.jpg',
 'test/cd20118a162237be1423e800a6e5094e.jpg',
 'test/ff1ed16edf355507ee740a67a6391d48.jpg',
 'test/12c3287c880cb83dfbc9cbce3d2952be.jpg',
 'test/e2a9a7580a1424bc6531b2b7375338db.jpg',
 'test/4f7ec53fb020dfd90ac36227ab8233dc.jpg',
 'test/66d14166c9c17b9915c8b8bd515c04a3.jpg',
 'test/2046b1decc5a575e3a48b42c88adcd62.jpg',
 'test/831ef824af939f9754e3593638933b64.jpg',
 'test/03a6a4c713d657d53a804ebe1fb2b02c.jpg',
 'test/c0d45b04b7b427c973c71ad23b6a77f4.jpg',
 'test/7261882b948e7bd67aa9bc550bf02b18.jpg',
 'test/0fe91bc1fe542f04aaf9a010ef37c2b6.jpg',
 'test/699dcd6bebbdc49511b62dfc6facc779.jpg',
 'test/2f8ea7b3242838538dba2a258b3a24fe.jpg',
 'test/1509e27988119ea9293c2df2fc1b4b45.jpg',
 'test/6548529f17b333f7db091b2f181a64c6.jpg',
 'test/193f80c24606fdca6179eff987fdab9b.jpg',
 'test/3feace6790ba6eea2aef34f198e43025.jpg',
 'test/37d4c66da9bd8843fa926df8c62ae26d.jpg',
 'test/48b28d4c1e91b59599d38edb646b9d0a.jpg',
 'test/f7b0596d6f3a5fe9006f04de9cf4ab0f.jpg',
 'test/70cc4624a1eb9b0f0587045819143b62.jpg',
 'test/f13011a399f175d88c17d2bd1785625e.jpg',
 'test/e0806e5049519130d459dd7bd640a092.jpg',
 'test/ac606d827479c6635a287e7af1b7d434.jpg',
 'test/84e3a6a1d53e886d97f65411489969f0.jpg',
 'test/af3bb35fbb65c50b2e707ff686f98f9d.jpg',
 'test/768f4beef760032a8808c6a84ac03d77.jpg',
 'test/27ccf0e035abc33fb6a1e8bdf23c5f86.jpg',
 'test/3dd28f8e10a898adef51f60755f87091.jpg',
 'test/4afd081346193226bab3dc456d80bd3e.jpg',
 'test/e85291fc6ba44e39defc7769fa020646.jpg',
 'test/dcbe4226672aa4af80c1e52a9bb78268.jpg',
 'test/9ec7ae3455863d4df0a46f4cf597a574.jpg',
 'test/34394cdd71e596d6e80f565e98201cf8.jpg',
 'test/a139581faa6b04f7d4c0e87107e33a01.jpg',
 'test/d5c2ce713cfdb56cfbb9aac676aabbab.jpg',
 'test/1cf32e9b62b2f1a60a5d009dd57cfe5e.jpg',
 'test/798219c15b8a5ba54fa5d09772e9e1ea.jpg',
 'test/967898f6705e9c4dd97ec7c8f8b1956e.jpg',
 'test/0dd0c324a6f4a599756b3b750165c41a.jpg',
 'test/2072d74918f4fe253aaa75388822d81b.jpg',
 'test/7d9da7c2bba40fde7997ce09bd2737dc.jpg',
 'test/8d18204baf2bb27dc39b00aa763c784d.jpg',
 'test/f51f6aeea8a23b6bd62728fde8f04ad8.jpg',
 'test/7dde52cb616a94fbadd8b077c8e8d920.jpg',
 'test/4969b10897e61fd900c75460de04d6ed.jpg',
 'test/9c4b7039ae06959859cb1369d6450079.jpg',
 'test/b65bf33d0e0f70e3fb54e6868d800842.jpg',
 'test/3968abbce18a685b3e5089dc6e212f12.jpg',
 'test/b6198ed26acdf1a18797f6f0403217cb.jpg',
 'test/f3ea1d71874433a4fe775deb9e95923a.jpg',
 'test/0c84d273699cada291a635c6edd33390.jpg',
 'test/11a126ba3ccaed35f95547b5f787ea61.jpg',
 'test/04d36eed15fe648c54a88e0b5c49deb2.jpg',
 'test/c7f10024f9092537b1601bd02980fb83.jpg',
 'test/b1caee92d84ce6c100413a1f5cc32460.jpg',
 'test/f8bfe5da20567378b885109a0c1f1483.jpg',
 'test/40f82d80552497163082195b42365163.jpg',
 'test/bf9a109dd391229fa06b3a34bc1470bf.jpg',
 'test/c0871a1b55afad116c7e5bf1d1cd0906.jpg',
 'test/f15527e7a063275291e469b4e5db751c.jpg',
 'test/5ab0a6516922e1cdb1091f054fbefff0.jpg',
 'test/4caa48ba96c55c71aa0edeeb738bc080.jpg',
 'test/3a111de3db21bfd37e6a6e0089f794c6.jpg',
 'test/01d333d5c288be97bffd76005f559f41.jpg',
 'test/1f77317084a554666f37473a8a95d91a.jpg',
 'test/b117274991d2dc1ffa0ac863f16f11a2.jpg',
 'test/983a02132f38c20bc351b99ed83eca64.jpg',
 'test/02b9adaa40397a4977b9646cc6c939dc.jpg',
 'test/83a8010c4b5ab0747059400f473ac668.jpg',
 'test/ba57c17dae7055ef1c54c479262fee4d.jpg',
 'test/2cc021273be838847ed66f9bafc21cca.jpg',
 'test/af0a63ceff8e64c65e48ccd7e9500499.jpg',
 'test/81fcf88f635727bce89a31142c8a4007.jpg',
 'test/180f2e2e8067fe2213130b1fdc469b26.jpg',
 'test/17a4665e63f73d0f01089a4e153c33c4.jpg',
 'test/a6359b148d774fe2b542e4c1b9369c02.jpg',
 'test/6cdff5325cb35cfd44447b9e4f6cb7b4.jpg',
 'test/c87b574003ac9568970b70f29702bf85.jpg',
 'test/5310f15815c30b6c5b337356b36cb454.jpg',
 'test/97a0a4b27e8f12596482e4f6487786cb.jpg',
 'test/8dc7ff54ae077a63cd489faa94684709.jpg',
 'test/c0b5a7f03d80626d3c13d37ab78544af.jpg',
 'test/fa541fc080cdeffb4dd98da99f673a59.jpg',
 'test/985ae7fc271ac4a0d131e546c0f95bb6.jpg',
 'test/d4b63ba8b6558b29f55bff96af795d09.jpg',
 'test/9ec769e34bc902bd9de458103e9347c8.jpg',
 'test/62cc5d37bc91403eae2561975c414579.jpg',
 'test/6a9316ea62029983934dac25c7cfe48e.jpg',
 'test/2a1c9159aa46a15c749c1013e733adc0.jpg',
 'test/6715a492eda68acd37e28a54218c2504.jpg',
 'test/391ec9ea882a52642e078ca64df2563d.jpg',
 'test/02efe659755a4c9d2da69035c43fa5fb.jpg',
 'test/e12731c30619c3fa4b0d9d9a76fb9d60.jpg',
 'test/5711e271dfb897a1a13d2d94ecada80e.jpg',
 'test/223a2071464f05c2ae405762b9ca3af6.jpg',
 'test/836aa8b45420e8bd70b9cf2eb4f9e093.jpg',
 'test/b52332e896a5a47cc4d2c0dc15af0359.jpg',
 'test/74d2b7992b831108009f6aeb36fb9181.jpg',
 'test/36edf3ddc4934b2d84cc940d4f6e8c99.jpg',
 'test/e246de79e4efd1145698d9c21466bbaf.jpg',
 'test/cff15c13208f1b99912a8a5aa7e4b96f.jpg',
 'test/cb2c1164402b5dbbb3eac54d3a4dfc49.jpg',
 'test/9a2e6ecc4f7bd1578d8c55f8eae0dad7.jpg',
 'test/aac5caab05224706d9c24f294a71f247.jpg',
 'test/2d7c2ac3fe912d9545ba692490b45d00.jpg',
 'test/f57f8ce3fe1d928828e37a9bd78574d9.jpg',
 'test/60a1d91ee68cef5501a0d692cf43a7f9.jpg',
 'test/b3bdba23a9105fe502fc2b661f215cd8.jpg',
 'test/c52405e4e5afb93a6ca775008480a41e.jpg',
 'test/cc91dc262bbc0c73241ecec6ed53449a.jpg',
 'test/463dc2054f543877c4225543ccc16a4a.jpg',
 'test/f6bed54631ef1691d12509f5516ce979.jpg',
 'test/fab7c38522b8bb9e71626f6f1a384d8c.jpg',
 'test/2e3ccd5230893d0e07e9ecf6d58be3d1.jpg',
 'test/09db0bb220cdbbc0adca63e38e64ab38.jpg',
 'test/324c9e2d778e15146858832009999fbc.jpg',
 'test/4bddac4bf91f5b45dc8104db791deb97.jpg',
 'test/4b3f79ad4f44d990cc7456b2d50309e6.jpg',
 'test/3c70bfb583de9c18043aa1f33765521e.jpg',
 'test/a87389ccf3e82e66fcbab9426d4f50ab.jpg',
 'test/d51d2d0962d57067d5ec9415a5af46a1.jpg',
 'test/6da8dcfeceb87b99ea1426189512c2de.jpg',
 'test/2fa13e03954dee3e1816a5b4ee1bb75b.jpg',
 'test/04c7f6600b20b9255b04a76fe6e55023.jpg',
 'test/ec363521d5ebd5260944823f86dc5a8c.jpg',
 'test/69e9ebfeb9dff1365e790a3c71c484ea.jpg',
 'test/9306ca2491832795f90dd0cfe4e54e4a.jpg',
 'test/8f87f0bac19b72a9919681fe3d4922e9.jpg',
 'test/ba0875164edc17285ffebaaefbfa030f.jpg',
 'test/ab3c567523ef87f50bfb41c1308732af.jpg',
 'test/b3ce3ccf5096e1c894595bb1f3b467ed.jpg',
 'test/b5f8d1f0aaad28634e56139bd630de97.jpg',
 'test/64081b6b6635b3a772e3b8252d67ec08.jpg',
 'test/6a04011c7f2dd08d455247ccb8ee7ab8.jpg',
 'test/bd80f2d9d300a2162291270312312980.jpg',
 'test/6d311b0eb375237cf49c7918600019ec.jpg',
 'test/0c82ccebd8e7cf9b232fe9b294863c69.jpg',
 'test/0a28fe94aa27ebd0fa587c8a474117a1.jpg',
 'test/07e4edc428816ffe6b8dd1024bed2782.jpg',
 'test/f7ee03c39d8a094c75de991e24e4ea55.jpg',
 'test/add5d56a7c6f2691ae9df6e79851d404.jpg',
 'test/735325a42aca71ebe25d7e9b7d86fc91.jpg',
 'test/218af675b2c2ca9b86f1362c32705930.jpg',
 'test/63d381a8b806b56e3c155dd458a66646.jpg',
 'test/f5dcef15272a806b4f0824e9199e9dd5.jpg',
 'test/e96fd30110107e506de94d81af346238.jpg',
 'test/744f9a2330a9a44c500905a4dfdeb377.jpg',
 'test/01cb83d33e905e825df41b88dd4ef277.jpg',
 'test/2ac416c42469d263085206aa28509a2d.jpg',
 'test/e6a544a538088cc3f73b432a2da90134.jpg',
 'test/9049b9691e1712142a78812d1b70fc08.jpg',
 'test/c60d1576b160e11ec84cd1009e275485.jpg',
 'test/667b068c74813ece3880ba1a1253f9bb.jpg',
 'test/ffbcda9eb84339cc5be15fd9900596a2.jpg',
 'test/d730341f7447906720fbf47286796f7a.jpg',
 'test/0467770f34410f3fafd2482342d69f77.jpg',
 'test/f6b8af035c42b6836bbf90d0a457bcb4.jpg',
 'test/dc2b0a19e725d1a257411433277f4d89.jpg',
 'test/7ed71c10cced08b6b069a5b7b5785932.jpg',
 'test/d6b0ead1d782826364fe2f6a149ab372.jpg',
 'test/388edf10377674a40c25915d64f4f377.jpg',
 'test/82d61a26d714398bea3d82e5ace7538a.jpg',
 'test/99bd95316f9796c59072e84932ad33f9.jpg',
 'test/995839654892fb3ec7b8d98529bd43ba.jpg',
 'test/ddf0164ab3a269b179051bdecaea34b0.jpg',
 'test/49a13d472605473ef3f9b2e4f638d700.jpg',
 'test/94a681f65f37fb3666c07b89d4d7a071.jpg',
 'test/528f88ec0b2777c70694d7c776733e56.jpg',
 'test/25d0ef34c87dbdf118fb714f0bc3e59b.jpg',
 'test/5b0e3a9551edcca11fcf565bb78d8c49.jpg',
 'test/beeaa698e9965aee5ec860c59af3faee.jpg',
 'test/c67c132d99386fba1e1884a850d1ea98.jpg',
 'test/416085f568b12844c1f53173f9343396.jpg',
 'test/ffd304c521f43819f3824177fd9efeb0.jpg',
 'test/283a2612ccccf684b2796dd8e4a5ba13.jpg',
 'test/b2193a53c04ea9192860fece3f4c2d99.jpg',
 'test/a408e776f8b93ce22a3542a89218820f.jpg',
 'test/992e80ea2cd1549a5f71b04e4430e529.jpg',
 'test/606aef954ca30806168d0d08e52a4dbf.jpg',
 'test/59fa36da3bd77c415052d8f88ccaa309.jpg',
 'test/077b4c62007a362be52711169abfa4fd.jpg',
 'test/ea057ca7f831d161d456091bf293e4b1.jpg',
 'test/f1f42942df460f38181e12ebce695b5e.jpg',
 'test/f09826fc9cb9aa425caae5f8aaaa8bef.jpg',
 'test/ae5309aba5975d0829624bdced152bd3.jpg',
 'test/e97a63b529b7b274eeb605391366b576.jpg',
 'test/dcfd3463e1d23d51b309b0385292870b.jpg',
 'test/62f0755b86cceef4244c9bcbce1b68e5.jpg',
 'test/68ec9cf5b73b91f6506ed9e44e8260af.jpg',
 'test/4f5f35204ad2b401c1d00557a1dec1c3.jpg',
 'test/b47d3815322795664fe4b6dbef27b6dc.jpg',
 'test/6d1eb0d0f02a3cfabf08e5b84ed54eca.jpg',
 'test/1e2dee5f2da505e30bfdfcc7eb89797a.jpg',
 'test/2630ca901a4718100cdf780996c13da7.jpg',
 'test/6969c077141fec2c23f4b0857056fc9c.jpg',
 'test/3a1c97e85aaaf6810c1f5a8c9250a6a7.jpg',
 'test/bba293dd06d11a8b7dc78bfca28059be.jpg',
 'test/796cc4fe56597d3e8cfc9595ca1454de.jpg',
 'test/023c0a9675c4e09e7de76be0fad3d52f.jpg',
 'test/bfc8e5fe6c364c4aaec8d053047f0449.jpg',
 'test/09ef5442c370eb7eeb08e6796c5ff5b5.jpg',
 'test/cc5a5b9075877cdbd4b8466baf984eca.jpg',
 'test/89d11c210c761b3a76b8eecc307b5610.jpg',
 'test/4645835f6bf0933136a1b1cd0f6bfc76.jpg',
 'test/dacf001ddba61650b7cc587b8db2f50e.jpg',
 'test/b4e2d6ecbe6598c745494980f97a02bb.jpg',
 'test/03a6fb1fa2d7812587004a60ade66fed.jpg',
 'test/f1af835a9146d6ec0da8059b3a55c030.jpg',
 'test/ab065f522488afe09494c124342957bd.jpg',
 'test/7ac0624c677fdd6a38956d720c27b0a2.jpg',
 'test/2fdbbd37a896ffa757fedce3c3816aca.jpg',
 'test/7155718b5d167587c440f5f0ecccb872.jpg',
 'test/38374ec73cff11ea2be55ab8b4c54dac.jpg',
 'test/387a2439a7a65ea7ae52a2029339d55d.jpg',
 'test/de3fbd6fb5444fcf14390ac90545c2f1.jpg',
 'test/b1aeb449e903e417bb1a0cc677912336.jpg',
 'test/8a90cb35ebeb872781026fc3e28a3dc5.jpg',
 'test/c970c9cf57b8ff9eccea685bfd6f240e.jpg',
 'test/b89095325ba8d3d588834e35f65ca99c.jpg',
 'test/fdedb2f8f3687f8e51e84236c65b65c3.jpg',
 'test/ad57aa30eb969a3a70acc9504a73a82c.jpg',
 'test/1638e407075b037a3f024fedaaa0953d.jpg',
 'test/5d1e83adfaac47f754f16021615fc8bf.jpg',
 'test/207d0a7a27d3e4d9ab33860a18b78383.jpg',
 'test/42541eeab49c96ed08d45d209644d72f.jpg',
 'test/f863758735a6cc504d4a80477591eaf6.jpg',
 'test/93fa4194758960a2fffec91162579467.jpg',
 'test/b19a8a426fe7b91c890e33f5622fcced.jpg',
 'test/7603a1e5ec7825b354d3d9f2dc0f6059.jpg',
 'test/8a6f0c3be55e8f27fe5bc3b45562fc90.jpg',
 'test/cff0b4780b519e569f3478550504b02f.jpg',
 'test/9f04a42304ebbc558a5cf0c3f46541b3.jpg',
 'test/4ead408f81b09e617882bcad28bf7593.jpg',
 'test/5b31ecb5b59db8f507a274b00346065d.jpg',
 'test/4a692ed4c770d44d6ad825b7f43b31ca.jpg',
 'test/b964a6ca60f81c19e84ad0aaa9ed6f88.jpg',
 'test/8c5d04891180854184b470daf88efb96.jpg',
 'test/401536ed0da2548536a4d27ff1c0a463.jpg',
 'test/1119c5511941dd992da0f8f66b34e55c.jpg',
 'test/6038406f41bc0e669f4226c5e85dbcd0.jpg',
 'test/38ecc3fe3e67ea1b84f57148e9d0a7b6.jpg',
 'test/16816a9d4db979b3abc8c92404ab67e3.jpg',
 'test/35dacad1732794561c26e1fbf41aae8a.jpg',
 'test/bcf559a914a8fa20ebd5375c48edd8cf.jpg',
 'test/54b9c175a57ae7c7e6882a7528c621b9.jpg',
 'test/e090f0f0ebc83ddf5f649a841493868b.jpg',
 'test/f90b4f4adae580c4a2ec4fd9abad05da.jpg',
 'test/4338b655b34c0548b089958e1574d7f1.jpg',
 'test/00c610a43b661e4fc612d06db96ce258.jpg',
 'test/55df5326067d640b519c4378142b7509.jpg',
 'test/a62f5e5d7278699eefc195d747d71b7a.jpg',
 'test/86ca62033ae44453b422ebac07cc5678.jpg',
 'test/cb1ce9f296f8f6674a580209897ee2b6.jpg',
 'test/a72f76609d31cdc67067eadcae0c25cc.jpg',
 'test/9de87aba130f43ecffe870790873e219.jpg',
 'test/fce0949968f07d3aa97fe09c9a8829b5.jpg',
 'test/c909aced4dfea056bfdefd302aacdb84.jpg',
 'test/fc9f45447f2f2bd82a6072afbddfd78d.jpg',
 'test/5f96e33cb76a8432116d5ebdc0ea82cc.jpg',
 'test/87023197f17451a7e2a4bff944933f3c.jpg',
 'test/2dede0cbedc90b1f8cebd7fa22860536.jpg',
 'test/329b1ef3e91e807eb6135475ee947e30.jpg',
 'test/e6999e18a8e98f7fc33cf520d26ec521.jpg',
 'test/c769a926643b01af05e875ac984fd581.jpg',
 'test/12e5137dc606e09c78c9b27a1891ea87.jpg',
 'test/80da6ae51731dc301360a3b59e061fa1.jpg',
 'test/91d861224055c595b63e569d41426637.jpg',
 'test/b62ddfd5351da8588789b51fd8536e03.jpg',
 'test/36939316bd5dc74df7e0c33e76074408.jpg',
 'test/614ce0f96addee018f3a67a1353b17ef.jpg',
 'test/a51d3e5b0a81f025f424fa4e8b107b4d.jpg',
 'test/8e78fefe5b7612a131e66a7fe616309a.jpg',
 'test/f409b8113b2c2ab861131c4bd1c0b029.jpg',
 'test/40f063eb33c657c5acf19d7de03a77f2.jpg',
 'test/d9b0c0bc4de8b19e3452fc477ebdf5a6.jpg',
 'test/138a5ce524f0ef30818208492eb169e3.jpg',
 'test/81826a3ca9365bed0cad9483709b8ede.jpg',
 'test/2b560c80aaede000ebb101ffee26bf14.jpg',
 'test/51372c1a40ee47e4377de1c2b6a6a250.jpg',
 'test/fa85d9951d7996c4c92ce5dc41d87dcd.jpg',
 'test/28dd9823c2208e68fd2f93c152e2a627.jpg',
 'test/4b2467c1983c45f0805f2b7e3d0ffc39.jpg',
 'test/75102525aca966cdf5d1dbaf0a3f8ee7.jpg',
 'test/c7232f1365c363c18453cda2063f59a9.jpg',
 'test/e78d3997b4e7f4abc1299f81b8e3b2d9.jpg',
 'test/74b133bbc2d4ece626394bdec13d702a.jpg',
 'test/0e7c2ef54e84c8d021e1c0ea96cad523.jpg',
 'test/45668507c4840614dcb05e8b894aa6c8.jpg',
 'test/59c8495a3ce67b86d473f57e29078ec1.jpg',
 'test/0609652d9cc0aa749ec8995ca35fd370.jpg',
 'test/ffb55dbaa32939c109ef42df0668e077.jpg',
 'test/70c49ddddd138d434b33d1e2a1331a5d.jpg',
 'test/18b7dd028d5537cf5e02885bb18ae82d.jpg',
 'test/1432736589ff3278a536203f0725fcba.jpg',
 'test/c7de91df0ee7f9e871deefb4de110201.jpg',
 'test/70efe451ba9832194a9fb10d577914f9.jpg',
 'test/cfff42adc2db5fe6d452d17d13163e87.jpg',
 'test/6b7c98326b6a8ab0c0d0210a36f25246.jpg',
 'test/fa98e0dd02c4fcc5b5155a1fdaa2cb13.jpg',
 'test/8e0d7d2c224de1d5716d7a69d7854d06.jpg',
 'test/f20017c781603ca2d286361592b12dc4.jpg',
 'test/f5fb580dfd19890f200eed7010cedc3a.jpg',
 'test/443245a5bba869e596fb05d2d0eb63e1.jpg',
 'test/e24877545b682257ca77ae600df1fe37.jpg',
 'test/b79c8019e5558042de2fd1105defec28.jpg',
 'test/812b49cbbf51b0088b0a0c5b3f87958d.jpg',
 'test/2a6a5308f9d82b7d881cc02e13ebb41a.jpg',
 'test/e061b8d24e7b1324a6ac92ae81fdda19.jpg',
 'test/6aa7ea7a603a49723643c2fcf923dc1f.jpg',
 'test/fa9f99318fc70441c150beb46013e63c.jpg',
 'test/8b0bb138f43faaeafd1c52ed79ce0067.jpg',
 'test/9b0551f43a078d038a235b928cff6134.jpg',
 'test/1bc84bac2727d3f657e923df00a7bfef.jpg',
 'test/899205b9082a382bcf11ddffd0799c41.jpg',
 'test/2126c54600e6166617024e79e99b98c0.jpg',
 'test/81d8b3e2791c6ec14f67b7069874ac60.jpg',
 'test/2106ac37944c94f7c1392030bc5160b3.jpg',
 'test/c0135fc7aa154a17bfe4f626e9dd88a8.jpg',
 'test/e1f7ec4bd372612f53411026aaabf233.jpg',
 'test/dd7867245d5c104fffb5afe027e41cd1.jpg',
 'test/b7651433f6a59fa4032e0e689714c65b.jpg',
 'test/6fdc2563e0d2f4a2bb3dfd173740503d.jpg',
 'test/3e28214a2703c23fea7489ef20810dfb.jpg',
 'test/e4e57083c3b68e91760ce6f5fcd0a2f9.jpg',
 'test/8de2344aa5abe9737fa484afaac5d4c4.jpg',
 'test/dd9d222a481e6cbea922a1b601a55a38.jpg',
 ...]
log_preds, y = learn.TTA(is_test=True) # use test dataset rather than validation dataset
probs = np.mean(np.exp(log_preds),0)
#accuracy_np(probs, y), metrcs.log_loss(y, probs) # This does not make sense since test dataset has no labels
probs.shape # (n_images, n_classes)
(10357, 120)
df = pd.DataFrame(probs)
df.columns = data.classes
df.insert(0, 'id', [o[5:-4] for o in data.test_ds.fnames])
df.head()
idaffenpinscherafghan_houndafrican_hunting_dogairedaleamerican_staffordshire_terrierappenzelleraustralian_terrierbasenjibasset...toy_poodletoy_terriervizslawalker_houndweimaranerwelsh_springer_spanielwest_highland_white_terrierwhippetwire-haired_fox_terrieryorkshire_terrier
0ab2520c527e61f197be228208af481917.957505e-082.723862e-082.435847e-081.173262e-072.351215e-088.401931e-061.372760e-066.317406e-083.063393e-08...2.080939e-082.456473e-072.722122e-075.030101e-081.900935e-076.053991e-073.839476e-085.778787e-081.575098e-071.075539e-08
18ffc8a83bb9ac7884a9420c97b23940c9.668808e-082.355516e-082.087995e-076.298836e-083.269388e-082.796247e-072.439702e-082.535878e-061.824919e-06...4.051576e-083.540100e-062.388073e-079.832689e-011.823956e-072.486797e-088.325348e-089.363868e-072.608415e-073.851193e-07
29f4bbcd8a5b189514d3098516983621a4.214103e-052.804878e-044.817631e-057.178330e-031.471457e-061.140446e-051.950280e-047.519415e-061.821058e-06...5.793181e-059.164357e-051.187949e-046.772134e-065.031822e-054.772470e-056.114125e-062.762433e-055.382648e-042.682866e-05
3f77793be1597dd1ea50b22532b38bd232.568105e-072.491144e-077.142457e-071.466020e-063.212435e-058.274229e-083.600422e-086.044879e-081.201969e-07...2.627351e-063.965855e-081.560448e-066.965169e-081.856623e-071.051336e-071.763770e-072.664481e-073.316928e-089.700193e-08
4f719b425410b6eb3e3132702150affd66.095974e-062.696717e-064.131879e-066.457446e-051.191631e-033.560664e-053.274512e-062.229157e-061.317608e-06...2.345266e-061.053057e-052.322353e-054.169483e-051.918868e-055.647749e-065.437289e-065.297930e-063.867970e-065.011518e-06

5 rows × 121 columns

SUBM = f'{PATH}/subm/'
os.makedirs(SUBM, exist_ok=True)
df.to_csv(f'{SUBM}subm.gz', compression='gzip', index=False)
FileLink(f'{SUBM}subm.gz')

data/dogbreed//subm/subm.gz

Individual prediction

fn = data.val_ds.fnames[0]
fn
'train/000bec180eb18c7604dcecc8fe0dba07.jpg'
Image.open(PATH + fn).resize((150, 150))

png

# Method 1.
trn_tfms, val_tfms = tfms_from_model(arch, sz)
ds = FilesIndexArrayDataset([fn], np.array([0]), val_tfms, PATH)
dl = DataLoader(ds)
preds = learn.predict_dl(dl)
np.argmax(preds)
19
learn.data.classes[np.argmax(preds)]
'boston_bull'
# Method 2.
trn_tfms, val_tfms = tfms_from_model(arch, sz)
im = val_tfms(open_image(PATH + fn)) # open_image() returns numpy.ndarray
preds = learn.predict_array(im[None])
np.argmax(preds)
19
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
object Form2: TForm2 Left = 219 Top = 182 AutoSize = True BorderStyle = bsDialog Caption = #20851#20110 ClientHeight = 224 ClientWidth = 349 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter PixelsPerInch = 96 TextHeight = 13 object Image1: TImage Left = 0 Top = 0 Width = 349 Height = 224 AutoSize = True Picture.Data = { 0A544A504547496D6167656EF50000FFD8FFE000104A46494600010201004800 480000FFED100050686F746F73686F7020332E30003842494D03ED0A5265736F 6C7574696F6E0000000010004800000001000200480000000100023842494D04 0D18465820476C6F62616C204C69676874696E6720416E676C65000000000400 0000783842494D041912465820476C6F62616C20416C74697475646500000000 040000001E3842494D03F30B5072696E7420466C616773000000090000000000 00000001003842494D040A0E436F7079726967687420466C6167000000000100 003842494D2710144A6170616E657365205072696E7420466C61677300000000 0A000100000000000000023842494D03F517436F6C6F722048616C66746F6E65 2053657474696E677300000048002F66660001006C6666000600000000000100 2F6666000100A1999A0006000000000001003200000001005A00000006000000 000001003500000001002D000000060000000000013842494D03F817436F6C6F 72205472616E736665722053657474696E6773000000700000FFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFF03E800000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFF03E800003842494D04000B4C6179657220537461746500000002000138 42494D04020C4C617965722047726F7570730000000004000000003842494D04 0806477569646573000000001000000001000002400000024000000000384249 4D041E0D55524C206F766572726964657300000004000000003842494D041A06 536C696365730000000075000000060000000000000000000000E00000015D00 00000A0055006E007400690074006C00650064002D0031000000010000000000 00000000000000000000000000000100000000000000000000015D000000E000 0000000000000000000000000000000000000000000000000000000000000000 003842494D04111149434320556E74616767656420466C616700000001010038 42494D0414174C617965722049442047656E657261746F722042617365000000 04000000023842494D040C154E65772057696E646F7773205468756D626E6169 6C00000C230000000100000070000000480000015000005E8000000C07001800 01FFD8FFE000104A46494600010201004800480000FFEE000E41646F62650064 8000000001FFDB0084000C08080809080C09090C110B0A0B11150F0C0C0F1518 131315131318110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C 0C0C0C0C0C0C0C0C0C0C010D0B0B0D0E0D100E0E10140E0E0E14140E0E0E0E14 110C0C0C0C0C11110C0C0C0C0C0C110C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C 0C0C0C0C0C0C0C0C0C0C0CFFC00011080048007003012200021101031101FFDD 00040007FFC4013F000001050101010101010000000000000003000102040506 0708090A0B010001050101010101010000000000000001000203040506070809 0A0B1000010401030204020507060805030C3301000211030421123105415161 1322718132061491A1B14223241552C16233347282D14307259253F0E1F16373 3516A2B283264493546445C2A3743617D255E265F2B384C3D375E3F3462794A4 85B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F637475767778797A7 B7C7D7E7F7110002020102040403040506070706053501000211032131120441 51617122130532819114A1B14223C152D1F0332462E1728292435315637334F1 250616A2B283072635C2D2449354A317644555367465E2F2B384C3D375E3F346 94A485B495C4D4E4F4A5B5C5D5E5F55666768696A6B6C6D6E6F6273747576777 8797A7B7C7FFDA000C03010002110311003F00D9EAFF0058F3FA0F45E91662B3 ED0729B4E38A9CE0C6B631EAB77CB6A7BFDDBBDFB9CB1EEFF197D769ADD63F0E A2D6804EDC8DC753B0714FEF297D7AF53FE6EF4134922D6BEB7336F248C3ADC1 ADFEB2E36FB5F6D03D363EB67A83D5DA0B5E5CD756FD8E63B73BD5739DF4BFE2 93273909002A9B5CB72B8726294E625C772E1A3A3D6DDFE337EB050DB5F6F4E0 D6D20179F58F0788FD12EFBA53AFCFE97859EFC9BAB76663D57BAB69ACB5A6D6 36D2C69753BB6B772F0FCBB765170B9CDAC3C3DAD81B1C4903FACE7B3F48CF53 6FD35EE3F563FF00135D23FF0008E37FE7AAD3B1CE477A62E7397C58E842FC78 A565B3F65B7FEE5DFF00F817FE904BECB6FF00DCBBFF00F02FFD20ACEBE5F725 AF97DCA4B6A708F1FB5ADF65B7FEE5DFFF00817FE904BECB6FFDCBBFFF0002FF 00D20ACEBE5F725AF97DC92B8478FDAD6FB2DBFF0072EFFF00C0BFF4825F65B7 FEE5DFFF00817FE905675F2FB92D7CBEE4AD5C23C7ED6BFD92DFFB977FFE05FF 00A412FB25BFF72EFF00FC0BFF004827C8CB763BA0D2EB1806E73DBAE93B5C3F AFBBD2F6BBF31FFF00036289EA0C04834DA2201F689D435CDEFF00CAFA3F4D0E 208F4F7FCD7FB25BFF0072EFFF00C0BFF4826F46CAAC64E45B6876E6963F647D 173BF32AADDF9BFBC98E73FD30F18EED6D6D7B1DA3B69218FB21AD7FD07EEFF8 37D7FA4F551AF237D5FD677FD43D212B5003A1EA1FFFD037D74A6DB3EAFF0041 35D565BE9BEA791535CE22312ADA5DE90739ADDEB846F4FEAA2CD8FC4C87D55B 59E89F4AC76D8735EFD8EB6AAECFA26DF6BDBB17BA7402EFD958D1FE831FFF00 3C52AF5EEC814D86801D7069F49AED01747B03BF93B9230B377D97E2E67823C3 5B4A47ED7C07330FA95ECC90DC3C81EB6AD069B7713FA3D1DECD9B7F47F9F6AF 6FFAB6C737EAE7496B9A5AE6E1638735C20822A64820A7765F5F6BDAC6E156F0 7797BC5D0D00073AA6B370F52D75BEDAFF009AA7D3FEDFE8E15750EB8E2F6D9D 3431EC6B1E182C041DEE7EFAFD73B2BF52B6D7F99BFF00D2FF00C0A747118EC4 7DB1467CE731B228FF0023FF0074CF271BAD1CC7DD8B935331DCC6D6DA1EC9DA 47B9D921FF00E95DBF67A7FCDFA7554AB63617D69A9E1B6E6E3DB4EE71739D5C DB0E3BB6EFDACABDBFE0FF0045FA3FF8456EACEEA0E7B8D986EF4778ADAF6FD2 D6375A6A7FBBD3ABDFBFF7FD3F529F53D554AAEB7D505AD6DD8573EB35171757 8D6B7F48D0DFD1CBFF00D3585DB7D9FA3FFA6A48F2F39DD1F975F9960C840AE1 89FF00043A1974750B31ABAF1AC6D56F173DDA9835BDB35582BFE71B7FA566EF 47E87FA2557ECBF597D2683998C6DDD2F2292011BFE8325CFDADFB3EEFA4CDFE B33E9FBD00F58EAC1A76625AE73751BF1EE01DB8FD0FD1B5DB3D36FB54ABEB5D 4F7D86CC2BBD32EFD18FB3DA5CD0056358FA7EAD9EB7FC4FFC27F369E794C9BE 9FE32064A15C237EB175B1D9736963720B5F701FA4734434BBBED6FEEA24797E 0B11BD73AA7A8E166058CA9A5FFA414DEF901AFF0049DE9B2BDFB9F67A6DF4FF 00D6B73D6BAA3880306CA81B0897537388AC89ADD0D66DDFFE9DBFD7F492FBAE 5EC3FC60B0D1FF0079DA823809F558DFB6BA8B8D6060DAC2F732669B4EC07D3F 5C3BDAC6BB67E9FD37FF00C5AD997264F14A15C55AF8A95AA0DC3DD57F59DFF5 0F4597215C4EEABFACEFFA87A62BB7987FFFD1EFFA00FF0025637FC463FF00E7 8A55CCA190316E38B0723D377A21DC7A9B4FA5BBF93BD52E803FC958DFF118FF 00F9E2957AC2595BDED697B9AD243072481F453C7462FA752D02EEBD550D6D55 579560681BEE22A25D0E739D6368DEC6377B5B57E8FF00D27ABF98AD603F39F4 819B57A57000B88735C097171D8DD9FE8BDBFD740FDA191FF7148D0438FA9067 F3DB14EEF4D9F49FEA6C7A3606637371C5DE9BE87886D955AD2D731FB5AF733D C1BBB6EF4E375B01E215F46CBB4697193009D049F905887ACF54D00C1B0CB490 7D1B843C6ACADFECFA36FD0F53FC12DB85472F3B2687B9B5623AF6B641734906 767AADF6966D731DF43D4ADFEC4EC5288BB809F99E15342DEADD49EDA5D5E3DD 53C96EF61C6B8B00DCDF53D577A7659F43F9BF494ECEB5D4053BEAC0B5D692D8 A9F4DCDD34F53DEC63FF00B0AD3BA866B5CF03A7D8E0D2367B84B9BB9AC7585B 1ECFD1BFD66B3DEFFF0007FE97D3B943DD6D2DB1CDF4DCEE5BAF8C7E7863FDDF 4BDEC521C98C55E21BFEF7FDEAB572ECEB599FA4F4B0AF31B8D7BF1EE00C7D0F A3BBE97B7F319FF43DFAD493652CB082D2F68716905A4489D58FF733FA8E4F09 E145394481C31E1FADABE8BED4A3CD3425098AFA2F1E68578F755FD677FD43D1 210AE1EEABFACEFF00A87A4AFA750FFFD2EFFA047ECAC6D3FC063FFE78A5683C B9AC7398DDCE0096B4E8090346EED76ACCE938545BD2B06C707EE762D125B658 C062B60FA35BD8D56FF67637859FF6F5DFFA553F461F559D06E7F97CAE45FD53 AEE2F4DC8CABDB51155948A2F6D6E3BDAE7EDBBD6A03F7B3E932AF52B6FF00C3 7A499FD67AEB72EEDB8ECB30EBA0DB5118F702F228391BBED25FE8D6C76537D2 F4BD3DEB63F67E38323D59F1F5AEFF00D2A97ECFC7E7F4B3CFF3D77FE954FE38 EBE909B9761F6FFE828BA5E4E65B5467006D2E743EBA6CA99B40ACC39B7BACF7 6FB1EC6D8CF65DB3FC1FD05937757FACB5F52CFC718D5371F16B7DB5DAEAECD9 B06D750F75EFF468B1CEAFD5F5EBAEFF00FCF167A9B7FB3F1CF3EAFF00DBD77F E954BF67E3FF00C2E9C7E9AEFF00D2A909C4124C41B47ABB0FB7FF0041724758 EA4DA996653A9A00C8B197FA759B1AC631CC7D7EB3ACB6BF49D918EEFD1BFF00 C2FDA31BD1DF65B5A966F53EB5553D45D8F532E7E239A696FA564FA7B69B2EDD B7D4F52ED8FB7D0AEB6FFD47E9357EC144CCDB3FF1D77FE954DFB3F1F4FE774E 3F4D77FE954B8E37F2A6E5D87DBFFA0B88CEB3F586BE9C723271EA65B5E39B9D BAB7B41DA5DEF75561A2DA37376B3ECEEFD36FFF00B6D17F6A75C2C2DAE963AD DF496915EF1E9BDBFA5ACFE9B199EAB1FB3F4BBFD2F4BF9BFD2D9E8D7ADFB3F1 C71EAFFDBD77FE9548E05079F54FFD7AEFFD2A8F1C7F7022E5D87DBFFA0B8F47 5AEA570A1EEA76631A6B79BC35D2EB76BFD66DB4BEADD8D4FDA2A7D3FBFF00CC FA7633D6573AAE5756C3A58EC5345D6BC3CFA6FADCD2E2D639EC6D42BB5EF73D D77A6DD9B15DFB0513336CFF00C75DFF00A5530E9F8E341EA89E7F4D77FE9543 8E36088E9D9572EC3EDFFD05CE7753EAA2CB1A31D8E030D9631C03F61CA2321C E66ED9ECC5FD037F4BBB67FDB8ADE35B92F01B94C2DB2A7ED93B759A77B8CD7F 4BDCEFA5E9D3FF00135237ECFC7FF85F1FE7AEFF00D2A9DB854547D468797341 DBBACB1E048D7DB63DED40CA2468295EAD341BFF002FD17FFFD3F43E8F2DE918 2D70DAE18D482D76841F4D9A16957370F10BE5B493988EE5FA9370F1096E1E21 7CB6924A7EA4DC3C425B87885F2DA4929FA9370F1096E1E217CB6924A7EA4DC3 C425B87885F2DA4929FA9370F1096E1E217CB6924A7EA4DC3C4267386D3A8E0A F9712494FF00FFD9003842494D04211A56657273696F6E20636F6D7061746962 696C69747920696E666F000000005500000001010000000F00410064006F0062 0065002000500068006F0074006F00730068006F00700000001300410064006F 00620065002000500068006F0074006F00730068006F007000200036002E0030 00000001003842494D04060C4A504547205175616C6974790000000007000701 0100010100FFEE002141646F6265006440000000010300100302030600000000 0000000000000000FFDB00840001010101010101010101020101010202010101 0102020202020202020302030303030203030404040404030505050505050707 0707070808080808080808080801010101020202040303040705040507080808 0808080808080808080808080808080808080808080808080808080808080808 0808080808080808080808080808FFC200110800E0015D030111000211010311 01FFC4010F00010001040203010000000000000000000008010607090205040A 0B03010100010501010100000000000000000000060102030405070809100000 0406020105000300030101010000000203040112130506071408151123161809 240A1A21171922252A1100000502020506090904060407110000010203040506 070011D11233950821D21314341531415193351636D617618122D39496979809 71232418C1324262442591B17426A1526465273839F0E182C243A384455575C5 D556B637780A1200020003050308060705070303040300010200110321311232 044192935191D1E142A21305617122D23314F081A12343D394B1C152A3066272 8273243415536344F18316B2B32535E25455FFDA000C03010102110311000000 F695EE79BC8AE8C615B29473AB82BC96D2B7ADAADB1900000000000000000000 0000B8706DE4DE64C3519DC8064FE17B1FA05C67DC3C6BF173B2EB870F5EDFDC E471B0C6F60BEB443DCC647E18A80000000000000015280000008C9BB09CEFC5 F42D4F74A19E6433E9CF99179D7D9BB0CF2EFB7ED2CB14889E87F394978AFB76 14EC79D74D978BBD4F4EF86BE8B733F9E00000000000000028B7F4B150000002 2EF42119DF89E85A8DECC0BCA87FD2FF0031EF33FB57603E75F675AFBD118C72 7F1994B14F76C71DA85DB9B7C3DCD7ABFE797D17667F37000000000000000789 76B79187695000000461E841F3A713D0751DDE817950DFA5FE56918F7BD9FF00 927DFD8D7A5E7B1BA4FE4D2F61DF41E36D9825D19241B81F5EFCDAFA2ACD3E70 000000000000000F2706EE2DD3E3D58F20F53A7D3EBEBF75B39A956138F712D2 D5D59352B9308C5BD09CEFC3F44D4FF4A17E742FE9DF973C2BEA4C63D0844DB8 07D676B6FC5BBFC3D85704719278A7B39C87C73E859E83F25FEF8B6C00000000 000000B691020F1089D1686F7593663DC763795BAFD8BBF6B7E604C6650FA1F0 BDAEFAE7AD5558BBD084677E27A16A37B302F3223F4AFCC3BCCBED1B4FAB0C95 F0FF00A6712767CC670C0BEC58413CF8CF13F73CCFD93647E13F45B9AFCF1E2D FAC30AE948F346F472C8C1BF66EBF57356EC6CAAF71B585F4A479AB7637456A0 AA800155DFBE0CC5CBB1AB552B42B6DA5DCAB55D58C3D083E74E27A0EA3BBD02 F3617F487CC4FCD3ED0C3321F308BD2CF9D36E9E31FA7F9479BE83073D03E37E B3272FD94FBFE21F4539EFCE15A8684FCF7EAC835C3F51C33A327EE2ED5C9BB9 C1CA1B1CAF681F55F86352B0EF7ED7FF0003D6F0C68C964C7520F86B42513A3B BE57BB79EFCCA000000000008C5BD09CEFC3F44D4FF4A17E544FE94F97579EFD 5F91F8FE8F1026FF0031CBB89FD236074621D8F3F77F0E83D97E45F3EFD0DA71 F2AD41C285F4A15A5D5B6DE37D3F4A5DF9D0B694B952B6D175792B5000000000 008BBD084677E27A16A37B302DACE84CA26D9B2ADDCB1D9466E375A39531E59A DB25363580038D0ADDC9651771B5CAB4AD6945CB2DADF50001C695E55A0A5B75 6EB400001187A107CE9C4F41D4777A05B90D59694023776B24569524670A9646 EAF7D2A74999DDE1A5295E9335647472910FDE39D113DB3565DF8BED5EF1CCB8 4A7BAFD2EF52B96FEE79B66528867A64A595DDB7B9D266F80E6B23BB6D9120B2 3D7A3E29ADE15B565C82DC233CD4DA3FC9DD7E54A0000118B7A139DF87E89A9F E942F731CF99D56811A645656974349C63BE39F58E323A5BD9EEBEF4F1E2AEAD F626FD659443248393EA6B5FEA7D1E8F7F1C88F34DBC233DD3EF74725ED1DBF1 5CCF1670806CD8FDCC5D2F4298A261AB37BC0BA7173D774FBAD0A77BCECBDD68 DDCADAE29986B7B117E6A776A00001177A108CEFC4F42D46F6605B96D497D002 94AD15E55B4529756CB179552DA555E369752AA51756B42EA528AD2A72A80E16 5395EAAA00A5945F7150000230F420F9D389E83A8EEF40B721AB2D280530B46F EE19271C2A97CE8D306F6E9B1EF3BA56E0023BFA1E28F3E99AF9B20F9F174A71 6518A67847EF1CDCE1E7DB99B2077F4BD3BAF3E0BA5E85BCAB5B27B96C9EF25C B7CF1EF0000000008C5BD09CEFC3F44D4FF4A17B98E7CCEAB40E2A6AFF00D3DD D60C7832416628EAD7619E6FB7396158EA01A5DFB8B8B8AA67A91E7D2B1557C8 6F34BA3EFA3AF3E252F5E0DD654871DBFBF86457986EE2F9962BD63F76C53E62 EB4E2F07DE0000000008BBD084677E27A16A37B302DCB6A4BE80000038D1CAA0 05294A5694AD00AD972AA5D6800052BCE972A00000000461E841F3A713D0751D DE816E43565A50052DE2BAB456AE0AF3515000528514A9452B5E455454000000 0000000462DE84E77E1FA26A7FA50BDCC73E6755A044E925F13269AF1CA475CE 7C1ADF3CDA4CC8765CF3C4A2A006A7BD56DC11DEB7A3D8BA29CBB0EC0BCFAE83 339B772FE2BB33B2114A800000000000022EF42119DF89E85A8DECC0B72DA92F A002CA44D9662EF75EE295ADBDEE0BF3BF12F2A008992BC5DFEA1756FAE7DDD0 6C5BD1ECD32BF2725FDA256A000000000000230F420F9D389E83A8EEF40B721A B2D2805296C3498DD32E1B5D7FCF6ECE5C177586DA5D4B0F7A99DF8175F5AF4A 529AA7F55AE748FDF236376F45B148B12AC9DDE0749B34CE71FAC5097D99D381 758BD05F3A16E0EEF272C0EBDC6BD39298A3B15EEB0E2C5BD5CB7C73D957934A D55A3BDD6AC5297D99CF857DAFA908CEFC3F44D4FF004A17B98E7CCEAB40B7AF AFACFF00D3B82F2D6C38DB737F60BE755D177BEEBEDDBC72FC0B22C3B03F3DAC EC81E5EFB52EF4E8FB47972BA259BA4CC957137978B6F6E9E3976AABD652B223 77AF5FD25CB95D0FBAD5CBD294D17C189BAF499709BF509ECB83D8A7E6ED8F5D CFA3ECDE97826591B1EB656436BEB37F52EA672E1D6CEDCD99D101CBAC0F52C1 3920F66CD3C5E219DF89E83A8DED407727A531AD6800D6DFA3E3D91F9BD7587E 9D97A5CF5A5A95D13AE24EC62EF305738F0F1674E266D297B5D939E077D8BD0A 7E7763E56DFF00A5B93B8C78739701AC7F51ACE78164C1121C395B8F5B1B7EB7 DF3EFA5D6D8FBB75F3A16F45B095714658E6DDADFF0046B6F8E7AFAD25F5CEA7 439EAA53C4E7C273BF17D135FF00BDC790FD189D2F0000000000000000000000 00000002E5D6DBC97CD9AC42B6E9F17E00000000000000000000000000000001 6A6B6D42BCF8A7BE5D700000000000000000000000000000016B6AECC28DDC13 D736A8000000000000000000000000000000B634B7A20DB927C5F80000000000 0000000000000000000005A9ADB511EDDA9777E0000000000000000000000000 0000001D0E0D8FFFDA00080102000105006B131C419A911C338E128388A0E1A8 388A0E228386A0E22901C15070541C15070541C15070541C15070541C1507054 1C15070541C15070541C15070541C15070541C15070541C15070541C15070541 C15070541C15070541C15070541C15070540BB73A643A9EF58207E55C5C28820 4C9EE911F21BB0864774808E55728286CA2E529B21BB147C8AE518DA6F0E175E 04504AA095412A825504AA095412A825504AA095412A825504AA095412A82550 4AA095412A825504AA0F4504AA095412A825504AA095412A825504AA04E07E21 E6AD638179795C0A461B05694F141E9932367652622B4553972290D7AC94E661 88BF8AEFACE6246EBED8F6C7B63DB1ED8F6C7B63DB1ED8F6C7B63DB1ED8F6C7B 63DB1ED8F6C7B63DB1ED8A29C448414C829905320A6414C829905320A6414C81 2293886816AD8CFF00C9CB8F08DB363DA0EE57E73661150E95C9D60F6A311922 B70611BC9E0A632C6B5CECE9FA5CA7809E027809E027809E027809E027809E02 7809E027809E027809E027809E027809E027809148881C4E271389C4E271389C 4E125BF8873FBB629B919724A1ADD794D45AE2F1A2447D8A32AB7566DCC80B6B 891BFB660C11346ED669BC9D6158561585615856158561585615856158561585 61585615856069435BA4155D8DD20E6331E01C2EA109EAA098E186449B9797AC AD364A7B83DC09C0FC43C0F5AC702F2F2C4938DBAEE7822E4EC4912B4737083B 42E2D95899C3039D7B744CF71FB1BB44F6062542E5C8309C4E271389C4E27138 9C4E271389C4E271389C4E271388AB088C99AAE82B9263856F1B2E3BEAE7C39C AC325B6A4733DC7CDCA6AD0D0BD65281D51210532048A4E21A05AB633FF272C5 3D6DDB259A4BAD75C0D91112DB5A40CBDD99ACCA0DD14C5EAE0A22EB1276E947 D6C3FF00FAB52039911CC88B85E526C9722215BA1086637A4DCA3CA117718439 639616BD249AD0771F43BCF4117511175E839911CC88E644732239911C8F5115 044FFF00337A0AB015455FF99A02068081E027092DFC439FDDB14DC8CCA078DB 3356EA3BBA256BBB154244D0859943A56B3B23A0A5EB1D72ECB648413BDDA211 8DEA153D3DC1EE0CA49176EEDB775928DA4AA2B1C3D53A231DB83A51C63940CC 2552033059649122891AE18D9DC393DB16B838571572E145F0322C7B77A283DC 1EE0F707B83DC1EE0F707B83DC1EE0F707B83DC1EE0F702703F10F03D6B1C0BC BC8534F87775AD8F22DE36D21C9975B8D049E5B508C57B1462FDAD85C1ACF0B1 B37561788B8B8C08414C8299045327A5320A641226209905320908299200C942 222910532090A2091048414C829905320A6414C829905320A6414C829905320A 6414C82990532048A4E21A05AB633FF254810F08A494445346302B64045BA020 DD1145088E3A008924434E271389C4E22B0AB11505688ADEA2B8A82B44416F41 389C4E271389C551389C561389C4E271389C4E27092DFC439FDDB14DC8F4507B 83DC1EE0C36CC5B8DE6CDAB2F2653E1574E2975B5FA246D855D1470D700BCAB1 6B84DD545DBE1375517360179239B9DB9D335F59EAC617BC3F09EA05AD6B6DCB ADF726ADB5D616C1652F9A35AC5B25D7941962F9F74BF34B1C35D68E60F323B8 E977B6F6B986817D686D98756722B55CD875D9CDC9D17583C51D627A3EE373B6 D8FADB77B9DFDB7541F5A5CA1A72ECA6627EBEDDA2E701EB3B1B8DCBDC1EE0F7 07B83DC1EE0F707B81381F88781EB58E05E5C8414C829905320C2EEE85BAF588 DD9060EA195DA667D97B35432D8AC02D78B6DCEDACF62342B85AEE864CB5DF32 B7317EDF29B73AB96BD4AD0F30DB86C8C71EDD73579AFDBB8B0E2DAD11B3611B 518B0BA4363DB51B93C65AC1B59F2AD898F3FB97371BF8F67777C26E845B61D9 92BF5D7715914BAEA8D656660FACF9CE3964CA6FB98E3175BBE4578C255B3DB6 E989A1976AFC92CF8AA192EC9B1BFBC48414C829905320A6414C82990532048A 4E21A05AB633FF002671389C4E2B8AE27138AD015040F010561011521E953D05 415FFE2272C44148082B0115602B145580AB013C04F013C04F013C04F013C04F 013C01941504E271389C4E27138496FE21CFEED8A6E47A283DC1EE0F704A719E 6BF6F683975B5FA24430ABAA8BE3382AEE2E531A03D4E3DC1EE0F70615ACEEB9

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值