属性错误:"张量"对象没有属性"nested_row_splits"



我正在尝试用变压器和Keras复制"神经机器翻译"。模型从tensorflow网站,我已经完全复制了一切,他们有它。当我去尝试使用他们提供的数据训练模型时,我一直得到以下错误:

AttributeError: 'Tensor' object has no attribute 'nested_row_splits'
the transformer.fit() takes train_batches as the input. 
train_batches is type PrefetchDataset Size 810 and value
<PrefetchDataset element_spec((TensorSpec(shape=(None, None), dtype=tf.int64, name=None), Tensor<...>
dtype=tf.int64, name=None)), RaggedTensorSpec(TensorShape([None, None])

错误来自tensorflow中的tf__masked_loss(label, pred)

有谁知道这个错误意味着什么以及如何修复它吗?

我试着看tensorflow的代码,但我不能弄清楚。我从字面上复制tensorflow网站的代码,所以我不知道该怎么做。我可以改变数据类型,但我觉得我不应该这样做。

您的解码器输入必须具有与接地真值相同的长度我建议你检查decoder_input形状和ground_truth形状如果有任何问题,您可以使用decoder_input.to_tensor( )ground_truth.to_tensor( )规范化批长度

既然你提到你正在使用原始的tensorflow文档,我建议你检查你在这个函数中写的东西:

MAX_TOKENS=128
def prepare_batch(pt, en):
pt = tokenizers.pt.tokenize(pt)      # Output is ragged.
pt = pt[:, :MAX_TOKENS]    # Trim to MAX_TOKENS.
pt = pt.to_tensor()  # Convert to 0-padded dense Tensor
en = tokenizers.en.tokenize(en)
en = en[:, :(MAX_TOKENS+1)]
en_inputs = en[:, :-1].to_tensor()  # Drop the [END] tokens
en_labels = en[:, 1:].to_tensor()   # Drop the [START] tokens
return (pt, en_inputs), en_labels

相关内容

  • 没有找到相关文章

最新更新