В тензорном потоке 2.0 входные тензоры необходимо вводить во время вызова, а не во время построения. Я пытаюсь использовать динамический_код для задачи seq2seq. Как я могу использовать dynamic_decode и получить выходные данные с 1 строкой кода вместо обработки initialize () и затем step () вручную для временных шагов. В tf 1.14 вы можете передавать тензоры initial_state конструктору.
greedy_sampler = tfa.seq2seq.GreedyEmbeddingSampler()
decoder_input = tf.expand_dims([Y_tokenizer.word_index['<start>']]* inference_batch_size,1)
decoder_emb_inp = decoderNetwork.decoder_embedding(decoder_input)
decoder_instance = tfa.seq2seq.BasicDecoder(decoderNetwork.decoder_rnncell, greedy_sampler)
#initialize inference decoder
(first_finished, first_inputs,first_state) = decoder_instance.initialize(decoder_embedding_matrix,
start_tokens = start_tokens, end_token=end_token, initial_state = s_prev)
final_outputs, final_state, final_sequence_lengths = tfa.seq2seq.dynamic_decode(decoder_instance,
maximum_iterations=maximum_iterations,
)
Я получаю ошибку ниже, когда пытаюсь использовать dynamic_decode. не может найти начальный тензор
52 final_outputs, final_state, final_sequence_lengths = tfa.seq2seq.dynamic_decode(decoder_instance,
---> 53 maximum_iterations=maximum_iterations,
54 )
55
1 frames
/usr/local/lib/python3.6/dist-packages/tensorflow_addons/seq2seq/decoder.py in dynamic_decode(decoder, output_time_major, impute_finished, maximum_iterations, parallel_iterations, swap_memory, training, scope, **kwargs)
333 decoder_init_kwargs = kwargs.pop("decoder_init_kwargs", {})
334 initial_finished, initial_inputs, initial_state = \
--> 335 decoder.initialize(decoder_init_input, **decoder_init_kwargs)
336
337 zero_outputs = tf.nest.map_structure(
/usr/local/lib/python3.6/dist-packages/tensorflow_addons/seq2seq/basic_decoder.py in initialize(self, inputs, initial_state, **kwargs)
69 # Assume the dtype of the cell is the output_size structure
70 # containing the input_state's first component's dtype.
---> 71 self._cell_dtype = tf.nest.flatten(initial_state)[0].dtype
72 return self.sampler.initialize(inputs, **kwargs) + (initial_state,)
73
AttributeError: 'NoneType' object has no attribute 'dtype'