tensorflow - 使用 Tensorflow 2.0 addson seq2seq BasicDecoder 的困惑
问题描述
下面是在没有 sequence_length 参数的情况下调用 decoder() 的代码片段。为清楚起见,省略了其他代码。
decoder_cell = keras.layers.LSTMCell(units)
output_layer = keras.layers.Dense(len(OUTPUT_CHARS) + 1)
decoder = tfa.seq2seq.basic_decoder.BasicDecoder(decoder_cell,
sampler,
output_layer=output_layer)
final_outputs, final_state, final_sequence_lengths = decoder(
decoder_embeddings,
initial_state=encoder_state) # NOTE: without sequence_lengths argument here!
final_outputs, final_state, final_sequence_lengths = decoder(
decoder_embeddings, initial_state=encoder_state,
sequence_length=sequence_lengths) # NOTE: it use sequence_lengths of input tensor
您能否帮助澄清以下混淆?
我们什么时候应该传递
sequence_lengths
论点,decoder()
什么时候没有必要?BasicDecoder
继承了which 在其方法BaseDecoder
中没有sequence_lengths
参数。call
源代码在这里为什么在将sequence_lengths
参数传递给时它会起作用decoder()
?
非常感谢!
解决方案
我在文档的某个地方找到了带有 sequence_length 参数的地方https://www.tensorflow.org/addons/api_docs/python/tfa/seq2seq/BaseDecoder?hl=en#initialize
推荐阅读
- html - 选择选项改变外观
- python - 在 df 循环函数之外永久使 df 列对一列唯一
- django - 如何在 django 额外操作中进行删除方法?
- python - docker:在 $PATH 中找不到可执行文件“:未知
- python - 如何调用在另一个函数内部定义的函数?
- python - 如何在不循环的情况下替换数据框中每个单元格的值
- python - 我如何在轴 M 上找到 cp 和 cp_p_g 的交点?
- python - Networkx节点定位布局
- java - taskdef 类 weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask 找不到
- javascript - 删除 select2 no data found 文本