【问题标题】:How to lower RAM consumption in Tensorflow?如何降低 Tensorflow 中的 RAM 消耗?
【发布时间】:2020-02-24 18:33:44
【问题描述】:

你好,

我正在尝试在我的 Nvidia Jetson Nano 上使用 DarkFlow,一个 YOLO 的 Python 实现(它使用 Tensorflow 作为后端)来检测对象。我得到了所有的设置和东西,但它不想训练。我将其设置为 GPU 模式,输出中的一行显示:

Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 897MB memory) -> physical GPU (device: 0, name: NVIDIA Tegra X1, pci bus id: 0000:00:00.0, compute capability: 5.3)

这是它在训练被“杀死”之前输出的最后一行,没有任何进一步的消息。因为它是一个重卷积神经网络,我认为原因是 RAM 过度消耗。现在我只能在我的 Jetson Nano 中使用这个 GPU,有没有人建议如何降低它或如何解决问题?

提前感谢您的回答!

【问题讨论】:

    标签: tensorflow memory ram yolo conv-neural-network


    【解决方案1】:

    您可以尝试将batch_size 降低到1 并降低width,height 的值,但不建议在jetson nano 上进行培训。它功能有限(4 GB 共享 RAM)阻碍了学习过程。为了解决这些限制,您可以尝试关注this 帖子或this 一个以增加充当 RAM 的swap_area,但我仍然建议仅将 nano 用于推理。

    EDIT1:众所周知,Tensorflow 倾向于尝试分配所有可用的 RAM,从而使进程被操作系统杀死。要解决此问题,您可以使用 tf.GPUOptions 来限制 Tensorflow 的 RAM 使用量。 示例:

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

    我们选择 per_process_gpu_memory_fraction 为 0.4,因为最佳实践是不要让 Tensorflow 分配超过一半可用资源的 RAM。(也因为它正在共享)

    祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多