Tensorflow并行计算:多核(multicore),多线程(multi-thread),计算图分割(Graph Partition)

Github下载完整代码:https://github.com/rockingdingo/tensorflow-tutorial/tree/master/mnist

 

目录

简介

一、多核并行:CPU多核的运算和资源调用

二、多线程,设置Multi-threads

三、分割计算图模型Graph:将Tensorflow的图运算分配到不同计算单元


简介

利用tensorflow训练深度神经网络模型需要消耗很长时间,因为并行化计算就为提升运行速度提供了重要思路。Tensorflow提供了多种方法来使程序的并行运行,在使用这些方法时需要考虑的问题有:选取的计算设备是CPU还是GPU,每个CPU多少核的资源并行计算,构建计算图Graph时消耗资源如何分配等等问题下面我们以Linux多核CPU的环境为例介绍几种常见方法来提升你的tensorflow程序的运行速度。

 

 

一、多核并行:CPU多核的运算和资源调用

        在Tensorflow程序中,我们会经常看到”with tf.device("/cpu:0"): “ 这个语句。单独使用这个语句,而不做其他限制,实际上默认tensorflow程序占用所有可以使用的内存资源和CPU核,比如如果你的linux服务器是8核CPU,那么该程序会迅速占用可以使用的任意CPU,使用接近100%,最终结果就是影响整台服务器的其他程序。因此我们会想到需要限制使用的CPU核的个数和资源。(本次测试是在windows10服务器上,一共有两块CPU,每一块CPU分别都是16核)

 

运行convolutional.py代码,可以看到CPU1中16核全开,但是有些核的使用率很低!!! 

       

 

        在构建tf.Session() 变量时,可以通过传入tf.ConfigProto() 参数来改变一个tensorflow的session会话所使用的CPU核的个数以及线程数等等。

代码1 

config = tf.ConfigProto(device_count={"CPU": 4}, # limit to num_cpu_core CPU usage 限制CPU使用的核的个数
                inter_op_parallelism_threads = 1, 
                intra_op_parallelism_threads = 1,
            &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的兔子Philip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值