Skip to content

Instantly share code, notes, and snippets.

@stellaraccident
Created May 14, 2021 16:43
Show Gist options
  • Save stellaraccident/a78e39090e148aa96c0f400438098368 to your computer and use it in GitHub Desktop.
Save stellaraccident/a78e39090e148aa96c0f400438098368 to your computer and use it in GitHub Desktop.
graph(%self : __torch__.pytorch_translate.ensemble_export.BeamSearchAndDecode,
%src_tokens.1 : Tensor,
%src_lengths.1 : Tensor,
%prev_token.1 : Tensor,
%prev_scores.1 : Tensor,
%attn_weights.1 : Tensor,
%prev_hypos_indices.1 : Tensor,
%num_steps.1 : int):
%8 : None = prim::Constant()
%9 : __torch__.pytorch_translate.ensemble_export.BeamSearch = prim::GetAttr[name="beam_search"](%self)
%17 : Long(1, strides=[1], requires_grad=0, device=cpu) = prim::Constant[value={-1}]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%18 : Device = prim::Constant[value="cpu"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%19 : int = prim::Constant[value=4]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%20 : bool = prim::Constant[value=0]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%21 : None = prim::Constant()
%22 : Float(103, strides=[1], requires_grad=0, device=cpu) = prim::Constant[value=<Tensor>]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:323:0
%23 : int = prim::Constant[value=-1]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:332:0
%24 : Long(requires_grad=0, device=cpu) = prim::Constant[value={1}]() # /usr/local/lib/python3.7/dist-packages/torch/tensor.py:559:0
%25 : int = prim::Constant[value=1]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1062:45
%26 : int = prim::Constant[value=0]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1058:79
%27 : bool = prim::Constant[value=1]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1084:8
%28 : __torch__.pytorch_translate.ensemble_export.EncoderEnsemble = prim::GetAttr[name="encoder_ens"](%9)
%29 : __torch__.pytorch_translate.rnn.RNNModel = prim::GetAttr[name="model_0"](%28)
%30 : __torch__.pytorch_translate.rnn.RNNDecoder = prim::GetAttr[name="decoder"](%29)
%31 : Tensor = prim::GetAttr[name="initial_attn_context"](%30)
%src_tokens : Long(1, 5, strides=[1, 1], requires_grad=0, device=cpu) = aten::t(%src_tokens.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:167:0
%33 : Future[(Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Int(1, strides=[1], requires_grad=0, device=cpu), Long(1, 5, strides=[1, 1], requires_grad=0, device=cpu), Float(5, 1, 10, strides=[10, 50, 1], requires_grad=1, device=cpu))] = prim::fork_0(%28, %src_tokens, %src_lengths.1)
%34 : (Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Int(1, strides=[1], requires_grad=0, device=cpu), Long(1, 5, strides=[1, 1], requires_grad=0, device=cpu), Float(5, 1, 10, strides=[10, 50, 1], requires_grad=1, device=cpu)) = aten::wait(%33)
%35 : Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), %final_hiddens : Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), %final_cells : Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), %38 : Int(1, strides=[1], requires_grad=0, device=cpu), %39 : Long(1, 5, strides=[1, 1], requires_grad=0, device=cpu), %40 : Float(5, 1, 10, strides=[10, 50, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%34)
%41 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::select(%final_hiddens, %26, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/rnn.py:1313:0
%42 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::select(%final_hiddens, %26, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/rnn.py:1313:0
%43 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::select(%final_cells, %26, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/rnn.py:1314:0
%44 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::select(%final_cells, %26, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/rnn.py:1314:0
%enc_states.1 : (Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(10, strides=[1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%35, %41, %43, %42, %44, %31)
%46 : int[] = prim::ListConstruct(%25)
%47 : Tensor = aten::repeat(%prev_token.1, %46) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1058:21
%all_tokens.1 : Tensor = aten::unsqueeze(%47, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1058:21
%49 : int[] = prim::ListConstruct(%25)
%50 : Tensor = aten::repeat(%prev_scores.1, %49) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1059:21
%all_scores.1 : Tensor = aten::unsqueeze(%50, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1059:21
%52 : Tensor = aten::unsqueeze(%attn_weights.1, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1061:12
%53 : int[] = prim::ListConstruct(%25, %25)
%54 : Tensor = aten::repeat(%52, %53) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1061:12
%all_weights.1 : Tensor = aten::unsqueeze(%54, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1061:12
%all_prev_indices.1 : Tensor = aten::unsqueeze(%prev_hypos_indices.1, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1065:27
%57 : __torch__.pytorch_translate.ensemble_export.DecoderBatchedStepEnsemble = prim::GetAttr[name="decoder_ens_tile"](%9)
%58 : Tensor, %59 : Tensor, %60 : Tensor, %61 : Tensor, %62 : Tensor, %63 : Tensor = prim::TupleUnpack(%enc_states.1)
%x.2 : Long(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::unsqueeze(%prev_token.1, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:301:0
%65 : Long(2, strides=[1], requires_grad=0, device=cpu) = aten::_shape_as_tensor(%x.2) # /usr/local/lib/python3.7/dist-packages/torch/onnx/operators.py:16:0
%batch_size.1 : Long(requires_grad=0, device=cpu) = aten::select(%65, %26, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:408:0
%67 : int[] = prim::ListConstruct(%25)
%68 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::view(%batch_size.1, %67) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%69 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::to(%17, %18, %19, %20, %20, %21) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%70 : Tensor[] = prim::ListConstruct(%68, %69)
%shape.2 : Long(2, strides=[1], requires_grad=0, device=cpu) = aten::cat(%70, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%72 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::_reshape_from_tensor(%63, %shape.2) # /usr/local/lib/python3.7/dist-packages/torch/onnx/operators.py:20:0
%73 : Future[(Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu))] = prim::fork_1(%57, %x.2, %72, %59, %60, %61, %62, %58)
%74 : (Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = aten::wait(%73)
%75 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), %76 : Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), %77 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), %78 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), %state.5 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%74)
%state.6 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %state.7 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%77)
%state.8 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %state.9 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%78)
%84 : Tensor[] = prim::ListConstruct(%75)
%85 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::cat(%84, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:314:0
%86 : int[] = prim::ListConstruct(%25)
%average_log_probs.1 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::mean(%85, %86, %27, %21) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:314:0
%88 : Float(1, 103, strides=[103, 1], requires_grad=0, device=cpu) = aten::unsqueeze(%22, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:323:0
%word_rewards.1 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=0, device=cpu) = aten::unsqueeze(%88, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:323:0
%average_log_probs_with_rewards.1 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::add(%average_log_probs.1, %word_rewards.1, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:325:0
%91 : Tensor[] = prim::ListConstruct(%76)
%92 : Float(1, 1, 5, strides=[5, 5, 1], requires_grad=1, device=cpu) = aten::cat(%91, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:328:0
%93 : int[] = prim::ListConstruct(%25)
%average_attn_weights.1 : Float(1, 1, 5, strides=[5, 5, 1], requires_grad=1, device=cpu) = aten::mean(%92, %93, %27, %21) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:328:0
%95 : Float(1, 103, strides=[103, 1], requires_grad=1, device=cpu) = aten::squeeze(%average_log_probs_with_rewards.1, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:332:0
%best_scores_k_by_k.1 : Float(1, 1, strides=[1, 1], requires_grad=1, device=cpu), %best_tokens_k_by_k.1 : Long(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::topk(%95, %25, %23, %27, %27) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:332:0
%98 : int[] = prim::ListConstruct(%23, %25)
%99 : Float(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::view(%prev_scores.1, %98) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:335:0
%100 : int[] = prim::ListConstruct(%23, %25)
%prev_scores_k_by_k.1 : Float(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::expand(%99, %100, %20) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:335:0
%total_scores_k_by_k.1 : Float(1, 1, strides=[1, 1], requires_grad=1, device=cpu) = aten::add(%best_scores_k_by_k.1, %prev_scores_k_by_k.1, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:336:0
%103 : int[] = prim::ListConstruct(%23)
%total_scores_flat.1 : Float(1, strides=[1], requires_grad=1, device=cpu) = aten::view(%total_scores_k_by_k.1, %103) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:339:0
%105 : int[] = prim::ListConstruct(%23)
%best_tokens_flat.1 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::view(%best_tokens_k_by_k.1, %105) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:340:0
%107 : Float(1, strides=[1], requires_grad=1, device=cpu), %best_indices.2 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::topk(%total_scores_flat.1, %25, %23, %27, %27) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:342:0
%109 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::index_select(%best_tokens_flat.1, %26, %best_indices.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:344:0
%110 : int[] = prim::ListConstruct(%23)
%111 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::view(%109, %110) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:344:0
%prev_hypos.1 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::floor_divide(%best_indices.2, %24) # /usr/local/lib/python3.7/dist-packages/torch/tensor.py:559:0
%attention_weights.1 : Float(1, 1, 5, strides=[5, 5, 1], requires_grad=1, device=cpu) = aten::index_select(%average_attn_weights.1, %26, %prev_hypos.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:349:0
%114 : Float(1, 5, strides=[5, 1], requires_grad=1, device=cpu) = aten::squeeze(%attention_weights.1, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:364:0
%115 : int[] = prim::ListConstruct(%25, %25, %25)
%116 : Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu) = aten::repeat(%58, %115) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:376:0
%117 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.6, %26, %prev_hypos.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%118 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.8, %26, %prev_hypos.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%119 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.7, %26, %prev_hypos.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%120 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.9, %26, %prev_hypos.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%121 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.5, %26, %prev_hypos.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%122 : (Long(1, strides=[1], requires_grad=0, device=cpu), Float(1, strides=[1], requires_grad=1, device=cpu), Long(1, strides=[1], requires_grad=0, device=cpu), Float(1, 5, strides=[5, 1], requires_grad=1, device=cpu), Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%111, %107, %prev_hypos.1, %114, %116, %117, %118, %119, %120, %121)
%prev_token.4 : Tensor, %prev_scores.4 : Tensor, %prev_hypos_indices.3 : Tensor, %attn_weights.3 : Tensor, %127 : Tensor, %128 : Tensor, %129 : Tensor, %130 : Tensor, %131 : Tensor, %132 : Tensor = prim::TupleUnpack(%122)
%states.1 : (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor) = prim::TupleConstruct(%127, %128, %129, %130, %131, %132)
%134 : Tensor = aten::unsqueeze(%prev_token.4, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1077:44
%135 : Tensor[] = prim::ListConstruct(%all_tokens.1, %134)
%all_tokens.3 : Tensor = aten::cat(%135, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1077:21
%137 : Tensor = aten::unsqueeze(%prev_scores.4, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1078:44
%138 : Tensor[] = prim::ListConstruct(%all_scores.1, %137)
%all_scores.3 : Tensor = aten::cat(%138, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1078:21
%140 : Tensor = aten::unsqueeze(%attn_weights.3, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1079:46
%141 : Tensor[] = prim::ListConstruct(%all_weights.1, %140)
%all_weights.3 : Tensor = aten::cat(%141, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1079:22
%143 : Tensor = aten::unsqueeze(%prev_hypos_indices.3, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1081:31
%144 : Tensor[] = prim::ListConstruct(%all_prev_indices.1, %143)
%all_prev_indices.3 : Tensor = aten::cat(%144, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1080:27
%146 : int = aten::sub(%num_steps.1, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1084:23
%all_tokens : Tensor, %all_scores : Tensor, %all_weights : Tensor, %all_prev_indices : Tensor, %prev_scores : Tensor, %prev_token : Tensor, %states : (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor) = prim::Loop(%146, %27, %all_tokens.3, %all_scores.3, %all_weights.3, %all_prev_indices.3, %prev_scores.4, %prev_token.4, %states.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1084:8
block0(%i.1 : int, %all_tokens.8 : Tensor, %all_scores.8 : Tensor, %all_weights.8 : Tensor, %all_prev_indices.8 : Tensor, %prev_scores.10 : Tensor, %prev_token.10 : Tensor, %states.5 : (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor)):
%162 : __torch__.pytorch_translate.ensemble_export.___torch_mangle_32.DecoderBatchedStepEnsemble = prim::GetAttr[name="decoder_ens"](%9)
%163 : Tensor, %164 : Tensor, %165 : Tensor, %166 : Tensor, %167 : Tensor, %168 : Tensor = prim::TupleUnpack(%states.5)
%x.1 : Long(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::unsqueeze(%prev_token.10, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:301:0
%170 : Long(2, strides=[1], requires_grad=0, device=cpu) = aten::_shape_as_tensor(%x.1) # /usr/local/lib/python3.7/dist-packages/torch/onnx/operators.py:16:0
%batch_size : Long(requires_grad=0, device=cpu) = aten::select(%170, %26, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:408:0
%172 : int[] = prim::ListConstruct(%25)
%173 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::view(%batch_size, %172) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%174 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::to(%17, %18, %19, %20, %20, %21) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%175 : Tensor[] = prim::ListConstruct(%173, %174)
%shape.1 : Long(2, strides=[1], requires_grad=0, device=cpu) = aten::cat(%175, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:438:0
%177 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::_reshape_from_tensor(%168, %shape.1) # /usr/local/lib/python3.7/dist-packages/torch/onnx/operators.py:20:0
%178 : Future[(Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu))] = prim::fork_2(%162, %x.1, %177, %164, %165, %166, %167, %163)
%179 : (Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = aten::wait(%178)
%180 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), %181 : Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), %182 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), %183 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), %state : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%179)
%state.10 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %state.3 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%182)
%state.2 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %state.4 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%183)
%189 : Tensor[] = prim::ListConstruct(%180)
%190 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::cat(%189, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:314:0
%191 : int[] = prim::ListConstruct(%25)
%average_log_probs : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::mean(%190, %191, %27, %21) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:314:0
%193 : Float(1, 103, strides=[103, 1], requires_grad=0, device=cpu) = aten::unsqueeze(%22, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:323:0
%word_rewards : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=0, device=cpu) = aten::unsqueeze(%193, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:323:0
%average_log_probs_with_rewards : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::add(%average_log_probs, %word_rewards, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:325:0
%196 : Tensor[] = prim::ListConstruct(%181)
%197 : Float(1, 1, 5, strides=[5, 5, 1], requires_grad=1, device=cpu) = aten::cat(%196, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:328:0
%198 : int[] = prim::ListConstruct(%25)
%average_attn_weights : Float(1, 1, 5, strides=[5, 5, 1], requires_grad=1, device=cpu) = aten::mean(%197, %198, %27, %21) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:328:0
%200 : Float(1, 103, strides=[103, 1], requires_grad=1, device=cpu) = aten::squeeze(%average_log_probs_with_rewards, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:332:0
%best_scores_k_by_k : Float(1, 1, strides=[1, 1], requires_grad=1, device=cpu), %best_tokens_k_by_k : Long(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::topk(%200, %25, %23, %27, %27) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:332:0
%203 : int[] = prim::ListConstruct(%23, %25)
%204 : Float(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::view(%prev_scores.10, %203) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:335:0
%205 : int[] = prim::ListConstruct(%23, %25)
%prev_scores_k_by_k : Float(1, 1, strides=[1, 1], requires_grad=0, device=cpu) = aten::expand(%204, %205, %20) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:335:0
%total_scores_k_by_k : Float(1, 1, strides=[1, 1], requires_grad=1, device=cpu) = aten::add(%best_scores_k_by_k, %prev_scores_k_by_k, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:336:0
%208 : int[] = prim::ListConstruct(%23)
%total_scores_flat : Float(1, strides=[1], requires_grad=1, device=cpu) = aten::view(%total_scores_k_by_k, %208) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:339:0
%210 : int[] = prim::ListConstruct(%23)
%best_tokens_flat : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::view(%best_tokens_k_by_k, %210) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:340:0
%212 : Float(1, strides=[1], requires_grad=1, device=cpu), %best_indices : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::topk(%total_scores_flat, %25, %23, %27, %27) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:342:0
%214 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::index_select(%best_tokens_flat, %26, %best_indices) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:344:0
%215 : int[] = prim::ListConstruct(%23)
%216 : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::view(%214, %215) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:344:0
%prev_hypos : Long(1, strides=[1], requires_grad=0, device=cpu) = aten::floor_divide(%best_indices, %24) # /usr/local/lib/python3.7/dist-packages/torch/tensor.py:559:0
%attention_weights : Float(1, 1, 5, strides=[5, 5, 1], requires_grad=1, device=cpu) = aten::index_select(%average_attn_weights, %26, %prev_hypos) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:349:0
%219 : Float(1, 5, strides=[5, 1], requires_grad=1, device=cpu) = aten::squeeze(%attention_weights, %25) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:364:0
%220 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.10, %26, %prev_hypos) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%221 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.2, %26, %prev_hypos) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%222 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.3, %26, %prev_hypos) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%223 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state.4, %26, %prev_hypos) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%224 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = aten::index_select(%state, %26, %prev_hypos) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:389:0
%225 : (Long(1, strides=[1], requires_grad=0, device=cpu), Float(1, strides=[1], requires_grad=1, device=cpu), Long(1, strides=[1], requires_grad=0, device=cpu), Float(1, 5, strides=[5, 1], requires_grad=1, device=cpu), Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%216, %212, %prev_hypos, %219, %163, %220, %221, %222, %223, %224)
%prev_token.7 : Tensor, %prev_scores.7 : Tensor, %prev_hypos_indices.5 : Tensor, %attn_weights.5 : Tensor, %230 : Tensor, %231 : Tensor, %232 : Tensor, %233 : Tensor, %234 : Tensor, %235 : Tensor = prim::TupleUnpack(%225)
%states.3 : (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor) = prim::TupleConstruct(%230, %231, %232, %233, %234, %235)
%237 : Tensor = aten::unsqueeze(%prev_token.7, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1095:48
%238 : Tensor[] = prim::ListConstruct(%all_tokens.8, %237)
%all_tokens.5 : Tensor = aten::cat(%238, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1095:25
%240 : Tensor = aten::unsqueeze(%prev_scores.7, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1096:48
%241 : Tensor[] = prim::ListConstruct(%all_scores.8, %240)
%all_scores.5 : Tensor = aten::cat(%241, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1096:25
%243 : Tensor = aten::unsqueeze(%attn_weights.5, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1097:50
%244 : Tensor[] = prim::ListConstruct(%all_weights.8, %243)
%all_weights.5 : Tensor = aten::cat(%244, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1097:26
%246 : Tensor = aten::unsqueeze(%prev_hypos_indices.5, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1099:35
%247 : Tensor[] = prim::ListConstruct(%all_prev_indices.8, %246)
%all_prev_indices.5 : Tensor = aten::cat(%247, %26) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/ensemble_export.py:1098:31
-> (%27, %all_tokens.5, %all_scores.5, %all_weights.5, %all_prev_indices.5, %prev_scores.7, %prev_token.7, %states.3)
%beam_search_out.1 : (Tensor, Tensor, Tensor, Tensor) = prim::TupleConstruct(%all_tokens, %all_scores, %all_weights, %all_prev_indices)
%all_tokens.2 : Tensor, %all_scores.2 : Tensor, %all_weights.2 : Tensor, %all_prev_indices.2 : Tensor = prim::TupleUnpack(%beam_search_out.1)
%15 : __torch__.pytorch_translate.beam_decode.BeamDecode = prim::GetAttr[name="beam_decode"](%self)
%250 : float = prim::Constant[value=inf]()
%251 : str = prim::Constant[value="Dimension of beam_prev_indices : {} and num_steps : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1025:12
%252 : str = prim::Constant[value="Dimension of token_weights : {} and num_steps : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1021:12
%253 : str = prim::Constant[value="Dimension of beam_scores : {} and num_steps : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1017:12
%254 : str = prim::Constant[value="Dimension of beam_tokens : {} and num_steps : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1013:12
%255 : str = prim::Constant[value="AssertionError: Dimension of beam_prev_indices : {} and beam size : {} "]()
%256 : str = prim::Constant[value="Dimension of token_weights : {} and beam size : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1004:12
%257 : str = prim::Constant[value="Dimension of beam_scores : {} and beam size : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1000:12
%258 : str = prim::Constant[value="Dimension of beam_tokens : {} and beam size : {} are not consistent"]() # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:996:11
%259 : int = prim::Constant[value=9223372036854775807]() # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:855:12
%260 : int = prim::Constant[value=2]() # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:845:34
%261 : int = prim::Constant[value=1]() # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:844:33
%262 : int = prim::Constant[value=0]() # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:838:43
%263 : bool = prim::Constant[value=1]() # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:836:8
%264 : None = prim::Constant()
%265 : bool = prim::Constant[value=0]()
%266 : str = prim::Constant[value="AssertionError: "]()
%prev_beam_index.1 : int = prim::Constant[value=-1]() # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:854:30
%268 : int = aten::size(%all_tokens.2, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:995:12
%269 : int = prim::GetAttr[name="beam_size"](%15)
%270 : bool = aten::eq(%268, %269) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:995:12
= prim::If(%270) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:994:8
block0():
-> ()
block1():
%271 : int[] = aten::size(%all_tokens.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:997:12
%272 : int = prim::GetAttr[name="beam_size"](%15)
%273 : str = aten::format(%258, %271, %272) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:996:11
%274 : str = aten::add(%266, %273) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:994:8
= prim::RaiseException(%274) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:994:8
-> ()
%275 : int = aten::size(%all_scores.2, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:999:15
%276 : int = prim::GetAttr[name="beam_size"](%15)
%277 : bool = aten::eq(%275, %276) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:999:15
= prim::If(%277) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:999:8
block0():
-> ()
block1():
%278 : int[] = aten::size(%all_scores.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1001:40
%279 : int = prim::GetAttr[name="beam_size"](%15)
%280 : str = aten::format(%257, %278, %279) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1000:12
%281 : str = aten::add(%266, %280) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:999:8
= prim::RaiseException(%281) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:999:8
-> ()
%282 : int = aten::size(%all_weights.2, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1003:15
%283 : int = prim::GetAttr[name="beam_size"](%15)
%284 : bool = aten::eq(%282, %283) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1003:15
= prim::If(%284) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1003:8
block0():
-> ()
block1():
%285 : int[] = aten::size(%all_weights.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1005:40
%286 : int = prim::GetAttr[name="beam_size"](%15)
%287 : str = aten::format(%256, %285, %286) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1004:12
%288 : str = aten::add(%266, %287) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1003:8
= prim::RaiseException(%288) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1003:8
-> ()
%289 : int = aten::size(%all_prev_indices.2, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1008:12
%290 : int = prim::GetAttr[name="beam_size"](%15)
%291 : bool = aten::eq(%289, %290) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1008:12
= prim::If(%291) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1007:8
block0():
-> ()
block1():
= prim::RaiseException(%255) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1007:8
-> ()
%292 : int = aten::size(%all_tokens.2, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1012:15
%293 : int = aten::add(%num_steps.1, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1012:38
%294 : bool = aten::le(%292, %293) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1012:15
= prim::If(%294) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1012:8
block0():
-> ()
block1():
%295 : int[] = aten::size(%all_tokens.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1014:40
%296 : str = aten::format(%254, %295, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1013:12
%297 : str = aten::add(%266, %296) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1012:8
= prim::RaiseException(%297) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1012:8
-> ()
%298 : int = aten::size(%all_scores.2, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1016:15
%299 : int = aten::add(%num_steps.1, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1016:38
%300 : bool = aten::le(%298, %299) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1016:15
= prim::If(%300) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1016:8
block0():
-> ()
block1():
%301 : int[] = aten::size(%all_scores.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1018:40
%302 : str = aten::format(%253, %301, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1017:12
%303 : str = aten::add(%266, %302) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1016:8
= prim::RaiseException(%303) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1016:8
-> ()
%304 : int = aten::size(%all_weights.2, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1020:15
%305 : int = aten::add(%num_steps.1, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1020:40
%306 : bool = aten::le(%304, %305) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1020:15
= prim::If(%306) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1020:8
block0():
-> ()
block1():
%307 : int[] = aten::size(%all_weights.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1022:40
%308 : str = aten::format(%252, %307, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1021:12
%309 : str = aten::add(%266, %308) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1020:8
= prim::RaiseException(%309) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1020:8
-> ()
%310 : int = aten::size(%all_prev_indices.2, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1024:15
%311 : int = aten::add(%num_steps.1, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1024:44
%312 : bool = aten::le(%310, %311) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1024:15
= prim::If(%312) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1024:8
block0():
-> ()
block1():
%313 : int[] = aten::size(%all_prev_indices.2) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1026:40
%314 : str = aten::format(%251, %313, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1025:12
%315 : str = aten::add(%266, %314) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1024:8
= prim::RaiseException(%315) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:1024:8
-> ()
%end_states.1 : Tensor[] = prim::ListConstruct()
%317 : int = prim::GetAttr[name="beam_size"](%15)
%318 : int[] = prim::ListConstruct(%317)
%319 : Tensor = aten::zeros(%318, %264, %264, %264, %264) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:938:32
%prev_hypo_is_finished.1 : Tensor = aten::to(%319, %262, %265, %265, %264) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:938:32
%321 : bool = aten::le(%261, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:941:19
%end_states : Tensor[], %min_index.4 : int, %min_score.1 : float, %position : int, %prev_hypo_is_finished : Tensor = prim::Loop(%259, %321, %end_states.1, %prev_beam_index.1, %250, %261, %prev_hypo_is_finished.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:941:8
block0(%327 : int, %end_states.21 : Tensor[], %min_index.15 : int, %min_score.15 : float, %position.18 : int, %prev_hypo_is_finished.4 : Tensor):
%333 : int = prim::GetAttr[name="beam_size"](%15)
%334 : int[] = prim::ListConstruct(%333)
%335 : Tensor = aten::zeros(%334, %264, %264, %264, %264) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:942:31
%hypo_is_finished.1 : Tensor = aten::to(%335, %262, %265, %265, %264) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:942:31
%337 : int = prim::GetAttr[name="beam_size"](%15)
%end_states.20 : Tensor[], %min_index.14 : int, %min_score.14 : float = prim::Loop(%337, %263, %end_states.21, %min_index.15, %min_score.15) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:944:12
block0(%hyp_index.1 : int, %end_states.19 : Tensor[], %min_index.13 : int, %min_score.13 : float):
%345 : Tensor = aten::select(%all_prev_indices.2, %262, %position.18) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:945:27
%prev_pos.1 : Tensor = aten::select(%345, %262, %hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:945:27
%347 : Tensor?[] = prim::ListConstruct(%prev_pos.1)
%348 : Tensor = aten::index(%prev_hypo_is_finished.4, %347) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:946:46
%349 : Tensor = aten::select(%hypo_is_finished.1, %262, %hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:946:16
%350 : Tensor = aten::copy_(%349, %348, %265) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:946:16
%351 : Tensor = aten::select(%hypo_is_finished.1, %262, %hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:950:24
%352 : Tensor = aten::eq(%351, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:950:24
%353 : bool = aten::Bool(%352) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:950:19
%end_states.18 : Tensor[], %min_index.12 : int, %min_score.16 : float = prim::If(%353) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:950:16
block0():
%357 : Tensor = aten::select(%all_tokens.2, %262, %position.18) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:954:24
%358 : Tensor = aten::select(%357, %262, %hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:954:24
%359 : int = prim::GetAttr[name="eos_token_id"](%15)
%360 : Tensor = aten::eq(%358, %359) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:954:24
%361 : bool = aten::Bool(%360) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:953:23
%362 : bool = prim::If(%361) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:953:23
block0():
-> (%263)
block1():
%363 : bool = aten::eq(%position.18, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:955:30
-> (%363)
%end_states.17 : Tensor[], %min_index.11 : int, %min_score.11 : float = prim::If(%362) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:953:20
block0():
%367 : int = prim::GetAttr[name="stop_at_eos"](%15)
%368 : bool = aten::Bool(%367) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:957:27
= prim::If(%368) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:957:24
block0():
%369 : Tensor = aten::select(%hypo_is_finished.1, %262, %hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:958:28
%370 : int = prim::dtype(%369)
%371 : Device = prim::device(%369)
%372 : Tensor = aten::tensor(%261, %370, %371, %265)
%373 : Tensor = aten::copy_(%369, %372, %265) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:958:28
-> ()
block1():
-> ()
%374 : Tensor = aten::select(%all_scores.2, %262, %position.18) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:960:43
%375 : Tensor = aten::select(%374, %262, %hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:960:43
%hypo_score.1 : float = aten::Float(%375) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:960:37
%377 : float = prim::GetAttr[name="length_penalty"](%15)
%378 : bool = aten::ne(%377, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:961:32
%hypo_score : float = prim::If(%378) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:961:24
block0():
%380 : float = aten::Float(%position.18) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:962:54
%381 : float = prim::GetAttr[name="length_penalty"](%15)
%382 : float = aten::pow(%380, %381) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:962:54
%hypo_score.3 : float = aten::div(%hypo_score.1, %382) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:962:41
-> (%hypo_score.3)
block1():
-> (%hypo_score.1)
%384 : float = aten::Float(%position.18) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:970:45
%385 : float = aten::Float(%hyp_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:970:62
%386 : float[] = prim::ListConstruct(%hypo_score, %384, %385)
%387 : Tensor = aten::tensor(%386, %264, %264, %265) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:969:28
%388 : int = aten::len(%end_states.19) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:905:11
%389 : int = prim::GetAttr[name="nbest"](%15)
%390 : bool = aten::lt(%388, %389) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:905:11
%min_score : float, %min_index : int = prim::If(%390) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:905:8
block0():
%393 : Tensor[] = aten::append(%end_states.19, %387) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:906:12
%394 : Tensor = aten::select(%387, %262, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:908:21
%395 : float = aten::Float(%394) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:908:15
%396 : bool = aten::le(%395, %min_score.13) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:908:15
%min_score.25 : float, %min_index.22 : int = prim::If(%396) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:908:12
block0():
%399 : Tensor = aten::select(%387, %262, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:909:34
%min_score.3 : float = aten::Float(%399) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:909:28
%401 : int = aten::len(%end_states.19) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:910:28
%min_index.2 : int = aten::sub(%401, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:910:28
-> (%min_score.3, %min_index.2)
block1():
-> (%min_score.13, %min_index.13)
-> (%min_score.25, %min_index.22)
block1():
%403 : Tensor = aten::select(%387, %262, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:911:18
%404 : Tensor = aten::gt(%403, %min_score.13) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:911:18
%405 : bool = aten::Bool(%404) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:911:13
%min_score.29 : float, %min_index.26 : int = prim::If(%405) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:911:8
block0():
%408 : Tensor[] = aten::_set_item(%end_states.19, %min_index.13, %387) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:913:12
%409 : int = aten::len(%end_states.19) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:917:29
%min_score.28 : float, %min_index.25 : int = prim::Loop(%409, %263, %250, %prev_beam_index.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:917:12
block0(%idx.1 : int, %min_score.27 : float, %min_index.24 : int):
%s.1 : Tensor = aten::__getitem__(%end_states.19, %idx.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:918:20
%416 : Tensor = aten::select(%s.1, %262, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:919:30
%417 : float = aten::Float(%416) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:919:24
%418 : bool = aten::le(%417, %min_score.27) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:919:24
%min_score.26 : float, %min_index.23 : int = prim::If(%418) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:919:16
block0():
%421 : Tensor = aten::select(%s.1, %262, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:921:38
%min_score.12 : float = aten::Float(%421) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:921:32
-> (%min_score.12, %idx.1)
block1():
-> (%min_score.27, %min_index.24)
-> (%263, %min_score.26, %min_index.23)
-> (%min_score.28, %min_index.25)
block1():
-> (%min_score.13, %min_index.13)
-> (%min_score.29, %min_index.26)
%423 : (Tensor[], float, int) = prim::TupleConstruct(%end_states.19, %min_score, %min_index)
%end_states.3 : Tensor[], %min_score.4 : float, %min_index.3 : int = prim::TupleUnpack(%423)
-> (%end_states.3, %min_index.3, %min_score.4)
block1():
-> (%end_states.19, %min_index.13, %min_score.13)
-> (%end_states.17, %min_index.11, %min_score.11)
block1():
-> (%end_states.19, %min_index.13, %min_score.13)
-> (%263, %end_states.18, %min_index.12, %min_score.16)
%position.16 : int = aten::add(%position.18, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:976:23
%428 : bool = aten::le(%position.16, %num_steps.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:941:19
-> (%428, %end_states.20, %min_index.14, %min_score.14, %position.16, %hypo_is_finished.1)
%end_states.12 : Tensor = aten::stack(%end_states, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:978:21
%430 : Tensor = aten::slice(%end_states.12, %262, %262, %259, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:980:38
%431 : Tensor = aten::select(%430, %261, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:980:38
%432 : Tensor, %sorted_end_state_indices.1 : Tensor = aten::sort(%431, %262, %263) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:980:38
%434 : Tensor = aten::slice(%end_states.12, %261, %262, %259, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:981:21
%435 : Tensor?[] = prim::ListConstruct(%sorted_end_state_indices.1)
%end_states.2 : Tensor = aten::index(%434, %435) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:981:21
%outputs.2 : (Tensor, float, float[], Tensor, Tensor)[] = prim::ListConstruct()
%438 : int = aten::len(%end_states.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:836:31
= prim::Loop(%438, %263) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:836:8
block0(%state_idx.1 : int):
%state.1 : Tensor = aten::select(%end_states.2, %262, %state_idx.1) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:837:20
%441 : Tensor = aten::select(%state.1, %262, %262) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:838:37
%hypothesis_score.1 : float = aten::Float(%441) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:838:31
%443 : Tensor = aten::select(%state.1, %262, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:889:31
%present_position.1 : int = aten::Int(%443) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:889:27
%445 : Tensor = aten::select(%state.1, %262, %260) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:890:25
%beam_index.1 : int = aten::Int(%445) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:890:21
%beam_indices.2 : int[] = prim::ListConstruct()
%448 : bool = aten::ge(%present_position.1, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:892:14
%beam_index : int, %present_position : int = prim::Loop(%259, %448, %beam_index.1, %present_position.1) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:892:8
block0(%451 : int, %beam_index.8 : int, %present_position.9 : int):
= aten::insert(%beam_indices.2, %262, %beam_index.8) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:893:12
%454 : Tensor = aten::select(%all_prev_indices.2, %262, %present_position.9) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:894:29
%455 : Tensor = aten::select(%454, %262, %beam_index.8) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:894:29
%beam_index.6 : int = aten::Int(%455) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:894:25
%present_position.7 : int = aten::sub(%present_position.9, %261) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:895:31
%458 : bool = aten::ge(%present_position.7, %262) # /usr/local/lib/python3.7/dist-packages/pytorch_translate/beam_decode.py:892:14
-> (%458, %beam_index.6, %present_position.7)
%beam_output.1 : Tensor[] = prim::ListConstruct()
%token_level_scores.1 : float[] = prim::ListConstruct()
%461 : Tensor = aten::select(%state.1, %262, %261) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:844:27
%position.2 : int = aten::Int(%461) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:844:23
%463 : Tensor = aten::select(%state.1, %262, %260) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:845:28
%hyp_index.2 : int = aten::Int(%463) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:845:24
%465 : int[] = prim::ListConstruct(%position.2, %hyp_index.2)
%best_indices.1 : Tensor = aten::tensor(%465, %264, %264, %265) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:849:27
%back_alignment_weights.1 : Tensor[] = prim::ListConstruct()
%468 : int = aten::add(%position.2, %261) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:852:19
%469 : int = aten::len(%beam_indices.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:852:35
%470 : bool = aten::eq(%468, %469) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:852:19
= prim::If(%470) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:852:12
block0():
-> ()
block1():
= prim::RaiseException(%266) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:852:12
-> ()
%471 : int = aten::len(%beam_indices.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:855:24
%472 : bool = aten::lt(%261, %471) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:855:18
%pos : int, %prev_beam_index : int = prim::Loop(%259, %472, %261, %prev_beam_index.1) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:855:12
block0(%475 : int, %pos.22 : int, %prev_beam_index.6 : int):
%beam_index.2 : int = aten::__getitem__(%beam_indices.2, %pos.22) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:856:29
%479 : Tensor = aten::select(%all_tokens.2, %262, %pos.22) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:857:35
%480 : Tensor = aten::select(%479, %262, %beam_index.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:857:35
%481 : Tensor[] = aten::append(%beam_output.1, %480) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:857:16
%482 : bool = aten::eq(%pos.22, %261) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:858:19
= prim::If(%482) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:858:16
block0():
%483 : Tensor = aten::select(%all_scores.2, %262, %pos.22) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:860:52
%484 : Tensor = aten::select(%483, %262, %beam_index.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:860:52
%485 : float = aten::Float(%484) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:860:46
%486 : float[] = aten::append(%token_level_scores.1, %485) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:860:20
-> ()
block1():
%487 : Tensor = aten::select(%all_scores.2, %262, %pos.22) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:863:30
%488 : Tensor = aten::select(%487, %262, %beam_index.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:863:30
%489 : float = aten::Float(%488) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:863:24
%490 : int = aten::sub(%pos.22, %261) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:864:44
%491 : Tensor = aten::select(%all_scores.2, %262, %490) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:864:32
%492 : Tensor = aten::select(%491, %262, %prev_beam_index.6) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:864:32
%493 : float = aten::Float(%492) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:864:26
%494 : float = aten::sub(%489, %493) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:863:24
%495 : float[] = aten::append(%token_level_scores.1, %494) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:862:20
-> ()
%496 : Tensor = aten::select(%all_weights.2, %262, %pos.22) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:866:46
%497 : Tensor = aten::select(%496, %262, %beam_index.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:866:46
%498 : Tensor = aten::detach(%497) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:866:46
%499 : Tensor[] = aten::append(%back_alignment_weights.1, %498) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:866:16
%pos.20 : int = aten::add(%pos.22, %261) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:868:16
%501 : int = aten::len(%beam_indices.2) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:855:24
%502 : bool = aten::lt(%pos.20, %501) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:855:18
-> (%502, %pos.20, %beam_index.2)
%503 : Tensor = aten::stack(%beam_output.1, %262) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:871:20
%504 : Tensor = aten::stack(%back_alignment_weights.1, %261) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:874:20
%505 : (Tensor, float, float[], Tensor, Tensor) = prim::TupleConstruct(%503, %hypothesis_score.1, %token_level_scores.1, %504, %best_indices.1)
%506 : (Tensor, float, float[], Tensor, Tensor)[] = aten::append(%outputs.2, %505) # /usr/local/lib/python3.7/dist-packages/torch/autograd/grad_mode.py:869:12
-> (%263)
return (%outputs.2)
with prim::fork_0 = graph(%self.1 : __torch__.pytorch_translate.ensemble_export.EncoderEnsemble,
%src_tokens : Long(1, 5, strides=[1, 1], requires_grad=0, device=cpu),
%lengths.1 : Int(1, strides=[1], requires_grad=0, device=cpu)):
%3 : __torch__.pytorch_translate.rnn.RNNModel = prim::GetAttr[name="model_0"](%self.1)
%4 : __torch__.pytorch_translate.rnn.LSTMSequenceEncoder = prim::GetAttr[name="encoder"](%3)
%5 : (Tensor, Tensor, Tensor, Tensor, Tensor) = prim::CallMethod[name="forward"](%4, %src_tokens, %lengths.1)
%6 : Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), %7 : Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), %8 : Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), %9 : Int(1, strides=[1], requires_grad=0, device=cpu), %10 : Float(5, 1, 10, strides=[10, 50, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%5)
%11 : (Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Float(2, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu), Int(1, strides=[1], requires_grad=0, device=cpu), Long(1, 5, strides=[1, 1], requires_grad=0, device=cpu), Float(5, 1, 10, strides=[10, 50, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%6, %7, %8, %9, %src_tokens, %10)
return (%11)
with prim::fork_1 = graph(%self.1 : __torch__.pytorch_translate.ensemble_export.DecoderBatchedStepEnsemble,
%x.1 : Long(1, 1, strides=[1, 1], requires_grad=0, device=cpu),
%2 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx.1 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx.2 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx.3 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%encoder_output : Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu)):
%8 : __torch__.pytorch_translate.rnn.___torch_mangle_17.RNNModel = prim::GetAttr[name="model_0"](%self.1)
%9 : __torch__.pytorch_translate.rnn.___torch_mangle_16.RNNDecoder = prim::GetAttr[name="decoder"](%8)
%10 : (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor) = prim::CallMethod[name="forward"](%9, %x.1, %2, %hx.1, %hx.2, %hx.3, %hx, %encoder_output)
%11 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), %12 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %13 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %14 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %15 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %16 : Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), %17 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%10)
%18 : int = prim::Constant[value=2]() # /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:1672:0
%19 : None = prim::Constant()
%20 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::log_softmax(%11, %18, %19) # /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:1672:0
%21 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%12, %13)
%22 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%14, %15)
%23 : (Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%20, %16, %21, %22, %17)
return (%23)
with prim::fork_2 = graph(%self.1 : __torch__.pytorch_translate.ensemble_export.___torch_mangle_32.DecoderBatchedStepEnsemble,
%x.1 : Long(1, 1, strides=[1, 1], requires_grad=0, device=cpu),
%2 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx.1 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx.2 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx.3 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%hx : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu),
%encoder_output : Float(5, 1, 10, strides=[10, 10, 1], requires_grad=1, device=cpu)):
%8 : __torch__.pytorch_translate.rnn.___torch_mangle_31.RNNModel = prim::GetAttr[name="model_0"](%self.1)
%9 : __torch__.pytorch_translate.rnn.___torch_mangle_30.RNNDecoder = prim::GetAttr[name="decoder"](%8)
%10 : (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor, Tensor) = prim::CallMethod[name="forward"](%9, %x.1, %2, %hx.1, %hx.2, %hx.3, %hx, %encoder_output)
%11 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), %12 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %13 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %14 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %15 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), %16 : Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), %17 : Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu) = prim::TupleUnpack(%10)
%18 : int = prim::Constant[value=2]() # /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:1672:0
%19 : None = prim::Constant()
%20 : Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu) = aten::log_softmax(%11, %18, %19) # /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:1672:0
%21 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%12, %13)
%22 : (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%14, %15)
%23 : (Float(1, 1, 103, strides=[103, 103, 1], requires_grad=1, device=cpu), Float(1, 1, 5, strides=[1, 1, 1], requires_grad=1, device=cpu), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), (Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)), Float(1, 10, strides=[10, 1], requires_grad=1, device=cpu)) = prim::TupleConstruct(%20, %16, %21, %22, %17)
return (%23)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment