| 175 | |
| 176 | # do evalation on validation dataset, report loss and accuracy |
| 177 | def do_eval(sess,model,evalX,evalY,batch_size,vocabulary_index2word_label,eval_decoder_input=None): |
| 178 | #ii=0 |
| 179 | number_examples=len(evalX) |
| 180 | eval_loss,eval_acc,eval_counter=0.0,0.0,0 |
| 181 | for start,end in zip(range(0,number_examples,batch_size),range(batch_size,number_examples,batch_size)): |
| 182 | feed_dict = {model.query: evalX[start:end],model.story:np.expand_dims(evalX[start:end],axis=1), model.dropout_keep_prob: 1} |
| 183 | if not FLAGS.multi_label_flag: |
| 184 | feed_dict[model.answer_single] = evalY[start:end] |
| 185 | else: |
| 186 | feed_dict[model.answer_multilabel] = evalY[start:end] |
| 187 | curr_eval_loss, logits,curr_eval_acc,pred= sess.run([model.loss_val,model.logits,model.accuracy,model.predictions],feed_dict)#curr_eval_acc--->textCNN.accuracy |
| 188 | eval_loss,eval_acc,eval_counter=eval_loss+curr_eval_loss,eval_acc+curr_eval_acc,eval_counter+1 |
| 189 | return eval_loss/float(eval_counter),eval_acc/float(eval_counter) |
| 190 | |
| 191 | # get label using logits |
| 192 | def get_label_using_logits(logits,vocabulary_index2word_label,top_number=1): |