Tensorflow:使用不适合单个 GPU 内存的图形训练模型

Tensorflow: Training models with graphs that won't fit into memory of a single GPU

MemoryError 在构建图形时引发,并且在任何内容传输到 GPU 之前。 MemoryError 是由于试图分配比机器可用的内存更多的内存造成的。

但是我如何训练一个需要将大量图形加载到内存(它不适合)的模型?分段训练?冷冻层?快速 google 搜索根本没有给出任何提示:/

什么是正确的,也许是最好的方法?

完全有可能!

图表的不同部分可以分配给不同的 GPU(和 CPU)。受到 Using GPUs 的启发,您应该能够执行以下操作:

`with tf.device('/device:GPU:2'):`
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')

`with tf.device('/device:GPU:1'):`  
    c = tf.matmul(a, b)

Ops 和张量可以任意分配给 CPUs 和 GPU(请注意,当然,您的性能可能会因必须在不同硬件之间随机播放大量数据而受到显着影响)。

此外,Distributed Tensorflow 允许您在网络上的多个系统周围分配操作和张量,并为您处理管道。