def model_coor(model_statis: list, label, thresholds, val_index):
    _, val_files = data_loader.get_k_fold_files("1.txt", val_index, [config.DATA_TYPE_ORIGINAL])
    y = data_loader.get_labels(val_files)
    y = np.array(y, np.int8).reshape((-1, 13))
    model_names = []
    model_predicts = []
    df = pd.DataFrame()
    for i in model_statis:
        weight_path = i[0]
        name, info = path_2_model_name(weight_path)
        if not os.path.exists(weight_path + ".predict.npy"):
            continue
        predict = np.load(weight_path + ".predict.npy")
        if thresholds is not None:
            for l in range(len(thresholds)):
                threshold = thresholds[l][weight_path]
                predict[:, l] = predict[:, l] > threshold

        predict = predict.astype(np.int8)

        try:

            if label is not None:
                predict = predict[:, label]
                f2 = fbeta_score(y[:, label], predict, beta=2)
            else:
                f2 = fbeta_score(y, predict, beta=2, average='macro')
            assert (f2 - i[1]) / i[1] < 0.01

            model_predicts.append(predict)
            model_names.append(name)
            df[name] = predict.flatten()
        except:
            print(weight_path)
    return df.corr()
def get_label_dic():
    data_list1 = data_loader.get_labels(data_loader.list_image_name(DATA_FILE))
    data_list2 = data_loader.get_labels(
        data_loader.list_image_name(DATA_COLOR_FILE))
    data_list = data_list1 + data_list2
    data_dic = {}
    for _data in data_list:
        data_ = str(_data)
        if data_ not in list(data_dic):
            data_dic[data_] = 1
        else:
            data_dic[data_] += 1
    with open("data_dic.txt", 'w') as f:
        for k, v in data_dic.items():
            log = k + " : " + str(v) + '\n'
            f.write(log)
Example #3
0
def do_statistic():
    images = data_loader.list_image_dir(path.COLOR_AUGMENTED_PATH)
    augment_images = []
    for image in images:
        if "original" not in image:
            augment_images.append(image)

    labels = data_loader.get_labels(augment_images)
    labels = np.array(labels)
    data_metric.label_analysis(labels)
def show_label_calss_bar_per_epoch(train_file, record_dir):
    labels = data_loader.get_labels(train_file)
    labels = np.array(labels)
    df = pd.DataFrame(labels, columns=get_columns())
    _x = df.sum(axis=0).tolist()
    _y = label_class_name.copy()
    for i in range(len(_y)):
        _y[i] += '(%d)' % _x[i]
    plt.figure(figsize=(15, 6))
    sns.barplot(y=_y, x=_x, orient='h')
    record_save = record_dir + '_' + 'label_calss_bar'
    plt.savefig(record_save)
def get_frame(file):
    data = data_loader.get_labels(data_loader.list_image_name(file))
    data = np.array(data)
    df = pd.DataFrame(data, columns=get_columns())
    return df
Example #6
0
import sys
import numpy as np
import pathlib

sys.path.append(os.path.abspath("../"))
import config
from util import data_loader
from util import data_visualization as dv
from util import keras_util
from util import path

y_val = {}
for i in range(1, 6):
    val1_train_files, val1_val_files = data_loader.get_k_fold_files(
        "1.txt", i, [config.DATA_TYPE_SEGMENTED], shuffle=False)
    y_val[i] = np.array(data_loader.get_labels(val1_val_files), np.bool)


def check_invalid_model(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            if "model" in file and "val" in file and ".py" in file and "pyc" not in file:
                record_dir = os.path.join(os.path.join(root, "record"),
                                          file.split("_")[0])
                record_dir = os.path.join(record_dir,
                                          file.split("_")[1].split(".")[0])

                weight_path = os.path.join(
                    record_dir,
                    "%sweights.%03d.hdf5" % (str([str(j)
                                                  for j in range(13)]), 3))