减少张量流模型的GPU内存消耗

时间:2018-02-16 14:33:10

标签: python tensorflow

我试图让这个git rep中的代码工作:https://github.com/cvikasreddy/skt 训练数据是7mb文本文件。 我有一个内存为1GB的Nvidia GTX 750ti。当我尝试在这台机器上训练时,训练师因内存不足而崩溃(模型大小为2.5gb,根据错误信息)。当然我明白这些不适合1GB的图形内存。 默认设置为:

num_layers = 3 # Number of layers of RNN
num_hidden = 128 # Hidden size of RNN cell
batch_size = 128 # Number of sentences in a batch
seq_length = 35 # Length of sequence

我已经尝试将它们更改为:

num_layers = 3 # Number of layers of RNN
num_hidden = 128 # Hidden size of RNN cell
batch_size = 1 # Number of sentences in a batch
seq_length = 35 # Length of sequence

我也试过改变seq_length,但这也行不通。你有什么建议来解决这个问题?当然,购买更大的图形单元会起作用。但我想知道代码本身是否可以做任何事情。也许拆分输入数据?计算机本身有16GB的RAM,应该没问题。

1 个答案:

答案 0 :(得分:1)

您可以通过添加

来运行CPU上的所有内容
with tf.device('/cpu:0'):

以及图表定义之前的正确缩进。它会变慢,但你应该有足够的内存。您也可以将大多数操作放在CPU上,并选择一些放在GPU上。您将为here找到一些帮助。

您还可以缩小网络规模(num_hiddennum_layers),但您的效果会降低。如果RNN操作是以64位完成的,也许你可以改为32位,我不知道它是否可能。