1

对我自己的数据集执行训练时会出现此问题,该数据集已通过 data_convert_example.py 转换为二进制。经过一周的培训后,我得到了在比较解码和参考文件时没有意义的解码结果。

如果有人成功并使用他们自己的数据获得了与 Textsum 自述文件中发布的结果相似的结果,我很想知道什么对您有用……环境、tf 构建、文章数量。

我目前在 0.11 上没有运气,但在 0.9 上得到了一些结果,但是解码结果类似于下面显示的结果,我什至不知道它们来自哪里。

我目前正在运行 Ubuntu 16.04、TF 0.9、CUDA 7.5 和 CuDnn 4。我尝试了 TF 0.11 但正在处理其他问题,所以我回到了 0.9。似乎解码结果是从有效文章中生成的,但参考文件和解码文件索引没有相关性。

如果有人可以提供任何帮助或指导,将不胜感激。否则,我应该弄清楚什么,我会在这里发布。

最后几个问题。关于引用的词汇文件。它是否完全需要按词频排序?在生成它时,我从未按照这些方式执行任何操作,只是不确定这是否也会引发一些问题。

最后,我在生成数据时假设训练数据文章应该被分解成更小的批次。我将文章分成多个文件,每个文件有 100 篇文章。然后将它们命名为 data-0、data-1 等。我认为这是我的正确假设?我还将所有词汇保存在一个似乎没有引发任何错误的文件中。

上述假设是否也正确?

下面是一些你可以看到的 ref 和 decode 结果很奇怪,似乎没有相关性。

解码:

output=Wild Boy Goes About How I Can't Be Really Go For Love 
output=State Department defends the campaign of Iran
output=John Deere sails profit - Business Insider  
output=to roll for the Perseid meteor shower
output=Man in New York City in Germany

参考:

output=Battle Chasers: Nightwar Combines Joe Mad's Stellar Art With Solid RPG Gameplay
output=Obama Meets a Goal That Could Literally Destroy America
output=WOW! 10 stunning photos of presidents daughter Zahra Buhari   
output=Koko the gorilla jams out on bass with Flea from Red Hot Chili Peppers  
output=Brenham police officer refused service at McDonald's
4

1 回答 1

0

这个我自己来回答。似乎这里的问题是缺乏训练数据。最后,我确实对我的词汇文件进行了排序,但似乎没有必要。这样做的原因是允许最终用户将词汇限制在他们希望的 200k 字以内。

上述问题的最大原因仅仅是缺乏数据。当我在原始帖子中进行培训时,我正在处理 40k 多篇文章。我认为这已经足够了,但显然还不够,当我更深入地研究代码并对正在发生的事情有了更好的理解时,这一点更加明显。最后,我将文章数量增加到超过 130 万篇,我在 980GTX 上训练了大约一个半星期,平均损失达到了 1.6 到 2.2 左右,我看到了更好的结果。

我正在学习这一点,但我停止了上述平均损失,因为我执行的一些阅读表明,当您对“测试”数据执行“评估”时,您的平均损失应该接近您在训练中看到的。这有助于确定当它们相距很远时是否接近过度拟合。正如我正在学习的那样,再次对此持保留态度,但这对我来说似乎合乎逻辑。

最后一点,我学会了艰难的方式是这个。确保升级到最新的 0.11 Tensorflow 版本。我最初使用 0.9 进行训练,但是当我想知道如何为 tensorflow 导出模型时,我发现该 repo 中没有 export.py 文件。当我升级到 0.11 后,我发现 checkpoint 文件结构在 0.11 中似乎发生了变化,我需要再花 2 周的时间来训练。所以我建议只升级,因为他们已经解决了我在 RC 期间看到的一些问题。我仍然必须设置 is_tuple=false 但除此之外,一切都很好。希望这可以帮助某人。

于 2016-11-29T00:50:05.313 回答