def on_epoch_end(self, epoch, logs=None): modelName = os.path.join( self.foldPath, self.category + "_weights_" + str(epoch) + ".hdf5") keras.models.save_model(self.model, modelName) print "Saving model to ", modelName print "Runing evaluation ........." xEval = Evaluation(self.category, None) xEval.init_from_model(self.model) start = time() neScore, categoryDict = xEval.eval(self.multiOut, details=True) end = time() print "Evaluation Done", str( neScore), " cost ", end - start, " seconds!" for key in categoryDict.keys(): scores = categoryDict[key] print key, ' score ', sum(scores) / len(scores) with open(self.valLog, 'a+') as xfile: xfile.write(modelName + ", Socre " + str(neScore) + "\n") for key in categoryDict.keys(): scores = categoryDict[key] xfile.write(key + ": " + str(sum(scores) / len(scores)) + "\n") xfile.close()