tensorflow指定CPU与GPU运算的⽅法实现
1.指定GPU运算
如果安装的是GPU版本,在运⾏的过程中TensorFlow能够⾃动检测。如果检测到GPU,TensorFlow会尽可能的利⽤到的第⼀个GPU来执⾏操作。
如果机器上有超过⼀个可⽤的GPU,除了第⼀个之外的其他的GPU默认是不参与计算的。为了让TensorFlow使⽤这些GPU,必须将OP明确指派给他们执⾏。device语句能够⽤来指派特定的CPU或者GPU执⾏操作:
import tensorflow as tf
import numpy as np
with tf.Session() as sess:
with tf.device('/cpu:0'):
a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
sum = sess.run(add, feed_dict={a: 3, b: 4})
print(sum)
设备的字符串标识,当前⽀持的设备包括以下的⼏种:
cpu:0 机器的第⼀个cpu。
gpu:0 机器的第⼀个gpu,如果有的话
gpu:1 机器的第⼆个gpu,依次类推
类似的还有tf.ConfigProto来构建⼀个config,在config中指定相关的GPU,并且在session中传⼊参数config=“⾃⼰创建的config”来指定gpu操作
其中,tf.ConfigProto函数的参数如下:
log_device_placement=True: 是否打印设备分配⽇志
allow_soft_placement=True: 如果指定的设备不存在,允许TF⾃动分配设备
import tensorflow as tf
import numpy as np
config = tf.ConfigProto(log_device_placement=True, allow_soft_placement=True)tensorflow版本选择
with tf.Session(config=config) as sess:
a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
sum = sess.run(add, feed_dict={a: 3, b: 4})
print(sum)
2.设置GPU使⽤资源
上⽂的tf.ConfigProto函数⽣成的config之后,还可以设置其属性来分配GPU的运算资源,如下代码就是按需分配
import tensorflow as tf
import numpy as np
config = tf.ConfigProto(log_device_placement=True, allow_soft_placement=True)
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:
a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
sum = sess.run(add, feed_dict={a: 3, b: 4})
print(sum)
使⽤allow_growth option,刚开始会分配少量的GPU容量,然后按需要慢慢的增加,有与不会释放内存,随意会导致内存碎⽚。
同样,上述的代码也可以在config创建时指定,
import tensorflow as tf
import numpy as np
gpu_options = tf.GPUOptions(allow_growth=True)
config = tf.ConfigProto(gpu_options=gpu_options)
with tf.Session(config=config) as sess:
a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
sum = sess.run(add, feed_dict={a: 3, b: 4})
print(sum)
我们还可以给gpu分配固定⼤⼩的计算资源。
gpu_options = tf.GPUOptions(allow_growth=True, per_process_gpu_memory_fraction=0.5)
上述代码的含义是分配给tensorflow的GPU显存⼤⼩为:GPU的实际显存*0.5
到此这篇关于tensorflow指定CPU与GPU运算的⽅法实现的⽂章就介绍到这了,更多相关tensorflow指定CPU与GPU运算内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论