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



在构建图形时,以及在任何内容传输到GPU之前,会引发MemoryErrorMemoryError是由于试图分配的内存超过机器的可用内存而导致的。

  • 我所拥有的:多个GPU
  • 我没有:内存不够大,无法在任何一个GPU上显示图形
  • 我想做的是:在一个GPU中多次训练模型,或者更好的是,同时使用所有GPU来训练我模型的不同部分(如果可能的话(

但是我如何训练一个需要将大量图形加载到内存中的模型(它不适合(?部分培训?冻结层?快速谷歌搜索根本不会给出任何提示:/

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

完全可能!

图形的不同部分可以分配给不同的GPU(和CPU(。受使用GPU的启发,你应该能够做一些事情,比如:

`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)

操作和张量可以任意分配给CPU和GPU(当然要注意,必须在不同的硬件之间混洗大量数据会严重影响您的性能(。

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

最新更新