迭代 Tensorflow BatchDataset 失败并出现 InvalidArgumentError
Iterating over Tensorflow BatchDataset fails with InvalidArgumentError
我正在关注 Tensorflow NER 示例:https://keras.io/examples/nlp/ner_transformers/
然而,在模型上调用 fit()
时,它因以下错误而中断:
InvalidArgumentError: StringToNumberOp could not correctly convert string:
[[{{node StringToNumber_1}}]]
[[IteratorGetNext]] [Op:__inference_train_function_2480]
我已将其隔离到 BatchDataset 迭代器,该迭代器有时会失败。当根据教程它应该工作时,为什么会出现上述错误而失败。我正在使用 Tensorflow 2.7.0 和 Keras 2.7.0
以下 colab 可用于复制错误:https://colab.research.google.com/drive/1P1apD3o9I8bclzMN0S0CBUGdkEouzpr2?usp=sharing
文件 conll_train.txt
和 conll_val.txt
中的最后两行导致了问题,因为它们不是正确的条目。如果您跳过它们,一切都会正常进行。在创建数据集的代码片段中试试这个:
train_data = tf.data.TextLineDataset("./data/conll_train.txt")
train_data = train_data.take(len(list(train_data.map(lambda x: x)))-2)
val_data = tf.data.TextLineDataset("./data/conll_val.txt")
val_data = val_data.take(len(list(val_data.map(lambda x: x)))-2)
我正在关注 Tensorflow NER 示例:https://keras.io/examples/nlp/ner_transformers/
然而,在模型上调用 fit()
时,它因以下错误而中断:
InvalidArgumentError: StringToNumberOp could not correctly convert string:
[[{{node StringToNumber_1}}]]
[[IteratorGetNext]] [Op:__inference_train_function_2480]
我已将其隔离到 BatchDataset 迭代器,该迭代器有时会失败。当根据教程它应该工作时,为什么会出现上述错误而失败。我正在使用 Tensorflow 2.7.0 和 Keras 2.7.0
以下 colab 可用于复制错误:https://colab.research.google.com/drive/1P1apD3o9I8bclzMN0S0CBUGdkEouzpr2?usp=sharing
文件 conll_train.txt
和 conll_val.txt
中的最后两行导致了问题,因为它们不是正确的条目。如果您跳过它们,一切都会正常进行。在创建数据集的代码片段中试试这个:
train_data = tf.data.TextLineDataset("./data/conll_train.txt")
train_data = train_data.take(len(list(train_data.map(lambda x: x)))-2)
val_data = tf.data.TextLineDataset("./data/conll_val.txt")
val_data = val_data.take(len(list(val_data.map(lambda x: x)))-2)