Textsum - 与 ref 文件相比不正确的解码结果
Textsum - Incorrect decode results compared to ref file
在对通过 data_convert_example.py 转换为二进制的我自己的数据集进行训练时会出现此问题。经过一周的训练后,我得到的解码结果在比较解码和参考文件时没有意义。
如果有人使用自己的数据成功并获得了类似于 post在 Textsum 自述文件中编辑的结果,我很想知道什么对您有用...环境、tf 构建、文章数量。
我目前在 0.11 上运气不好,但在 0.9 上得到了一些结果,但是解码结果类似于下面显示的结果,我什至不知道它们来自哪里。
我目前是 运行 Ubuntu 16.04、TF 0.9、CUDA 7.5 和 CuDnn 4。我试过 TF 0.11 但正在处理其他问题,所以我又回到了 0.9。解码结果似乎是从有效文章中生成的,但参考文件和解码文件索引没有关联。
如果有人能提供任何帮助或指导,将不胜感激。否则,如果我想出什么办法,我会post这里。
最后几个问题。关于引用的词汇文件。它是否完全需要按词频排序?我在生成它时从未按照这些思路执行任何操作,只是不确定这是否也会引发一些问题。
最后,我在生成数据时假设训练数据文章应该被分解成更小的批次。我将文章分成多个文件,每个文件有 100 篇文章。然后将它们命名为 data-0、data-1 等。我认为这是我的正确假设?我还将所有词汇保存在一个文件中,该文件似乎没有引发任何错误。
以上假设是否也正确?
下面是一些参考和解码结果,您可以看到它们很奇怪,似乎没有相关性。
解码:
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
我要自己回答这个问题。似乎这里的问题是缺乏训练数据。最后我确实整理了我的 vocab 文件,但似乎没有必要这样做。这样做的原因是为了让最终用户可以根据需要将词汇限制在 20 万个单词之内。
出现上述问题的最大原因就是缺少数据。当我 运行 在原始 post 中训练时,我正在处理 40k+ 篇文章。我认为这已经足够了,但显然还不够,当我深入研究代码并对正在发生的事情有了更好的理解时,这一点就更加明显了。最后,我将文章数量增加到超过 130 万篇,我在我的 980GTX 上训练了大约一个半星期,平均损失达到了 1.6 到 2.2 左右,我看到了更好的结果。
我边走边学,但我停在了高于平均损失的位置,因为我执行的一些阅读表明,当你对你的 "test" 数据执行 "eval" 时,你的平均损失应该是接近你在训练中看到的。这有助于确定当它们相距很远时您是否接近过度拟合。正如我正在学习的那样,再次对此持保留态度,但这对我来说似乎合乎逻辑。
最后一个注意事项是我通过艰难的方式学到的。确保升级到最新的 0.11 Tensorflow 版本。我最初使用 0.9 进行训练,但是当我想弄清楚如何为 tensorflow 导出模型时,我发现那个 repo 中没有 export.py 文件。当我升级到 0.11 时,我发现检查点文件结构似乎在 0.11 中发生了变化,我需要再花 2 周的时间来训练。所以我建议只升级,因为他们已经解决了我在 RC 期间看到的许多问题。我仍然必须设置 is_tuple=false 但除此之外,一切都很好。希望这对某人有所帮助。
在对通过 data_convert_example.py 转换为二进制的我自己的数据集进行训练时会出现此问题。经过一周的训练后,我得到的解码结果在比较解码和参考文件时没有意义。
如果有人使用自己的数据成功并获得了类似于 post在 Textsum 自述文件中编辑的结果,我很想知道什么对您有用...环境、tf 构建、文章数量。
我目前在 0.11 上运气不好,但在 0.9 上得到了一些结果,但是解码结果类似于下面显示的结果,我什至不知道它们来自哪里。
我目前是 运行 Ubuntu 16.04、TF 0.9、CUDA 7.5 和 CuDnn 4。我试过 TF 0.11 但正在处理其他问题,所以我又回到了 0.9。解码结果似乎是从有效文章中生成的,但参考文件和解码文件索引没有关联。
如果有人能提供任何帮助或指导,将不胜感激。否则,如果我想出什么办法,我会post这里。
最后几个问题。关于引用的词汇文件。它是否完全需要按词频排序?我在生成它时从未按照这些思路执行任何操作,只是不确定这是否也会引发一些问题。
最后,我在生成数据时假设训练数据文章应该被分解成更小的批次。我将文章分成多个文件,每个文件有 100 篇文章。然后将它们命名为 data-0、data-1 等。我认为这是我的正确假设?我还将所有词汇保存在一个文件中,该文件似乎没有引发任何错误。
以上假设是否也正确?
下面是一些参考和解码结果,您可以看到它们很奇怪,似乎没有相关性。
解码:
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
我要自己回答这个问题。似乎这里的问题是缺乏训练数据。最后我确实整理了我的 vocab 文件,但似乎没有必要这样做。这样做的原因是为了让最终用户可以根据需要将词汇限制在 20 万个单词之内。
出现上述问题的最大原因就是缺少数据。当我 运行 在原始 post 中训练时,我正在处理 40k+ 篇文章。我认为这已经足够了,但显然还不够,当我深入研究代码并对正在发生的事情有了更好的理解时,这一点就更加明显了。最后,我将文章数量增加到超过 130 万篇,我在我的 980GTX 上训练了大约一个半星期,平均损失达到了 1.6 到 2.2 左右,我看到了更好的结果。
我边走边学,但我停在了高于平均损失的位置,因为我执行的一些阅读表明,当你对你的 "test" 数据执行 "eval" 时,你的平均损失应该是接近你在训练中看到的。这有助于确定当它们相距很远时您是否接近过度拟合。正如我正在学习的那样,再次对此持保留态度,但这对我来说似乎合乎逻辑。
最后一个注意事项是我通过艰难的方式学到的。确保升级到最新的 0.11 Tensorflow 版本。我最初使用 0.9 进行训练,但是当我想弄清楚如何为 tensorflow 导出模型时,我发现那个 repo 中没有 export.py 文件。当我升级到 0.11 时,我发现检查点文件结构似乎在 0.11 中发生了变化,我需要再花 2 周的时间来训练。所以我建议只升级,因为他们已经解决了我在 RC 期间看到的许多问题。我仍然必须设置 is_tuple=false 但除此之外,一切都很好。希望这对某人有所帮助。