def evaluate(): # Clear stats stats.clearStats(True) # Parse Dataset cfg.CLASSES, TRAIN, VAL = train.parseDataset() # Build Model NET = birdnet.build_model() # Train and return best net best_net = train.train(NET, TRAIN, VAL) # Load trained net SNAPSHOT = io.loadModel(best_net) # Test snapshot MAP, TIME_PER_EPOCH = test.test(SNAPSHOT) result = np.array([[MAP]], dtype='float32') return result
# Early stopping? if epoch - stats.getValue('best_epoch') >= cfg.EARLY_STOPPING_WAIT: log.i('EARLY STOPPING!') break # Stop? if cfg.DO_BREAK: break except KeyboardInterrupt: log.i('KeyboardInterrupt') cfg.DO_BREAK = True break # Status log.i('TRAINING DONE!') log.r(('BEST MLRAP:', stats.getValue('best_mlrap'), 'EPOCH:', stats.getValue('best_epoch'))) # Save best model and return io.saveParams(stats.getValue('best_net'), cfg.CLASSES, stats.getValue('best_epoch')) print('in training vish') return io.saveModel(stats.getValue('best_net'), cfg.CLASSES, stats.getValue('best_epoch')) if __name__ == '__main__': cfg.CLASSES, TRAIN, VAL = parseDataset() NET = birdnet.build_model() net_name = train(NET, TRAIN, VAL)