TensorFlow和keras中GPU使用的设置操作

 更新时间:2021年05月17日 15:16:44   作者:Briwisdom  
这篇文章主要介绍了TensorFlow和keras中GPU使用的设置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1. 训练运行时候指定GPU

运行时候加一行代码:

CUDA_VISIBLE_DEVICES=1 python train.py

2. 运行过程中按需或者定量分配GPU

tensorflow直接在开启Session时候加几行代码就行,而Keras指定GPU,并限制按需用量和TensorFlow不太一样,因为keras训练是封装好的,不好对Session操作。如下是两种对应的操作。

keras中的操作:

import os
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
 
# 指定第一块GPU可用 
os.environ["CUDA_VISIBLE_DEVICES"] = "0" #指定GPU的第二种方法
 
config = tf.ConfigProto()
config.gpu_options.allocator_type = 'BFC' #A "Best-fit with coalescing" algorithm, simplified from a version of dlmalloc.
config.gpu_options.per_process_gpu_memory_fraction = 0.3 #定量
config.gpu_options.allow_growth = True  #按需
set_session(tf.Session(config=config)) 

TensorFlow中的操作:

#指定GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
 
#设置GPU定量分配
config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存 
session = tf.Session(config=config)
 
#设置GPU按需分配
config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
session = tf.Session(config=config)

补充:Keras以及Tensorflow强制使用CPU,GPU

Keras如果是使用Theano后端的话,应该是自动不使用GPU只是用CPU的,启动GPU使用Theano内部命令即可。

对于Tensorflow后端的Keras以及Tensorflow会自动使用可见的GPU,而我需要其必须只运行在CPU上。网上查到三种方法,最后一种方法对我有用,但也对三种都做如下记录:

使用tensorflow的 with tf.device('/cpu:0'):函数。简单操作就是把所有命令都放在前面所述的域里面。

使用tensorflow声明Session时的参数: 关于tensorflow中Session中的部分参数设置,以及Keras如何设置其调用的Tensorflow的Session,可以参见Keras设定GPU使用内存大小(Tensorflow backend)

对于Tensorflow,声明Session的时候加入device_count={'gpu':0}即可,代码如下:

import tensorflow as tf  
sess = tf.Session(config=tf.ConfigProto(device_count={'gpu':0}))

对于Keras,则调用后端函数,设置其使用如上定义的Session即可,代码如下:

import tensorflow as tf
import keras.backend.tensorflow_backend as KTF 
KTF.set_session(tf.Session(config=tf.ConfigProto(device_count={'gpu':0})))

对于多线程以及GPU内存设置等可以参见Keras设定GPU使用内存大小(Tensorflow backend)

3、第三种是使用CUDA_VISIBLE_DEVICES命令行参数,代码如下:

CUDA_VISIBLE_DEVICES="0" python3 train.py

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 实操Python爬取觅知网素材图片示例

    实操Python爬取觅知网素材图片示例

    大家好,本篇文章介绍的是实操Python爬取觅知网素材图片示例,感兴趣的朋友赶快来看一看吧,对你有用的话记得收藏起来,方便下次浏览
    2021-11-11
  • Python进阶之路模块、包和异常处理详解

    Python进阶之路模块、包和异常处理详解

    这篇文章主要介绍了Python进阶之路模块、包和异常处理的相关资料,文中通过实例演示,展示了如何构建模块化的应用并遵循最佳实践,需要的朋友可以参考下
    2024-12-12
  • 跟老齐学Python之集成开发环境(IDE)

    跟老齐学Python之集成开发环境(IDE)

    IDE的全称是:Integrated Development Environment,简称IDE,也稱為Integration Design Environment、Integration Debugging Environment,翻译成中文叫做“集成开发环境”,在台湾那边叫做“整合開發環境”。
    2014-09-09
  • python爬虫实现最新12306抢票

    python爬虫实现最新12306抢票

    这篇文章主要介绍了python爬虫实现最新12306抢票,每到放假过节的时候,很多人总是对于抢不到车票而烦恼,那么经过我几个小时的不懈努力,完成了基于python 的12306抢票爬虫,现在分享给大家。希望对大家有所帮助
    2022-01-01
  • python字典中items()函数用法实例

    python字典中items()函数用法实例

    Python字典items()函数作用以列表返回可遍历的(键, 值)元组数组,下面这篇文章主要给大家介绍了关于python字典中items()函数用法的相关资料,需要的朋友可以参考下
    2022-11-11
  • Python3.8如何解决No module named 'numpy'报错问题

    Python3.8如何解决No module named 'numpy&apos

    这篇文章主要介绍了Python3.8如何解决No module named 'numpy'报错问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 利用Python实现命令行版的火车票查看器

    利用Python实现命令行版的火车票查看器

    当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就能获得你想要的火车票信息!如果你刚掌握了Python基础,这将是个不错的小练习。
    2016-08-08
  • 24式加速你的Python(小结)

    24式加速你的Python(小结)

    这篇文章主要介绍了24式加速你的Python(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Linux上Miniconda的安装的实现步骤

    Linux上Miniconda的安装的实现步骤

    Miniconda是一个轻量级、免费且开源的跨平台软件包管理系统,本文主要介绍了Linux上Miniconda的安装的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • Python的Django中将文件上传至七牛云存储的代码分享

    Python的Django中将文件上传至七牛云存储的代码分享

    七牛云存储可以帮助服务器转存图片等数据,类似于Dropbox等存储服务,这里就带给大家Python的Django中将文件上传至七牛云存储的代码分享,需要的朋友可以参考下
    2016-06-06

最新评论