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

Python 减少张量流模型的GPU内存消耗,python,tensorflow,Python,Tensorflow,我正在尝试让git rep中的代码正常工作: 培训数据是一个7mb的文本文件。 我有一台Nvidia GTX 750ti,内存为1gb。当我尝试在这台机器上训练时,培训师崩溃了,因为根据错误消息,内存不足,型号大小为2.5gb。当然,我知道这些不能放入1gb的图形内存中。 默认设置为: num_layers = 3 # Number of layers of RNN num_hidden = 128 # Hidden size of RNN cell batch_size = 128 # Num

我正在尝试让git rep中的代码正常工作: 培训数据是一个7mb的文本文件。 我有一台Nvidia GTX 750ti,内存为1gb。当我尝试在这台机器上训练时,培训师崩溃了,因为根据错误消息,内存不足,型号大小为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_长度,但这也不起作用。你有什么建议来解决这个问题?当然,买一个更大的图形单元也行。但我想知道代码本身是否可以做些什么。也许是分割输入数据?计算机本身有16gb的ram,这应该没问题

通过添加

with tf.device('/cpu:0'):
并在图形定义之前输入正确的缩进。速度会慢一些,但你应该有足够的内存。您还可以将大部分操作放在CPU上,并选择一些放在GPU上。你会找到一些帮助的


您还可以减少网络大小num_hidden和num_layers,但性能会降低。如果RNN操作是以64位完成的,也许你可以改为32位,我不知道这是否可行

谢谢大家!!是的,在CPU上运行是一种选择,但在这种情况下,内存使用仍然非常高,大约12-16gb,一个历元大约需要5个小时,这意味着计算模型可能需要一个月的时间。然而,这并非不可能是的,我这样做了,在CPU上网络可以学习,但是资源需求非常高,一个历元大约需要5个小时。但我想这只是因为它是一个非常大的网络。