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)
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
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))