当前位置 主页 > 网站技术 > 代码类 >

    基于tensorflow指定GPU运行及GPU资源分配的几种方式小结

    栏目:代码类 时间:2020-02-03 15:09

    1. 在终端执行时设置使用哪些GPU(两种方式)

    (1) 如下(export 语句执行一次就行了,以后再运行代码不用执行)

    (2) 如下

    2. 代码中指定(两种方式)

    (1)

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

    (2)

    # Creates a graph.
    with tf.device('/gpu:1'):
     a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
     b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
     c = tf.matmul(a, b)
    # Creates a session with log_device_placement set to True.
    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    # Runs the op.
    print sess.run(c)

    若想使用多个GPU,如下

    c = []
    for d in ['/gpu:0', '/gpu:1']:
     with tf.device(d):
      a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])
      b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])
      c.append(tf.matmul(a, b))
    with tf.device('/cpu:0'):
     sum = tf.add_n(c)
    # Creates a session with log_device_placement set to True.
    sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
    # Runs the op.
    print sess.run(sum)

    3.GPU资源分配

    (1) 设置允许GPU增长

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

    (2) 设置每个GPU内存使用多少

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

    以上这篇基于tensorflow指定GPU运行及GPU资源分配的几种方式小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。