def snapshot_pre(self, submit, imagePath, type_image): scores_predict = [] for name in tqdm(submit['Id']): path = os.path.join(imagePath, name) image = data_generator.load_image(path, self.input_shape + [self.div], type_image) score_predict = self.model.predict(image[np.newaxis])[0] scores_predict += [score_predict] return scores_predict
def snapshot_val(self, dataset_info, type_image): scores_predict = [] for idx in range(len(dataset_info)): image = data_generator.load_image(dataset_info[idx]['path'], self.input_shape + [self.div], type_image) score_predict = self.model.predict(image[np.newaxis])[0] scores_predict += [score_predict] return scores_predict
def predict(self, submit, imagePath): predicted = [] for name in tqdm(submit['Id']): path = os.path.join(imagePath, name) image = data_generator.load_image(path, self.input_shape) score_predict = self.model.predict(image[np.newaxis])[0] label_predict = np.arange(28)[score_predict >= 0.2] str_predict_label = ' '.join(str(l) for l in label_predict) predicted.append(str_predict_label) submit['Predicted'] = predicted submit.to_csv('submission.csv', index=False)
def eval(self, dataset_info, type_image): labels_true = [] scores_predict = [] for idx in range(len(dataset_info)): image = data_generator.load_image(dataset_info[idx]['path'], self.input_shape + [self.div], type_image) labels = np.zeros(28) labels[dataset_info[idx]['labels']] = 1 labels_true += [labels] score_predict = self.model.predict(image[np.newaxis])[0] #label_predict = np.arange(28)[score_predict>=label_threshold] scores_predict += [score_predict] return labels_true, scores_predict
from tensorflow.keras.callbacks import LambdaCallback from tensorflow.keras.callbacks import Callback from tensorflow.keras import metrics from tensorflow.keras.optimizers import Adam from tensorflow.keras import backend as K from tensorflow import keras import tensorflow as tf from kaggle_data import data_generator from uitls import f1_loss, f1 model = load_model('working/model_train2.h5', custom_objects={ 'f1_loss': f1_loss, 'f1': f1 }) submit = pd.read_csv('data/sample_submission.csv') predicted = [] for name in tqdm(submit['Id']): path = os.path.join('data/test/', name) image = data_generator.load_image(path, INPUT_SHAPE) score_predict = model.predict(image[np.newaxis])[0] label_predict = np.arange(28)[score_predict >= 0.2] str_predict_label = ' '.join(str(l) for l in label_predict) predicted.append(str_predict_label) submit['Predicted'] = predicted submit.to_csv('submission.csv', index=False)