【发布时间】:2019-05-20 13:05:33
【问题描述】:
我正在 Tensorflow 中执行文本分类任务(使用 tf.keras)。之前我只是使用文本特征,我的loss是sparse_categorical_crossentropy,训练是这样的:
这完全在意料之中,损失约为 7。
现在,我添加了 2 个介于 0 到 100,000 之间的随机浮点特征。我更新了我的 tf.data.Dataset 对象,现在它们看起来像:
dataset = tf.data.Dataset.from_tensor_slices(({"review": x_rev_train, "structured": x_structured_train}, labels_train))
并创建了一个新的Input 对象,将其连接到我的图表。看起来很正常。
所以我的损失现在大约是几百万(从 100 毫米以上开始)。我对此感到非常困惑。考虑到分类交叉熵是如何定义的,这显然是错误的......
所以我开始调试,并将两个浮点特性设置为 0.0 的常量值。当我这样做时,损失会恢复到第一张图片中的样子。
然后我将两个浮点功能都设置为 100000.0 的常量值,然后问题又出现了。所以我认为这与这两个浮动功能的大小有关。
对我可能做错了什么有什么想法吗?我知道我还没有扩展这两个浮动功能,但为什么我的损失会这样爆炸?
感谢您提供的任何帮助!
编辑:
似乎这种巨大的损失只发生在第一个纪元以某种方式?它在随后的时期恢复正常。有什么想法吗?
【问题讨论】:
-
你有几节课?您能否提供有关您的模型的更多详细信息?
标签: python tensorflow keras