本文主要是介绍Tensorflow: Model parallelism 模型并行计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在tensorflow官方tutorial上给出了多GPU的用法,但那是基于data-parallelism的计算,主要思想是将数据划分成不同部分,用同一个模型进行计算
但是我在写代码中发现,会出现单个模型过大无法再单个GPU上运行,这时候就需要model-parallelism
上网查找了很多资料后,发现这个博主写的不错,附带了github代码,How to Use Distributed TensorFlow to Split Your TensorFlow Graph Between Multiple Machines
实现起来其实非常简单,只需要将模型划分,让不同的网络层在不同的GPU上计算就可以了
#实现一个[9k,9k,9k]的densenet,前两层在GPU0上训练
#最后一层在GPU1上训练,因为输出层权重矩阵大概是[28k,10k]单个GPU会显示内存不够
def dense_gpu(input, keep_prob)
这篇关于Tensorflow: Model parallelism 模型并行计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!