【问题标题】:GPU runs during the dev step out of memoryGPU 在开发步骤内存不足期间运行
【发布时间】:2016-12-28 10:55:28
【问题描述】:

我使用Yoon Kims CNNDenny Britz implementation 进行稍微修改的形式的情绪分析(我添加了word2vec 方法,因此权重矩阵不是从头开始计算的)。

对于小型数据集(如 10MB),它可以正常工作,但如果我尝试在大于 50MB(仍然不是很大)的数据集上进行训练,我的 GPU 内存不足并引发以下错误:http://pastebin.com/AMfYkpXZ

GPU 是 8 GB 的 GeForce GTX 1080。

我发现错误来自开发步骤/评估步骤:

def dev_step(x_batch, y_batch, writer=None):
    """
    Evaluates model on a dev set
    """
    feed_dict = {
        cnn.input_x: x_batch,
        cnn.input_y: y_batch,
        cnn.dropout_keep_prob: 1.0
    }
    step, summaries, loss, accuracy = sess.run(
        [global_step, dev_summary_op, cnn.loss, cnn.accuracy],
        feed_dict)
    time_str = datetime.datetime.now().isoformat()
    print("{}: step {}, loss {:g}, acc {:g}".format(time_str, step, loss, accuracy))
    if writer:
        writer.add_summary(summaries, step)

准确地说,它来自sess.run([global_step, dev_summary_op, cnn.loss, cnn.accuracy], feed_dict) 行。 如果我注释掉整个 dev_step,训练运行不会抛出错误。

您知道为什么会发生此错误以及如何解决它吗?提前致谢!

编辑: 完整代码可在:https://gist.github.com/pexmar/7b3d074825eeaf5a336fce406d8e9bae

【问题讨论】:

  • 你能把剩下的代码贴出来吗?另外,当您使用更大的数据集时,您是否会更改批量大小?
  • 当然,我创建了一个要点:gist.github.com/pexmar/7b3d074825eeaf5a336fce406d8e9bae
  • 我没有用更大的数据集改变批量大小。但如果没有评估步骤,它可以正常工作。

标签: python-3.x tensorflow gpu


【解决方案1】:

检查您传入dev_step 的批处理大小与您在train_step 中运行的批处理大小的比较。您可能还需要分批评估测试集(我猜它与dev 相同?)。

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2019-10-09
    • 1970-01-01
    • 2018-07-10
    • 2020-12-22
    • 2019-04-15
    • 2020-12-06
    • 2023-03-07
    • 2019-06-13
    相关资源
    最近更新 更多