Tensorflow_GPU_1
来源:互联网 发布:windows信息发布系统 编辑:程序博客网 时间:2024/06/10 08:12
Tensorflow加速计算(多GPU和分布式)
1 使用GPU基本操作
在Tensorflow中可以通过tf.device()函数来手动指定运行操作的设备。
对于CPU而言,在默认的情况下,即使的电脑有多个GPU,Tensorflow依然不会区分它们,都是用/cpu:0作为名称。
对于GPU而言,则会使用/gpu:0,/gpu:1,…/gpu:n
Tensorflow提供了一个快捷的方式来查看运行设备: 在tf.ConfigProto中设置log_device_placement=True。
如果在具有GPU的环境中,会有限选择GPU
import tensorflow as tfa = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a')b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')c = a + bsess = tf.Session(config=tf.ConfigProto(log_device_placement=True))print(sess.run(c))
[ 2. 4. 6.]
在IDE(pycharm)中还会输出:
add: (Add): /job:localhost/replica:0/task:0/gpu:0
a: (Const): /job:localhost/replica:0/task:0/gpu:0
b: (Const): /job:localhost/replica:0/task:0/gpu:0
显示了执行每一个运算的设备。
当然,可以通过手动指定运行设备来执行某些操作
import tensorflow as tfwith tf.device('/cpu:0'): a = tf.constant([1.0, 2.0, 3.0], shape=[3], name='a') b = tf.constant([1.0, 2.0, 3.0], shape=[3], name='b')with tf.device('/gpu:0'): c = a + bwith tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess: print(sess.run(c))
[ 2. 4. 6.]
add: (Add): /job:localhost/replica:0/task:0/gpu:0
b: (Const): /job:localhost/replica:0/task:0/cpu:0
a: (Const): /job:localhost/replica:0/task:0/cpu:0
注:
不是所有的操作都可以放在CPU上运算:
(1) tf.one_hot 就需要在CPU上运行
(2)tf.variable() 函数在GPU上只支持float32 float64和double的参数
为了避免上述问题,tensorflow在tf.ConfigProto中提供了一个参数 allow_soft_placement参数,当设置为True时,如果运算无法有GPU执行,那么Tensorflow会自动将它放在CPU上执行。
虽然GPU可以加速tensorflow的计算,但是一般的不会将所有的计算都放在GPU上。一个比较好的实践时,将计算密集型的运算放在GPU上,将其他操作放在CPU上。
- Tensorflow_GPU_1
- Archlinux(generic) Linux 下安装安装配置tensorflow_gpu_1.2.0
- IOS欢迎界面Launch Screen动态加载广告
- python 读取文件时next和seek的应用
- 机器学习、深度学习的理论与实战入门建议整理
- 浅谈JAVA8新特性
- 欢迎使用CSDN-markdown编辑器
- Tensorflow_GPU_1
- libstdc++.so.6: version `GLIBCXX_3.4.20' not found
- Spring-boot通过redisTemplate使用redis(无须手动序列化)
- mongodb根据id获取时间____js
- Wi-Fi 爆重大安全漏洞,Android、iOS、Windows 等所有无线设备都不安全了
- 安卓端double取小数点后2位4种方法(都有bug)
- 查找操作------折半查找(二分查找)
- 前端基础HTML 笔记
- [二分 ST表 杂题] Codeforces875D. High Cry