参考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()详解相关推荐

  1. tf.ConfigProto()详解

    tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 tf.ConfigProto一般用在创建session的时候,用来对session进行参数 ...

  2. tensorflow之tf.tensordot详解

    tf.tensordot是tensorflow中tensor矩阵相乘的API,可以进行任意维度的矩阵相乘 (1).tf.tensordot函数详细介绍如下: tf.tensordot(a,b,axes ...

  3. 目标检测Tensorflow:Yolo v3代码详解 (2)

    目标检测Tensorflow:Yolo v3代码详解 (2) 三.解析Dataset()数据预处理部分 四. 模型训练 yolo_train.py 五. 模型冻结 model_freeze.py 六. ...

  4. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route

    前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...

  5. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  6. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  7. ArcGIS Engine中的Symbols详解

    转自原文 ArcGIS Engine中的Symbols详解 本文由本人翻译ESRI官方帮助文档.尊重劳动成果,转载请注明来源. Symbols ArcObjects用了三种类型的Symbol(符号样式 ...

  8. js路由在php上面使用,React中路由使用详解

    这次给大家带来React中路由使用详解,React中路由使用的注意事项有哪些,下面就是实战案例,一起来看一下. 路由 通过 URL 映射到对应的功能实现,React 的路由使用要先引入 react-r ...

  9. Linux中etc目录详解

    Linux中etc目录详解 /etc目录 包含很多文件.许多网络配置文件也在/etc 中. /etc/rc   or/etc/rc.d   or/etc/rc*.d   启动.或改变运行级时运行的sc ...

最新文章

  1. Alpha Go 之父恩师Tomaso Poggio:深度学习需要从炼金术走向化学
  2. CVPR 2021 顶会冠军带你解密图像分割
  3. Centos系统搭建LAMP
  4. QT的QCheckBox类的使用
  5. ubuntu彻底卸载apache2、mysql、php(各版本通用)
  6. 怎么确定迭代器后面还有至少两个值_学会迭代和迭代器,让你的程序更省内存...
  7. 网络常见的 9 大命令
  8. 自动化(YUM/编译)安装PHP(5.3/5.5/7.0/7.1)脚本
  9. 公司怎么吸引和留住核心技术大牛
  10. 让Oracle跑得更快2—基于海量数据的数据库设计与优化
  11. 项目开发计划(GB856T——88)
  12. RainMeter学习3
  13. llvm-IR基础知识
  14. Matplotlib 绘制条形图
  15. EMC trainning杂谈
  16. 大数据专业学校课程安排 (仅供参考)
  17. mmdetection(6):Gradient Harmonized Single-stage Detector
  18. 小程序源码:后台版本趣味测试微信小程序源码下载支持自定义问题等等
  19. angular 1 菜鸟教程
  20. 度过有意义的生命(下)

热门文章

  1. 2022-2028年中国涤纶市场投资分析及前景预测报告
  2. 未授予用户在此计算机上的请求登陆类型处理办法
  3. LeetCode简单题之重新格式化字符串
  4. SpringBoot-web开发(二): 页面和图标定制(源码分析)
  5. 自研GPU之火(续)
  6. MindSpore模型推理
  7. 汽车HUD(Head-up Display)的技术难点
  8. 卷积神经网络(CNN)原理
  9. PHP算法题:如何实现冒泡排序
  10. HarmonyOS 设置图标在Text 旁边