def exe_test(sess, data, batch_size, v2i, i2v, hf, feature_shape, predict_words, input_video, input_captions, y, finished_beam, logprobs_finished_beams, past_logprobs, beam_hidden_state, past_symbols_states, finished_beams_states, capl=16): caption_output = [] total_data = len(data) num_batch = int(round(total_data*1.0/batch_size)) for batch_idx in xrange(num_batch): batch_caption = data[batch_idx*batch_size:min((batch_idx+1)*batch_size,total_data)] data_v = MsrDataUtil.getBatchVideoFeature(batch_caption,hf,feature_shape) data_c, data_y = MsrDataUtil.getBatchTestCaption(batch_caption, v2i, capl=capl) [gw,tw,gp, gl, pp, pss, fbs] = sess.run([finished_beam, predict_words, logprobs_finished_beams, past_logprobs, beam_hidden_state, past_symbols_states, finished_beams_states],feed_dict={input_video:data_v, input_captions:data_c, y:data_y}) generated_captions = MsrDataUtil.convertCaptionI2V(batch_caption, gw, i2v) for idx, sen in enumerate(generated_captions): # print(gw[idx]) print('%s : %s' %(batch_caption[idx].keys()[0],sen)) # print(pss) # print(fbs) # print(gp) # print(gl) # print(pp) caption_output.append({'image_id':batch_caption[idx].keys()[0],'caption':sen}) js = {} js['val_predictions'] = caption_output return js
def exe_test(sess, data, batch_size, v2i, i2v, hf, feature_shape, predict_words, input_video, input_captions, y, predict_words2, capl=16): caption_output = [] total_data = len(data) num_batch = int(round(total_data * 1.0 / batch_size)) for batch_idx in xrange(num_batch): batch_caption = data[batch_idx * batch_size:min((batch_idx + 1) * batch_size, total_data)] data_v = MsrDataUtil.getBatchVideoFeature(batch_caption, hf, feature_shape) data_c, data_y = MsrDataUtil.getBatchTestCaption(batch_caption, v2i, capl=capl) [gw, tw] = sess.run([predict_words, predict_words2], feed_dict={ input_video: data_v, input_captions: data_c, y: data_y }) # print(gw) # print(tp) # print(atp) generated_captions = MsrDataUtil.convertCaptionI2V( batch_caption, gw, i2v) for idx, sen in enumerate(generated_captions): print('%s : %s' % (batch_caption[idx].keys()[0], sen)) caption_output.append({ 'image_id': batch_caption[idx].keys()[0], 'caption': sen }) js = {} js['val_predictions'] = caption_output return js