【问题标题】:tensorflow 2.0 gpu set available gpu?tensorflow 2.0 gpu设置可用gpu?
【发布时间】:2019-11-17 12:14:54
【问题描述】:
from tensorflow.python.client import device_lib

def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']
get_available_gpus()

['/device:GPU:0', '/device:GPU:1'] 我想在使用 tensorflow 2.0 gpu 训练和编译 cnn 时设置可用的 gpu
我该怎么做?

os.environ["CUDA_VISIBLE_DEVICES"]="1";  
from keras.backend.tensorflow_backend import set_session
config = tf.compat.v1.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.8
tf.compat.v1.Session(config=config)

这段代码是怎么不工作的

tf.版本 '2.0.0'

【问题讨论】:

    标签: gpu tensorflow2.0 tf.keras


    【解决方案1】:

    根据我在您的脚本中看到的,它看起来已经很正确了。据我了解,用于 tensorflow 2.x 的 keras 有自己的高级 API,称为 keras。 我也用

    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "1"
    

    try:
      %tensorflow_version 2.x
    except Exception:
      pass
    import tensorflow as tf
    tf.keras.backend.clear_session()
    

    你也可以切换到

    from tensorflow import keras
    from tensorflow.keras.optimizers import Adam
    from tensorflow.keras import layers
    

    你可以从这个link找到原因。 我认为首先您可以使用预先构建的(例如 VGG 或 ResNet)模型进行测试,以查看您的 GPU 是否运行。 我很确定我的一些自定义构建模型并没有真正使用 GPU。但是当我使用另一个模型运行时,它可以工作。这有点奇怪,问题在于我假设的模型。

    【讨论】:

      【解决方案2】:

      使用with tf.device():
      因此,您现在有两个名称为:

      ['/device:GPU:0', '/device:GPU:1'] 
      

      然后在你的代码中,例如你的主要工作:

      def main():
          # do somthing here...
      

      在 main() 中:

      if __name__ == "__main__":
          with tf.device('/device:GPU:0'): # select device here...
              main()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-03
        • 2019-08-26
        • 1970-01-01
        • 2020-01-14
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        相关资源
        最近更新 更多