Exemple #1
0
        #'mean_categorical_crossentropy': mean_categorical_crossentropy})
        'flatten_categorical_crossentropy':
        flatten_categorical_crossentropy(classes=21)
    })
print(model.summary())

for fn in dataload.filenames[:10]:
    x = dataload.load_img(fn)
    x = datagen.standardize(x)
    print(x.min(), x.max())
    X = x[np.newaxis, ...]
    label = dataload.load_seg(fn)
    label = np.squeeze(label, axis=-1).astype('int')
    y_enc = np.eye(21)[label]
    y_true = y_enc[np.newaxis, ...]
    result = model.evaluate(X, y_true)

    y_pred = model.predict(X)
    print(np.unique(y_true), np.unique(y_pred))
    loss = mean_categorical_crossentropy(K.variable(y_true),
                                         K.variable(y_pred))
    print(y_true.shape, y_pred.shape)
    print(result, K.eval(loss))

    pred = np.argmax(y_pred, axis=-1)
    pred = pred[..., np.newaxis]
    pred = np.squeeze(pred, axis=0)
    print(np.unique(label), np.unique(pred))
    print(np.size(label), np.sum(label != 0))
    dataload.save(x, pred, fn)
Exemple #2
0
import datetime
import numpy as np
from keras.models import load_model
from voc_generator import PascalVocGenerator, ImageSetLoader

import yaml
with open("init_args.yml", 'r') as stream:
    try:
        init_args = yaml.load(stream)
    except yaml.YAMLError as exc:
        print(exc)

datagen = PascalVocGenerator(**init_args['pascal_voc_generator']['test'])
dataload = ImageSetLoader(**init_args['image_set_loader']['test'])

weights = 'weights.h5'
model = load_model(weights)

for fn in dataload.filenames:
    x = dataload.load_img(fn)
    x = datagen.standardize(x)
    y = model.predict(x)
    dataload.save(x, y, fn)