tensorflow运行在gpu还是cpu

tensorflow在电脑的gpu和cpu上均可运行:

    "/cpu:0":机器的 CPU。 "/device:GPU:0":机器的 GPU(如果有一个)。 "/device:GPU:1":机器的第二个 GPU(以此类推)。

当想要知道指令和张量在哪个设备上运行时,可以这样设置session:

sess = tf.Session(config=tf.ConfigProto(log_device_placemnet=True))

手动分配设备

with tf.device(/cpu:0):
...
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

当使用GPU时,需要设置允许GPU增加内存,有两种设置方式:

(1)设置allow_grouth,根据运行时的需要来分配GPU内存

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

(2)设置per_process_gpu_memory_fraction,可以设置 GPU 应分配到的内存占总内存量的比例,如分配40%

sess = tf.Session(config=tf.ConfigProto(gpu_options.per_process_gpu_memory_fraction=0.4))

当指定设备运行时,为防止指定设备不存在,可以设置allow_soft_placement为true,这样tensorflow会选择现有的设备来运行程序。

sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))

如果安装的是GPU版本的tensorflow,机器上有支持的GPU,也正确安装了显卡驱动、CUDA和cuDNN,默认情况下,Session会在GPU上运行,若要强制使用CPU,参考

经验分享 程序员 微信小程序 职场和发展