首页 文章

张量流中卷积神经网络的记忆估计

提问于
浏览
1

大家好,

我正在研究使用张量流和卷积神经网络的图像分类问题 . 我的模型有以下图层 .

  • 输入尺寸为2456x2058的图像

  • 3卷积层{Con1-shaped(10,10,1,32); CON2形(5,5,32,64); CON3形(5,5,64,64)}

  • 3最大池2x2层

  • 1完全连接的图层 .

我尝试过使用NVIDIA-SMI工具,但它显示了模型运行时的GPU内存消耗 .
我想知道在GPU上运行模型之前是否有任何方法或方法可以找到内存估计值 . 这样我就可以考虑可用内存来设计模型 .
我已经尝试过使用这个method for estimation但是我计算的内存和观察到的内存利用率并没有接近彼此 .

谢谢大家的时间 .

3 回答

  • 0

    据我所知,当您使用tensorflow-gpu打开会话时,它会分配GPUS中可用的所有内存 . 因此,当你查看nvidia-smi输出时,你总会看到相同数量的已用内存,即使它实际上只使用了它的一部分 . 打开会话以强制tensorflow仅分配可用内存的一部分时有选项(例如,参见How to prevent tensorflow from allocating the totality of a GPU memory?

  • 0

    NVIDIA-SMI ...向我展示了作为模型运行的GPU内存消耗

    TF在您使用时预先分配所有可用内存,因此NVIDIA-SMI将显示近100%的内存使用量......

    但我计算的内存和观察到的内存利用率并不相同 .

    ..所以这并不奇怪 .

  • 2

    您可以在TensorFlow中控制GPU的内存分配 . 计算完Deep Learning模型的内存要求后,可以使用 tf.GPUOptions .

    例如,如果要从8 GB中分配4 GB(大约)GPU内存 .

    config = tf.ConfigProto()
    config.gpu_options.per_process_gpu_memory_fraction = 0.4
    session = tf.Session(config=config, ...)
    

    完成后,使用 config 参数在 tf.Session 中传递它

    per_process_gpu_memory_fraction 用于绑定可用的GPU内存量 .

    这是文档的链接: -

    https://www.tensorflow.org/tutorials/using_gpu

相关问题