Exemple #1
0
def model_test():

    hparams = create_or_load_hparams(hparams_file=HFILE, default_hparams=None)
    config = tf.ConfigProto(log_device_placement=hparams.log_device_placement,
                            allow_soft_placement=hparams.allow_soft_placement)
    input_vocab = load_obj(ROOT_PATH, 'general_vocab')
    label_vocab = load_obj(ROOT_PATH, 'mpss_pl_vocab')

    with tf.Session(config=config) as sess:
        cnn = TextCNN(hparams=hparams,
                      mode=tf.contrib.learn.ModeKeys.TRAIN,
                      source_vocab_table=input_vocab,
                      target_vocab_table=label_vocab,
                      scope=None,
                      extra_args=None)

        saver = tf.train.Saver(tf.global_variables(),
                               max_to_keep=hparams.num_checkpoints)
        chpt = tf.train.latest_checkpoint(hparams.restore_checkpoint)
        if chpt:
            if tf.train.checkpoint_exists(chpt):
                saver.restore(sess, chpt)
                print("Model has been resotre from %s" %
                      (hparams.restore_checkpoint))
        else:
            print("No pre-trained model loaded, abort!!!")
            return

        sess.run(tf.local_variables_initializer())

        predict_result = cnn.predict(sess=sess,
                                     input_txt=TEST_EMAIL,
                                     input_vocab=input_vocab,
                                     label_vocab=label_vocab)

        print("Predicted result is %s" % predict_result)
Exemple #2
0
sess_config.gpu_options.allow_growth = True
sess_config.gpu_options.per_process_gpu_memory_fraction = 0.9
sess = tf.Session(config=sess_config)
init = tf.global_variables_initializer()
sess.run(init)
ckpt = tf.train.get_checkpoint_state(checkpoint_dir)
if ckpt and tf.train.get_checkpoint_state(checkpoint_dir):
    model.restore(sess, ckpt.model_checkpoint_path)
else:
    print("no checkpoint saved")
    exit()
test_data = list(zip(test_docs, seq_len, test_labels))
batches = data_util.batch_loader(test_data, 32)
total_preds = []
for batch in batches:
    batch_docs, batch_seq_len, batch_labels = zip(*batch)
    preds = model.predict(sess, batch_docs, batch_seq_len)
    total_preds = np.concatenate([total_preds, preds], axis=0)
test_acc = np.mean(total_preds == test_labels)
rmse = np.mean(np.square(total_preds - test_labels), axis=0)
rmse = np.sqrt(rmse)
print("test accuracy : {}".format(test_acc))
print(rmse)
reviews = open(test_data_file, "r", encoding="utf-8").readlines()
reviews = list(map(lambda x: x.strip().replace("</s>", ""), reviews))
result = np.column_stack((total_preds, test_labels, reviews))
with open(result_file, "w", encoding="utf-8") as f:
    fw = csv.writer(f)
    fw.writerow(["prediction", "label", "review"])
    fw.writerows(result)
Exemple #3
0
batch_size = 32
embedding_dims = 50
epochs = 10

print('Loading data...')
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
print(len(x_train), 'train sequences')
print(len(x_test), 'test sequences')

print('Pad sequences (samples x time)...')
x_train = sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = sequence.pad_sequences(x_test, maxlen=maxlen)
print('x_train shape:', x_train.shape)
print('x_test shape:', x_test.shape)

print('Build model...')
model = TextCNN(maxlen, max_features, embedding_dims).get_model()
model.compile('adam', 'binary_crossentropy', metrics=['accuracy'])

print('Train...')
early_stopping = EarlyStopping(monitor='val_acc', patience=3, mode='max')
model.fit(x_train,
          y_train,
          batch_size=batch_size,
          epochs=epochs,
          callbacks=[early_stopping],
          validation_data=(x_test, y_test))

print('Test...')
result = model.predict(x_test)