GPU在开发步骤中运行内存不足

时间:2016-12-28 10:55:28

标签: python-3.x tensorflow gpu

我使用Denny Britz implementationYoon Kims CNN进行略微修改的情感分析(我添加了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

1 个答案:

答案 0 :(得分:1)

与您在dev_step中运行的批次大小相比,检查您传入train_step的批次的大小。您可能必须批量评估测试集(我猜这与dev相同?)。