################################################## for run in range(RUNS_IN_FOLD): print('\nFold {0} runs {1}'.format(FLAGS.fold, run)) # use model check point callbacks bst_model_path = '../data/output/model/nn_fold{0}_run{1}_{2}.h5'.format(FLAGS.fold, run, FE_TYPE) model_checkpoint = ModelCheckpoint( bst_model_path, monitor='val_acc', mode='max', save_best_only=True, save_weights_only=True ) model = get_model() # st(context=21) hist = model.fit_generator( generator=train_generator.generator(FE_TYPE), steps_per_epoch=train_generator.steps_per_epoch, epochs=epochs, validation_data=(X_valid, y_valid), callbacks=[lr_plateau, model_checkpoint, early_stopping, csv_logger], shuffle=True, ) gc.collect() bst_acc = max(hist.history['val_acc']) print('\nBest model val_acc : %.5f\n' % bst_acc) model.load_weights(bst_model_path) # os.remove(bst_model_path) # st(context=21) preds_test += model.predict(X_test, batch_size=batch_size) / RUNS_IN_FOLD preds_valid += model.predict(X_valid, batch_size=batch_size) / RUNS_IN_FOLD
preds = np.zeros((len(fname_test), n_classes)) for run in range(RUNS_IN_FOLD): print('fold {0} runs {1}'.format(FLAGS.fold, run)) # use model check point callbacks bst_model_path = './tmp/nn_fold{0}_run{1}_{2}.h5'.format(FLAGS.fold, run, FE_TYPE) model_checkpoint = ModelCheckpoint( bst_model_path, monitor='val_acc', mode='max', save_best_only=True, save_weights_only=True ) model = get_model() # st(context=21) hist = model.fit_generator( generator=train_generator.generator(FE_TYPE), steps_per_epoch=train_generator.steps_per_epoch, epochs=epochs, validation_data=valid_generator.generator(FE_TYPE), validation_steps=valid_generator.steps_per_epoch, callbacks=[lr_plateau, model_checkpoint], shuffle=True, ) gc.collect() bst_acc = max(hist.history['val_acc']) print('best model val_acc : {0}'.format(bst_acc)) model.load_weights(bst_model_path) # os.remove(bst_model_path) preds += model.predict(X_test, batch_size=256) / RUNS_IN_FOLD del model gc.collect()
augmentation_prob=50, ) train_generator.steps_per_epoch = train_generator.steps_per_epoch * 2 valid_generator = AudioGenerator( root_dir= '../data/input/train/audio/', k=FLAGS.fold, file_temp=VALID_SPLIT_FILE_TEMP, ori_batch_size=batch_size, train_or_valid='valid', ) preds = np.zeros((len(fname_test), n_classes)) for run in range(RUNS_IN_FOLD): print('fold {0} runs {1}'.format(FLAGS.fold, run)) model = get_model() model.fit_generator( generator=train_generator.generator(), steps_per_epoch=train_generator.steps_per_epoch, epochs=epochs, validation_data=valid_generator.generator(), validation_steps=valid_generator.steps_per_epoch, # callbacks=[lr_scheduler], shuffle=True, ) gc.collect() preds += model.predict(X_test, batch_size=256) / RUNS_IN_FOLD del model gc.collect() labels_index =np.argmax(preds, axis=1) del X_test gc.collect()