【发布时间】:2025-12-13 08:30:01
【问题描述】:
我正在使用 CNN 进行短文本分类(对产品标题进行分类)。 代码来自 http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/
在训练集、测试集、验证集的准确率是打击:
和损失不同。验证的损失是训练集和测试集损失的两倍。(我不能上传超过2张图片。抱歉!)
训练集和测试集来自网络爬虫,然后按7:3拆分。验证来自真实应用消息,并通过人工标记。
我几乎尝试了所有超参数。
我尝试过上采样、下采样、无采样。
批量大小为 1024、2048、5096
dropout 为 0.3、0.5、0.7
embedding_size 为 30、50、75
但这些都不起作用!
现在我使用下面的参数:
批量大小为 2048。
embedding_size 为 30。
sentence_length 为 15
filter_size 是 3,4,5
dropout_prob 为 0.5
l2_lambda 为 0.005
起初我认为它是过度拟合。但是模型在测试集和训练集中表现良好。所以我很困惑!
是不是测试集和训练集的分布差别很大?
如何提高验证集的性能?
【问题讨论】:
-
您确定您在该图中的痕迹标记正确吗?您的测试准确性最高,这似乎很奇怪。几乎肯定不对?
-
@chris_anderson 谢谢!我确定该图中的跟踪标记正确。我不知道为什么,验证准确度太低
-
你能重现原教程的准确性吗?该模型的预期验证准确度是多少?
-
@YaoZhang 谢谢!预期的验证准确度至少为 92%,就像图中的开发准确度一样。并在几个小时后训练,验证损失是训练损失的 6 倍。我的验证集有问题吗?
标签: machine-learning tensorflow deep-learning