| 46 | } |
| 47 | |
| 48 | async loadMetadata() { |
| 49 | const translationMetadata = |
| 50 | await loader.loadHostedMetadata(this.urls.metadata); |
| 51 | this.maxDecoderSeqLength = translationMetadata['max_decoder_seq_length']; |
| 52 | this.maxEncoderSeqLength = translationMetadata['max_encoder_seq_length']; |
| 53 | console.log('maxDecoderSeqLength = ' + this.maxDecoderSeqLength); |
| 54 | console.log('maxEncoderSeqLength = ' + this.maxEncoderSeqLength); |
| 55 | this.inputTokenIndex = translationMetadata['input_token_index']; |
| 56 | this.targetTokenIndex = translationMetadata['target_token_index']; |
| 57 | this.reverseTargetCharIndex = |
| 58 | Object.keys(this.targetTokenIndex) |
| 59 | .reduce( |
| 60 | (obj, key) => (obj[this.targetTokenIndex[key]] = key, obj), {}); |
| 61 | } |
| 62 | |
| 63 | prepareEncoderModel(model) { |
| 64 | this.numEncoderTokens = model.input[0].shape[2]; |