Example #1
0
def test_batch_train_sequence_model():
    data_dir = './data/'
    data = load_data.load_amazon_reviews_sentiment_analysis_dataset(data_dir)
    acc, loss = batch_train_sequence_model.batch_train_sequence_model(data)
    assert acc == pytest.approx(0.61, 0.02)
    assert loss == pytest.approx(0.89, 0.02)
    # Train and validate model.
    history = model.fit_generator(
            generator=training_generator,
            steps_per_epoch=steps_per_epoch,
            validation_data=validation_generator,
            validation_steps=validation_steps,
            callbacks=callbacks,
            epochs=epochs,
            verbose=2)  # Logs once per epoch.

    # Print results.
    history = history.history
    print('Validation accuracy: {acc}, loss: {loss}'.format(
            acc=history['val_acc'][-1], loss=history['val_loss'][-1]))

    # Save model.
    model.save('amazon_reviews_sepcnn_model.h5')
    return history['val_acc'][-1], history['val_loss'][-1]


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--data_dir', type=str, default='./data',
                        help='input data directory')
    FLAGS, unparsed = parser.parse_known_args()

    # Using the Amazon reviews dataset to demonstrate training of
    # sequence model with batches of data.
    data = load_data.load_amazon_reviews_sentiment_analysis_dataset(
            FLAGS.data_dir)
    batch_train_sequence_model(data)