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
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')