java 调用gpu_GPU使用设置
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)
##########
java 调用gpu_GPU使用设置相关推荐
- java中setStroke_Java调用setStroke()方法设置笔画属性的语法 原创
默认情况下,Graphics 绘图类使用的笔画属性是粗细为1个像素的正方形,而Java2D的Graphics2D类可以调用setStroke()方法设置笔画的属性,如改变线条的粗细.虚实和定义线段端点 ...
- JAVA调用R语言之Rserve(二)
之前,我写了一篇文章是java调用R语言之Rserve,但我发现那种方法比较麻烦.后来我发现了一个比较方便的方法,所以今天从又写了一篇博客,来简单说说. 这次我们需要写一个简单的R语言脚本,然后通过运 ...
- java 调用windows bat脚本
当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...
- native关键字(本地方法)、 java调用so动态链接库
Java native关键字 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个j ...
- java使用集合存储过程_详解java调用存储过程并封装成map
详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map 本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...
- java调节音量代码_用Java调用VC音量控制程序_java
前言 本文通过java的Runtime接口来实现调用其他语言实现的应用程序,进而来实现对计算机硬件信息的监控和控制.本文是多媒体信息系统的一个部分,就是调整计算机音量. 使用VC编写音量控制程序 本控 ...
- java调用net_Java调用C#.net开发的WebService
1.开发C#.net的WebService服务 1.1点击"开始"->"程序"-> "Microsoft Visual Studio 20 ...
- java 调用win32 api 学习总结
java使用JInvoke调用windows API 使用jinvoke调用windowsAPI.jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样. 官网使用参考: ...
- linux下java调用matlab程序,linux_java调用windows_matlab程序
0 说明 本文为研究java和matlab的混合编程,进行了详细的测试和探索,以解决linux环境下java程序调用matlab程序的一个应用. linux端的环境 :(运行java程序并调用wind ...
最新文章
- III 25 git
- 推荐一个妹子,播报汽车新闻
- 前沪江高级架构师学习笔记分享:分布式框架设计与实现
- cmake-gui出错解决方法
- spring加载xml配置文件
- FastDB内存数据库API
- c语言常用转向的语句,java中类似于C语言的goto无条件转向语句的语法是什么?...
- 匆忙赶路的时候别忘了适时停下来回头看看
- html页面阅读pdf,在HTML中查看PDF文件的最佳阅读器-HTML PDF Viewer
- 编写函数计算正方体体积
- 熟悉Keil C51和STC-ISP下载烧录软件
- 阅读YYKit之YYImage实现gif展示
- git 镜像下载和基本使用
- 北大教授的美国博士生涯:学术是自由灵魂的分泌物
- android源码大放送啦(实战开发必备)
- Windows Server安全日志与系统事件变更审计
- 安卓逆向基础实战----1.修改APK图标名称
- mac nginx 非brew安装_Mac 安装 nginx
- 评价星星三级样式:好、一般、差
- android 接听和挂断实现方式
热门文章
- go语言 Accept error: accept tcp [::]:5551: too many open files;
- 学好WindowsServer技术的几大秘籍
- 方差、标准差(均方差),均方误差、均方根误差
- Java区间拆分子集求和,对列表中的数字子集求和
- oracle数据库中最小的逻辑结构,Oracle数据库中基本逻辑结构简介
- c语言代码re通常什么错误,求帮助 C语言realloc和free触发断点的问题
- 二叉树的遍历实验报告C语言,数据结构-二叉树的遍历(类C语言描写叙述)
- html table 充满div,HTML,使用div+css实现自适应table布局
- Python面试基础
- 对JDBC进行简单的封装