Tensorflow中tf.ConfigProto()详解
参考Tensorflow Machine Leanrning Cookbook
tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算
具体代码如下:
import tensorflow as tf
session_config = tf.ConfigProto(
log_device_placement=True,
inter_op_parallelism_threads=0,
intra_op_parallelism_threads=0,
allow_soft_placement=True)
sess = tf.Session(config=session_config)
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2,3], name='b')
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)
print(sess.run(c))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
具体解释
log_device_placement=True
设置为True时,会打印出TensorFlow使用了那种操作
inter_op_parallelism_threads=0
设置线程一个操作内部并行运算的线程数,比如矩阵乘法,如果设置为0,则表示以最优的线程数处理
intra_op_parallelism_threads=0
设置多个操作并行运算的线程数,比如 c = a + b,d = e + f . 可以并行运算
allow_soft_placement=True
有时候,不同的设备,它的cpu和gpu是不同的,如果将这个选项设置成True,那么当运行设备不满足要求时,会自动分配GPU或者CPU。
其他选项
当使用GPU时候,Tensorflow运行自动慢慢达到最大GPU的内存
session_config.gpu_options.allow_growth = True
1
当使用GPU时,设置GPU内存使用最大比例
session_config.gpu_options.per_process_gpu_memory_fraction = 0.4
1
是否能够使用GPU进行运算
tf.test.is_built_with_cuda()
1
另外的处理方法
import tensorflow as tf
sess = tf.Session()
with tf.device('/cpu:0'):
a = tf.constant([1.0, 3.0, 5.0], shape=[1, 3])
b = tf.constant([2.0, 4.0, 6.0], shape=[3, 1])
with tf.device('/gpu:0'):
c = tf.matmul(a, b)
c = tf.reshape(c, [-1])
with tf.device('/gpu:0'):
d = tf.matmul(b, a)
flat_d = tf.reshape(d, [-1])
combined = tf.multiply(c, flat_d)
print(sess.run(combined))
---------------------
作者:泥石流中的一股清流
来源:CSDN
原文:https://blog.csdn.net/qq_31261509/article/details/79746114
版权声明:本文为博主原创文章,转载请附上博文链接!
Tensorflow中tf.ConfigProto()详解相关推荐
- tf.ConfigProto()详解
tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 tf.ConfigProto一般用在创建session的时候,用来对session进行参数 ...
- tensorflow之tf.tensordot详解
tf.tensordot是tensorflow中tensor矩阵相乘的API,可以进行任意维度的矩阵相乘 (1).tf.tensordot函数详细介绍如下: tf.tensordot(a,b,axes ...
- 目标检测Tensorflow:Yolo v3代码详解 (2)
目标检测Tensorflow:Yolo v3代码详解 (2) 三.解析Dataset()数据预处理部分 四. 模型训练 yolo_train.py 五. 模型冻结 model_freeze.py 六. ...
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...
- Asp.net中GridView使用详解(引)【转】
Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...
- Linux中iptraf命令详解(IP局域网监控工具)
2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03 作者:佚名 ...
- ArcGIS Engine中的Symbols详解
转自原文 ArcGIS Engine中的Symbols详解 本文由本人翻译ESRI官方帮助文档.尊重劳动成果,转载请注明来源. Symbols ArcObjects用了三种类型的Symbol(符号样式 ...
- js路由在php上面使用,React中路由使用详解
这次给大家带来React中路由使用详解,React中路由使用的注意事项有哪些,下面就是实战案例,一起来看一下. 路由 通过 URL 映射到对应的功能实现,React 的路由使用要先引入 react-r ...
- Linux中etc目录详解
Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc or/etc/rc.d or/etc/rc*.d 启动.或改变运行级时运行的sc ...
最新文章
- Alpha Go 之父恩师Tomaso Poggio:深度学习需要从炼金术走向化学
- CVPR 2021 顶会冠军带你解密图像分割
- Centos系统搭建LAMP
- QT的QCheckBox类的使用
- ubuntu彻底卸载apache2、mysql、php(各版本通用)
- 怎么确定迭代器后面还有至少两个值_学会迭代和迭代器,让你的程序更省内存...
- 网络常见的 9 大命令
- 自动化(YUM/编译)安装PHP(5.3/5.5/7.0/7.1)脚本
- 公司怎么吸引和留住核心技术大牛
- 让Oracle跑得更快2—基于海量数据的数据库设计与优化
- 项目开发计划(GB856T——88)
- RainMeter学习3
- llvm-IR基础知识
- Matplotlib 绘制条形图
- EMC trainning杂谈
- 大数据专业学校课程安排 (仅供参考)
- mmdetection(6):Gradient Harmonized Single-stage Detector
- 小程序源码:后台版本趣味测试微信小程序源码下载支持自定义问题等等
- angular 1 菜鸟教程
- 度过有意义的生命(下)