【问题标题】:How much time it will take to train with sample data(toy sample data) for tensorflow textsum?使用 tensorflow textsum 的样本数据(玩具样本数据)进行训练需要多长时间?
【发布时间】:2016-10-13 05:06:09
【问题描述】:

我正在研究 tensorflow 的 textsum(文本摘要模型)。我已经运行它来使用样本数据训练模型,即从 git 克隆时模型提供的玩具数据集。我想知道用样本数据集训练模型和解码需要多少时间?它已经花费了 17 多个小时并且仍在运行。

【问题讨论】:

  • 正如@Eilian 下面所说的,如果你在CPU 上运行它,你可能需要一段时间。如果您无法访问 GPU,您可能想考虑使用 AWS G2 或 P2 实例:aws.amazon.com/ec2/instance-types 当我对玩具数据集进行训练时,我得到了不错的结果,平均损失非常低在我的 980M 上训练了一天。但需要注意的重要一点是,如果您使用包含的玩具数据集词汇,您将不会得到有效的结果,因为训练集中的单词不在玩具词汇文件中。 github.com/tensorflow/models/issues/464
  • 我在 GPU 上运行训练模型;y。但我已将 max_run_steps 更改为“2000”。它运行了 2-3 小时,模型得到了训练。
  • 在这里,我将玩具数据集拆分为 17-4(训练-测试)。并使用相同的词汇文件训练模型。但我在解码步骤方面遇到了一些问题。更改训练数据时是否需要修改 vocab 文件?如何从训练数据集中生成词汇文件?
  • 只是为了回答你关于词汇文件的问题。词汇文件所代表的只是训练数据中的单个单词及其出现的总数。因此,如果在所有数据文件中,单词“the”出现了 150 次,那么您将在 vocab 文件中看到“the 150”。因此,当我创建它时,作为原始数据格式的一部分,我记录了计数,最后将数据输出到词汇文件。

标签: tensorflow elapsedtime textsum


【解决方案1】:

不幸的是,玩具数据训练集只是为您提供一种观察模型整体流程的方法,而不是为您提供体面的结果。这是因为玩具数据集中没有提供足够的数据来提供良好的结果。

时间量很难提供,因为它与您运行的硬件有关。所以你通常会训练到平均损失在 2 到 1 之间。Xin Pan 表示,对于更大的数据集,你永远不应该低于 1.0 平均损失。所以在我的 980M 上,我用玩具数据集在不到一天的时间里就得到了这个。

也就是说,我的结果真的很糟糕,我认为有什么问题。我发现唯一的问题是我没有足够的数据。然后我抓取了大约 4 万篇文章,但结果仍然不能接受。最近我针对 130 万篇文章进行了训练,结果要好得多。经过进一步分析,这主要是由于 textsum 模型是抽象的而不是提取的。

希望这会有所帮助。对于 130 万和批量设置为 64,我能够在不到一周半的时间内使用 TF 0.9、cuda 7.5 和 cudnn 4 在我的硬件上训练模型。我听说新的 cudnn/cuda 应该更快,但我现在还不能说。

【讨论】:

    【解决方案2】:

    在我的 i5 处理器上,仅使用 cpu,玩具训练数据集的值达到 0.17 大约需要 60 小时。

    使用 8gb 的内存,它消耗了大约 10gb 的额外交换内存。增加内存和 GPU 的使用可能会提供更好的结果。目前我无法从张量板上显示运行平均损失的图像,但我希望您的问题已经得到解答。

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 2018-10-17
      • 2017-06-22
      • 2018-10-02
      • 2019-02-18
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多