拟合Keras模型会产生错误“常量折叠失败:无效参数:不支持的类型:21”

2024-06-16 14:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我遵循https://www.tensorflow.org/alpha/tutorials/load_data/text中的示例 加载我自己的数据集并对其中的句子运行二进制分类(TensorFlow 2.0)。 我对示例所做的唯一更改是正在使用的数据集(我从https://github.com/UKPLab/emnlp2017-claim-identification/tree/master/src/main/python获取),由于标签只能是0或1,所以我将loss函数更改为binary_crossentropy,并将优化器更改为RMSprop。 在拟合与教程中提出的模型相同的Keras模型时,我经常收到以下错误:

2019-04-29 13:51:15.609297: E tensorflow/core/grappler/optimizers/meta_optimizer.cc:495] constant folding failed: Invalid argument: Unsupported type: 21
2019-04-29 13:51:15.882000: E tensorflow/core/grappler/optimizers/meta_optimizer.cc:495] constant folding failed: Invalid argument: Unsupported type: 21

这些指纹之间的拟合过程仍在推进,从以下方面可以明显看出:

^{pr2}$

但它并没有将损失最小化,而是实际上是在最大化损失,每次迭代后精度都会下降。 (事实上,如果准确度度量是正确的,那么如果我只使用not [prediction]),它将是一个非常好的分类器。 这里有没有人可以向我解释这个错误的含义,以及它是否与模型的奇怪行为有关(希望如何修复它)?我一直在尝试寻找类似的错误,但找不到。 谢谢!在


Tags: 数据httpscore模型示例tensorflow错误meta
1条回答
网友
1楼 · 发布于 2024-06-16 14:19:53

链接https://www.tensorflow.org/beta/tutorials/load_data/text中提到的教程与您的数据集有一个关键区别。在

在教程中,标签是0、1和2,即cowper.txt中的所有句子都被标记为0derby.txt中的所有句子都被标记为1butler.txt中的所有句子都被标记为2。但是在您的数据集中,Labels位于Text Files每个句子的末尾。在

我已经执行了部分数据集的代码,如下所示:

FILE_NAMES = ['001.dev', '001.test', '001.train', '002.dev', '002.test', '002.train']

parent_dir = "Issue_55902068/OC"

parent_dir

为了处理上述差异,函数labeler应该修改如下:

^{pr2}$

之后,我将loss函数改为binary_crossentropy,并将优化器改为RMSprop,如下所示:

model.compile(optimizer='RMSprop', loss='binary_crossentropy', metrics=['accuracy'])

一切如期而至。输出的屏幕截图如下所示。在

enter image description here

如果你觉得这个答案有用,请接受这个答案和/或投赞成票。谢谢。在

相关问题 更多 >