def RNN_predict(stringlist):

	data_x=[]
	seq_len=[]

	for line in stringlist:
		cur=helper_fun.paragraph_to_sentencelist(line, remove_stopwords=True)
		data_x+=cur
		seq_len.append(len(cur[0]))

	outputs=[]
	for i in range(len(data_x)):
		seq=seq_len[i:i+1]
		dat=data_x[i:i+1]
		x_data=[]
		for sen in dat:		
			x_data.append(helper_fun.sentence_to_vector(sen, seq[0]+1))
		seq=np.array(seq)
		ans=sess.run(myRnnModelpredict['output'], feed_dict={myRnnModelpredict['x']:x_data, myRnnModelpredict['seqlen']:seq})
		outputs=outputs+list(ans)
	return outputs
Example #2
0
    train_x = [train_x[i] for i in idx]
    train_y = [train_y[i] for i in idx]
    seq_len = [seq_len[i] for i in idx]
    print("training epoch", i + 1, "of", RNN_model.parameters.num_epoch)
    z = len(train_x)
    j = 0
    epoch_loss = 0
    while j < z and j + RNN_model.parameters.num_batch < z:
        x_train = train_x[j:j + RNN_model.parameters.num_batch]
        y_train = train_y[j:j + RNN_model.parameters.num_batch]
        seq = seq_len[j:j + RNN_model.parameters.num_batch]
        max_len = max(seq) + 1
        j += RNN_model.parameters.num_batch
        data_x = []
        for sen in x_train:
            data_x.append(helper_fun.sentence_to_vector(sen, max_len))
        seq = np.array(seq)
        _, loss = sess.run(
            [myRnnModel['minimizer'], myRnnModel['loss']],
            feed_dict={
                myRnnModel['x']: data_x,
                myRnnModel['y']: y_train,
                myRnnModel['seqlen']: seq
            })
        epoch_loss += loss
    print("Epoch: ", i + 1, "completed. Loss: ", epoch_loss)
    if i % 10 == 0:
        myRnnModel['saver'].save(sess, "trainedmodels/rnn.model")
    if epoch_loss <= 5.0:
        break
myRnnModel['saver'].save(sess, "trainedmodels/rnn.model")
sess = tf.Session()
init = tf.initialize_all_variables()
#sess.run(init)
myCnnModelpredict['saver'].restore(sess, "trainedmodels/cnn.model")

outputs = []
for i in range(len(data_x)):
    #seq=seq_len[i:i+1]
    dat = data_x[i:i + 1]
    if (len(dat[0]) < 5):
        continue
    x_data = []
    seq = seq_len[i]
    #print (dat)
    for sen in dat:
        x_data.append(helper_fun.sentence_to_vector(sen, seq))
    ans = sess.run(myCnnModelpredict['output'],
                   feed_dict={
                       myCnnModelpredict['x']: x_data,
                       myCnnModelpredict['seqlen']: seq
                   })
    outputs = outputs + list(ans)

#print (outputs)
filename = './output/outputCNN.txt'
dire = os.path.dirname(filename)
if not os.path.exists(dire):
    os.makedirs(dire)
with open(filename, 'w') as f:
    for i in outputs:
        f.write(str(i) + '\n')