sess.run(tf.global_variables_initializer()) for epoch in range(num_epoch): for _ in range(num_batch_per_epoch): batch = data.get_train_batch(batch_size) batch_X = [ np.array([wv[w] for w in tweet.words]) for tweet in batch ] batch_y = [int(tweet.label == "bull") for tweet in batch] _, _ = rnn.train(batch_X, batch_y, sess) ## accuracy check, train, valid, test sets train_X = [ np.array([wv[w] for w in tweet.words]) for tweet in data.train ] train_y = [int(tweet.label == "bull") for tweet in data.train] train_ent, train_acc = rnn.cal_accuracy(train_X, train_y, sess) valid_X = [ np.array([wv[w] for w in tweet.words]) for tweet in data.valid ] valid_y = [int(tweet.label == "bull") for tweet in data.valid] _, valid_acc = rnn.cal_accuracy(valid_X, valid_y, sess) test_X = [ np.array([wv[w] for w in tweet.words]) for tweet in data.test ] test_y = [int(tweet.label == "bull") for tweet in data.test] _, test_acc = rnn.cal_accuracy(test_X, test_y, sess) print("Current epoch", epoch, "\tCross entropy", train_ent, "\tTraining accuracy", train_acc, "\tValidate accuracy",
rnn = RNN("gru", hidden_size, embedding_size, lr=lr) rnn.build_graph(embedding=True, vocab_size=len(w2i), embedding_size=100) sess = tf.Session() sess.run(tf.global_variables_initializer()) for epoch in range(num_epoch): for _ in range(num_batch_per_epoch): batch = data.get_train_batch(batch_size) batch_X = [np.array(tweet.word_indexes) for tweet in batch] batch_y = [int(tweet.label=="bull") for tweet in batch] _, _= rnn.train(batch_X, batch_y, sess, embedding=True) ## accuracy check, train, valid, test sets train_X = [np.array(tweet.word_indexes) for tweet in data.train] train_y = [int(tweet.label == "bull") for tweet in data.train] train_ent, train_acc = rnn.cal_accuracy(train_X, train_y, sess, embedding=True) valid_X = [np.array(tweet.word_indexes) for tweet in data.valid] valid_y = [int(tweet.label == "bull") for tweet in data.valid] _, valid_acc = rnn.cal_accuracy(valid_X, valid_y, sess, embedding=True) test_X = [np.array(tweet.word_indexes) for tweet in data.test] test_y = [int(tweet.label == "bull") for tweet in data.test] _, test_acc = rnn.cal_accuracy(test_X, test_y, sess, embedding=True) print("Current epoch", epoch, "\tCross entropy", train_ent, "\tTraining accuracy", train_acc, "\tValidate accuracy", valid_acc, "\tTest accuracy", test_acc)