当前位置: 首页 > news >正文

tensorflow如何指定gpu运行还是cpu运行

tf里面有个函数tf.device()主要用来指定运行设备的。
在TensorFlow中,如果你安装的TensorFlow版本是GPU版本的,并且你的电脑配置符合gpu运行的条件,那么系统就默认使用gpu进行训练,不用单独去指明用GPU。

但是有时候我们在配置的GPU环境下想要去利用cpu去处理某个模块的运算,又该如何去做呢?

这个时候就可以用到tf.device()来对运行设备进行指定,例如:

如果需要切换成CPU运算,可以调用tf.device(device_name)函数,其中device_name格式如/cpu:0其中的0表示设备号,TF不区分CPU的设备号,设置为0即可。GPU区分设备号/gpu:0和/gpu:1表示两张不同的显卡。

在一些情况下,我们即使是在GPU下跑模型,也会将部分Tensor储存在内存里,因为这个Tensor可能太大了,显存不够放,相比于显存,内存一般大多了,于是这个时候就常常人为指定为CPU设备。这种形式我们在一些代码中能见到。如:

 with tf.device('/cpu:0'):tf.app.run()

这句话就是实现我在运行下面函数的时候使用的cpu去运算。tf.app.run() 是函数入口,类似于c++中的main()

run() 函数的运作计制是:先加载flags的参数项,然后执行main() 函数,其中参数使用tf.app.flags.FLAGS定义。

import tensorflow as tf# 定义参数
#  第一个是参数名称,   第二个参数是默认值,   第三个是参数描述
tf.app.flags.DEFINE_string('string', 'myname', 'The type of  myname is string')
tf.app.flags.DEFINE_integer('image_size', 32, 'The size of image')FLAGS = tf.app.flags.FlAGS# 定义主函数
# 需要传递参数
def main(argv):print('string: ', FLAGS.string)print('image_size: ' , FLAGS.image_size)if __name__ = '__main__':tf.app.run()

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Kotlin中 take、drop方法使用
  • 生命在于学习——Python人工智能原理(1.2)
  • go map
  • 【小技巧】KEIL C51 报错`Warning L6: XDATA Space Memory Overlap`
  • [前端] axios 请求成功了,为什么通过浏览器看不到返回数据
  • 极致优化之道-JVM字节码调优全揭秘
  • 2024电工杯数学建模B题完整论文讲解(含每一问python代码+数据)
  • 2、OpenVPN搭建
  • 学 Python 具体能干什么?
  • ZeroTier+Nomachine远程
  • 【Python】 使用SMOTE解决数据不平衡问题
  • 【加密与解密(第四版)】第十八章笔记
  • 【计算机网络】第三章——停止-等待协议
  • VGG论文解析—Very Deep Convolutional Networks for Large-Scale Image Recognition
  • clickhouse 中的数组(array)和元组(Tuple)—— clickhouse 基础篇(二)
  • [笔记] php常见简单功能及函数
  • [译] 怎样写一个基础的编译器
  • 【5+】跨webview多页面 触发事件(二)
  • 4. 路由到控制器 - Laravel从零开始教程
  • Apache Spark Streaming 使用实例
  • Create React App 使用
  • idea + plantuml 画流程图
  • If…else
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • JavaScript异步流程控制的前世今生
  • mongodb--安装和初步使用教程
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring Boot快速入门(一):Hello Spring Boot
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vuex 学习笔记 01
  • 基于 Babel 的 npm 包最小化设置
  • 基于Android乐音识别(2)
  • 免费小说阅读小程序
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (23)Linux的软硬连接
  • (备忘)Java Map 遍历
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .DFS.
  • .net 7 上传文件踩坑
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 表达式计算:Expression Evaluator
  • .NET企业级应用架构设计系列之结尾篇
  • .net下简单快捷的数值高低位切换
  • [ C++ ] STL_list 使用及其模拟实现
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网