文档章节

GPU使用设置

KYO4321
 KYO4321
发布于 06/13 19:26
字数 534
阅读 4
收藏 0
keras参考资料:https://keras.io/zh/getting-started/faq/#sample-batch-epoch
https://keras-cn.readthedocs.io/en/latest/


参考资料:https://www.jianshu.com/p/5d47f152ff62
https://blog.csdn.net/A632189007/article/details/77978058

###写法一:充分利用申请的资源
import tensorflow as tf
import keras.backend.tensorflow_backend as KTF
config = tf.ConfigProto()  

config.gpu_options.allow_growth=True
session = tf.Session(config=config)
KTF.set_session(session)


#######写法二:限制GPU使用率
import os
import tensorflow as tf
import keras.backend.tensorflow_backend as KTF
config = tf.ConfigProto()


# 获取环境变量
env_dist = os.environ
#单卡GPU最大显存
card_gpu_mem_total = int(env_dist['ALIYUN_COM_GPU_MEM_CONTAINER'])
#启动Notebook分配的GPU显存
request_card_gpu_mem = int(env_dist['ALIYUN_COM_GPU_MEM_DEV'])

# percent=0.7 is because tensorflow control gpu memory is not accurate, it is recommended to multiply by 0.7 to ensure that the upper limit is not exceeded.
percent=0.7
fraction = round(card_gpu_mem_total*percent/request_card_gpu_mem, 1)
config.gpu_options.per_process_gpu_memory_fraction = fraction

session = tf.Session(config=config)
KTF.set_session(session)
##tensorflow调用GPU命名行

import os
import tensorflow as tf

# 获取环境变量
env_dist = os.environ
#单卡GPU最大显存
card_gpu_mem_total=int(env_dist['ALIYUN_COM_GPU_MEM_CONTAINER'])
#启动Notebook分配的GPU显存
request_card_gpu_mem=int(env_dist['ALIYUN_COM_GPU_MEM_DEV'])

# percent=0.7 is because tensorflow control gpu memory is not accurate, it is recommended to multiply by 0.7 to ensure that the upper limit is not exceeded.
percent=0.7
fraction=round(card_gpu_mem_total*percent/request_card_gpu_mem , 1)

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = fraction
sess = tf.Session(config=config)

# write your code
a = tf.constant(3)
b = tf.constant(4)
print('a + b =  {0}'.format(sess.run(a+b)))





##pytorch调用GPU命令行
import os, torch
torch.cuda.is_available()
os.environ["CUDA_VISIBLE_DEVICES"] = os.getenv("ALIYUN_COM_GPU_MEM_IDX")
##pytorch按卡使用,不能按显存按需使用


###################
###keras调用GPU命令行
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

import tensorflow as tf
import keras.backend.tensorflow_backend as KTF
config = tf.ConfigProto()

config.gpu_options.allow_growth=True
session = tf.Session(config=config)
KTF.set_session(sess)



####查看GPU使用状态:nvidia-smi实时刷新并高亮显示状态
##其他参考资料:https://blog.csdn.net/huangfei711/article/details/79230446#
watch -n 1 -d nvidia-smi


####参考资料:https://blog.csdn.net/HaixWang/article/details/83349023
##https://blog.csdn.net/u013066730/article/details/77510015
##https://blog.csdn.net/silent56_th/article/details/60154637
##其他补充说明:
import os
import tensorflow as tf
import keras.backend.tensorflow_backend as KTF

#进行配置,每个GPU使用60%上限现存
os.environ["CUDA_VISIBLE_DEVICES"]="1,2" # 使用编号为1,2号的GPU
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.6  #每个GPU现存上限控制在60%以内
session = tf.Session(config=config)

# 设置session
KTF.set_session(session)


##########
##分布式
##keras的分布式是利用TensorFlow实现的,要想完成分布式的训练,你需要将Keras注册在连接一个集群的TensorFlow会话上:
server = tf.train.Server.create_local_server()
sess = tf.Session(server.target)
from keras import backend as K
K.set_session(sess)

##########

© 著作权归作者所有

上一篇: docker配置
下一篇: 待整理
KYO4321
粉丝 4
博文 125
码字总数 67811
作品 0
深圳
程序员
私信 提问
教程 如何使用深度学习硬件的空余算力自动挖矿

     人工智能和虚拟货币是 2017 年的两大重要名词,作为一名开发者,如何充分利用自己昂贵的硬件设备呢?本文将给你一种有趣的解决方案。         如果没有 GPU,现代深度学习是不...

深度学习
2017/12/26
0
0
教程 | 如何使用深度学习硬件的空余算力自动挖矿

  选自Medium   作者:Max Lapan   机器之心编译   参与:李泽南      人工智能和虚拟货币是 2017 年的两大重要名词,作为一名开发者,如何充分利用自己昂贵的硬件设备呢?本文将...

机器之心
2017/12/25
0
0
[开发技巧]·TensorFlow&Keras GPU使用技巧

[开发技巧]·TensorFlow&Keras GPU使用技巧 1.问题描述 在使用TensorFlow&Keras通过GPU进行加速训练时,有时在训练一个任务的时候需要去测试结果,或者是需要并行训练数据的时候就会显示OOM...

小宋是呢
05/17
0
0
基于PyTorch的深度学习入门教程(六)——数据并行化

前言 本文参考PyTorch官网的教程,分为五个基本模块来介绍PyTorch。为了避免文章过长,这五个模块分别在五篇博文中介绍。 Part1:PyTorch简单知识 Part2:PyTorch的自动梯度计算 Part3:使用...

zzlyw
2017/12/11
0
0
15- 深度学习之神经网络核心原理与算法-多gpu实现CNN图片分类

使用TensorFlow中的卷积神经网络CNN对于图片进行分类。 简介 CIFAR-10 每张图片: (32,32) 六万张 十种分类 训练集: 五万张 测试集: 一万张 汽车 手机 鸟 猫 等。 图片 彩色 (32,32) 我们将要...

天涯明月笙
2018/06/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

局域网能互相ping通,ubuntu虚拟机不能上外网

【问题】 桥接模式老是无法上网,查看本机IP发现被分配了一个私网地址,猜测应该是虚拟DHCP服务器没有打开,于是查看Ubuntu的网络配置: /etc/network/interfaces 发现没有dhcp配置的信息,只...

tahiti_aa
16分钟前
0
0
以太坊助记词PHP开发包简介

以太坊助记词PHP开发包用来为PHP以太坊应用增加助记词和层级确定密钥支持能力。下载地址:以太坊助记词php开发包 。 1、开发包概述 以太坊助记词PHP开发包主要包括以下特性: 生成符合BIP39...

汇智网教程
昨天
2
0
系统监控-分布式调用链Skywalking

1. 为什么要使用分布式调用链技术? 随着公司业务的高速发展,公司服务之间的调用关系愈加复杂,如何理清并跟踪它们之间的调用关系就显的比较关键。线上每一个请求会经过多个业务系统,并产生...

秋日芒草
昨天
3
0
告诉自己的一些建议

摆脱学生心态 尽快发挥自己价值,让公司感知自己的存在,才是王道 选择比努力重要 自己附着的平台的经济体要是一个快速崛起的行业 转行趁早,年龄越大选择成本越高 趁早大量试错,学习新领域...

林怡丰
昨天
2
0
Windows下安装Redis

下载地址: 3.0老版已不维护更新:https://github.com/MicrosoftArchive/redis/releases 4.0版 https://github.com/tporadowski/redis/releases 中文官网:http://www.redis.net.cn/ https:......

Aeroever
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部