zoukankan      html  css  js  c++  java
  • TensorFlow的GPU设置

    在使用GPU版的TensorFlow跑程序的时候,如果不特殊写代码注明,程序默认是占用所有主机上的GPU,但计算过程中只会用其中一块。也就是你看着所有GPU都被占用了,以为是在GPU并行计算,但实际上只有其中一块在运行;另外的所有显卡都闲着,但其显存都被占用了,所以别人也用不了。不过这种情况通过在程序之前加三行代码就可以解决:

    import os
    os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
    os.environ['CUDA_VISIBLE_DEVICES'] = "0,1"

    这行代码加在TensorFlow程序开头,就可以成功屏蔽掉系统中除 gpu0 和 gpu1 之外所有的GPU设备了(当然,这个gpu序号要根据实际情况来定)。

    注意,第二行 os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" 也很重要,保证程序中的GPU序号是和硬件中的序号是相同的,不加的话可能会造成不必要的麻烦。

    如果不想使用GPU,这样设置第三行代码 os.environ['CUDA_VISIBLE_DEVICES'] = "" 。在这个程序中所有的GPU设备都被屏蔽了,所以只能用CPU。

    除此之外,TensorFlow程序会默认占用显卡中的所有显存,如果想让程序需要多少显存就用多少应该怎么设置呢?创建 session 的时候加一项设置:

    config = tf.ConfigProto()
    config.gpu_options.allow_growth = True
    session = tf.Session(config=config)

    跑程序的时候可以用 nvidia-smi 命令来观察一下显存使用情况。
    原文链接:https://blog.csdn.net/byron123456sfsfsfa/article/details/79811286

  • 相关阅读:
    Leetcode: 二分搜索法
    ALM 中查看某个 test 的更改 history 历史
    Python: map() and reduce()
    如何查询注册表的值及 Powershell 应用
    使用 Windows PowerShell 实现 Web UI 自动化 (转)
    zhuan: WAN simulating tool
    Robot Framework 1
    Enable Coded UI Testing of Your Controls
    NetBeans GUI tests on Jenkins + Windows (转)
    (转)JDK 1.8 预览版Lambda语法分析
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/11445905.html
Copyright © 2011-2022 走看看