как сохранить результат обратного вызова в керасе - PullRequest
0 голосов
/ 30 января 2020

У меня есть обратный вызов для точности и отзыв каждого класса, как показано ниже:

class ModelMetrics(keras.callbacks.Callback):
    def __init__(self,x,y):
        self.x = x
        self.y = np.argmax(y, axis = 1)
    def on_train_begin(self, logs={}):
        self.recall = []
        self.f1s = []
        self.precision = []
    def on_epoch_end(self, epoch, logs = {}):
        y_hat = np.asarray(self.model.predict(self.x))
        y_hat = np.argmax(y_hat, axis = 1)
        report = classification_report(self.y, y_hat, output_dict = True)
        self.precision.append(precision_score(self.y, y_hat, average = None))
        self.recall.append(recall_score(self.y, y_hat, average = None))
        self.f1s.append(f1_score(self.y, y_hat, average = None))
        print('precision_0:{0}, precision_1:{1}, precision_2:{2}, precision_3:{3}, precision_4:{4}, precision_5:{5}'.format(self.precision[-1][0],self.precision[-1][1], self.precision[-1][2], self.precision[-1][3], self.precision[-1][4], self.precision[-1][5]))
        print('recall_0:{0}, recall_1:{1}, recall_2:{2}, recall_3:{3}, recall_4:{4}, recall_5:{5}'.format(self.recall[-1][0],self.recall[-1][1], self.recall[-1][2], self.recall[-1][3], self.recall[-1][4], self.recall[-1][5]))
        print('f1_score:',self.f1s[-1])
        return

, и он показывает результат после каждой эпохи, как я могу сохранить результаты в истории в файле CSV в конце?

...