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使用设置相关推荐

  1. java中setStroke_Java调用setStroke()方法设置笔画属性的语法 原创

    默认情况下,Graphics 绘图类使用的笔画属性是粗细为1个像素的正方形,而Java2D的Graphics2D类可以调用setStroke()方法设置笔画的属性,如改变线条的粗细.虚实和定义线段端点 ...

  2. JAVA调用R语言之Rserve(二)

    之前,我写了一篇文章是java调用R语言之Rserve,但我发现那种方法比较麻烦.后来我发现了一个比较方便的方法,所以今天从又写了一篇博客,来简单说说. 这次我们需要写一个简单的R语言脚本,然后通过运 ...

  3. java 调用windows bat脚本

    当我们需要在java程序中调用外部程序,我们可用通过Runtime.exec()调用来完成. The class java.lang.Runtime features a static method ...

  4. native关键字(本地方法)、 java调用so动态链接库

    Java native关键字 一. 什么是Native Method    简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个j ...

  5. java使用集合存储过程_详解java调用存储过程并封装成map

    详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map           本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...

  6. java调节音量代码_用Java调用VC音量控制程序_java

    前言 本文通过java的Runtime接口来实现调用其他语言实现的应用程序,进而来实现对计算机硬件信息的监控和控制.本文是多媒体信息系统的一个部分,就是调整计算机音量. 使用VC编写音量控制程序 本控 ...

  7. java调用net_Java调用C#.net开发的WebService

    1.开发C#.net的WebService服务 1.1点击"开始"->"程序"-> "Microsoft Visual Studio 20 ...

  8. java 调用win32 api 学习总结

    java使用JInvoke调用windows API 使用jinvoke调用windowsAPI.jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样. 官网使用参考: ...

  9. linux下java调用matlab程序,linux_java调用windows_matlab程序

    0 说明 本文为研究java和matlab的混合编程,进行了详细的测试和探索,以解决linux环境下java程序调用matlab程序的一个应用. linux端的环境 :(运行java程序并调用wind ...

最新文章

  1. III 25 git
  2. 推荐一个妹子,播报汽车新闻
  3. 前沪江高级架构师学习笔记分享:分布式框架设计与实现
  4. cmake-gui出错解决方法
  5. spring加载xml配置文件
  6. FastDB内存数据库API
  7. c语言常用转向的语句,java中类似于C语言的goto无条件转向语句的语法是什么?...
  8. 匆忙赶路的时候别忘了适时停下来回头看看
  9. html页面阅读pdf,在HTML中查看PDF文件的最佳阅读器-HTML PDF Viewer
  10. 编写函数计算正方体体积
  11. 熟悉Keil C51和STC-ISP下载烧录软件
  12. 阅读YYKit之YYImage实现gif展示
  13. git 镜像下载和基本使用
  14. 北大教授的美国博士生涯:学术是自由灵魂的分泌物
  15. android源码大放送啦(实战开发必备)
  16. Windows Server安全日志与系统事件变更审计
  17. 安卓逆向基础实战----1.修改APK图标名称
  18. mac nginx 非brew安装_Mac 安装 nginx
  19. 评价星星三级样式:好、一般、差
  20. android 接听和挂断实现方式

热门文章

  1. go语言 Accept error: accept tcp [::]:5551: too many open files;
  2. 学好WindowsServer技术的几大秘籍
  3. 方差、标准差(均方差),均方误差、均方根误差
  4. Java区间拆分子集求和,对列表中的数字子集求和
  5. oracle数据库中最小的逻辑结构,Oracle数据库中基本逻辑结构简介
  6. c语言代码re通常什么错误,求帮助 C语言realloc和free触发断点的问题
  7. 二叉树的遍历实验报告C语言,数据结构-二叉树的遍历(类C语言描写叙述)
  8. html table 充满div,HTML,使用div+css实现自适应table布局
  9. Python面试基础
  10. 对JDBC进行简单的封装