tensorflow到底是什么(tensorflow算法)

今天刚把服务器搭建起来结果程序就跑不起来当时差点把自己吓尿了错误类型:CUDA_ERROE_OUT_OF_MEMORYEtensorflow/stream_executor/cuda/cuda_driver.cc:924]failedtoalloc17179869184bytesonhost:CUDA_ERROR_OUT_OF_MEMORYW./tenso…

大家好,又见面了,我是你们的朋友全栈君。

今天刚把服务器搭建起来 结果程序就跑不起来 当时差点把自己吓尿了

错误类型:CUDA_ERROE_OUT_OF_MEMORY

 

E tensorflow/stream_executor/cuda/cuda_driver.cc:924] failed to alloc 17179869184 bytes on host: CUDA_ERROR_OUT_OF_MEMORY
W ./tensorflow/core/common_runtime/gpu/pool_allocator.h:195] could not allocate pinned host memory of size: 17179869184
Killed

 

 

 

其实很容易理解 大致意思就是 服务器的GPU大小为M

tensorflow只能申请N(N<M)

也就是tensorflow告诉你 不能申请到GPU的全部资源 然后就不干了

解决方法:

找到代码中Session

在session定义前 增加

 

config = tf.ConfigProto(allow_soft_placement=True)

#最多占gpu资源的70%
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)

#开始不会给tensorflow全部gpu资源 而是按需增加
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

这样就没问题了

 

其实tensorflow 算是一个比较贪心的工具了

就算用device_id指定gpu 也会占用别的GPU的显存资源 必须在执行程序前

执行

export CUDA_VISIBLE_DEVICES=n python main.py

(n为可见的服务器编号)

再去执行python 代码.py 才不会占用别的GPU资源

最近刚开始搞tensorflow 之前都是caffe

这周连续3天被实验室的人 举报 占用过多服务器资源 真是心累 只要用上面的方法

也就是执行代码前 执行 export CUDA_VISIBLE_DEVICES=n

只让1个或者个别GPU可见 其他GPU看不见 就行了

举例而言,例如 服务器上的GPU有8块,3个人共用这个服务器,你在运行代码前,首先要输入命令

nvidia-smi

用上面的命令看下哪些GPU没有被使用,例如3号和5号没有被使用,则你可以用如下命令运行你的程序

export CUDA_VISIBLE_DEVICES=3,5 python main.py

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127615.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 变量的命名规范

    Python 变量的命名规范混乱或错误的命名不仅让我们对代码难以理解,更糟糕的是,会误导我们的思维,导致对代码的理解完全错误。相反,良好的命名,则可以让我们的代码非常容易读懂,也能向读者正确表达事物以及逻辑的本质,从而使得代码的可维护性就大大增强。

    2022年6月18日
    29
  • 深入浅出 超详细 从 线程锁 到 redis 实现分布式锁(篇节 2)「建议收藏」

    深入浅出 超详细 从 线程锁 到 redis 实现分布式锁(篇节 2)「建议收藏」redis实现分布式锁上节我们讲了线程锁在单体项目中的作用,和放在分布式项目里产生的问题,那接下来我们就来解决分布式架构上怎么保证数据的一直性使用redisTemplate实现//设置锁setIfAbsent(“lock”,”1213″)—>SETNXlock”1213″//释放锁redisTemplate.delete(“lock”);@GetMapping(“/cut”)publicObjectkc(){

    2022年6月21日
    23
  • h2数据库使用(h2数据库生成的文件)

    h2数据库进入shelljava-cp../lib/h2-1.4.200.jarorg.h2.tools.ShellWelcometoH2Shell1.4.200(2019-10-14)ExitwithCtrl+C[Enter]jdbc:h2:~/testURLjdbc:h2:/usr/local/db/xxx-xxx[Enter]org.h2.DriverDriver[Enter]UserxxxxxxPasswo

    2022年4月12日
    44
  • 网络游戏开发基础篇

    本篇的内容,会介绍几个内容:单例,dll动态加载以及一些跨平台的处理。       1、单例:单例模式是一种使用广泛而又比较简单的设计模式,他的定义我就不多介绍了,大家上网一查就知道了,基本都能理解。在游戏开发中,会有很多单件,所以封装一个单例类供后面的开发使用。       本单例使用模板实现,代码如下:[cpp] viewplaincopyprint?//

    2022年4月5日
    41
  • SQL Server 日期 字符串 格式转换 函数 datetime convert「建议收藏」

    SQL Server 日期 字符串 格式转换 函数 datetime convert「建议收藏」文章目录IntroSQLOthersIntro对某些表格数据进行查询时,常常有按照时间进行列值过滤的需求。SQLSQLServer内置函数CONVERT(data_type(length),data_to_be_converted,style)常见的两种转换需求:1.日期–>字符串2.字符串–>日期SQLselectgetdate(); –datetime–datetime–>stringdeclare@dateti

    2022年10月8日
    3
  • C语言 小游戏之贪吃蛇

    C语言 小游戏之贪吃蛇

    2021年11月28日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号