当你们在用模型加载,tensorflow-gpu预测的时候,有没有出现这样的错误??

经过网上的资料查阅,更多的解释是GPU的显存不足造成的,于是乎,我查看了一下GPU显存:nvidia-smi

不看不知道,一看确实是那么回事:tensorflow-gpu执行默认将GPU显存占满,官网也做了解释说明:https://www.tensorflow.org/guide/using_gpu

刚开始没有看到官网的解释,思路是当程序执行完成之后,能不能自动的执行释放显存的程序,网上这方面的代码不多,后来又看到上面官网的解释,显存不能释放,可能会有更严重的内存碎片,因此程序释放显存的想法就打消了。

在仔细看官网的解释,可能比较好的方法是指定GPU所占的比例,于是乎,我又多次的尝试:一般来说,这些指定的过程都放在代码的开始处,因为我用的框架是python的Flask框架,所以我的想法也是将这个指定GPU显存的代码放在Flask开始处,不执行不知道,一执行整个人都不好了,报了这个错:

could not retrieve CUDA device count: CUDA_ERROR_NOT_INITIALIZED: initialization error

What??这是什么错!在百度,Google,StackOverflow,Github等等网站查找相关问题解释,大多数解释是multiprocessing等等的解释,说实话我确实不是很明白,但我总觉得这个问题没有复杂到这个地步,因为几行代码应该是放在: 使用tensorflow之前!

因为Flask接口用到这个tensorflow之前,我需要初始化一个类实例,在初始化类的时候也用到tensorflow,于是乎,我想把这几行代码放在初始化类实例的地方,心态崩了,还是不行!还是报:

could not retrieve CUDA device count: CUDA_ERROR_NOT_INITIALIZED: initialization error

相同的错误!这可怎么办,如果执行一次默认把显存占满,后面相同的操作就可能没办法执行了,所以必须分配GPU!

想了2天,今天上午,灵感来了,因为我是需要调用接口用到tensorflow,初始化类也是在这个接口里面,意思就是调用这个接口的时候,才会用到tensorflow,于是乎,我这个笨脑子也突然来了想法:直接在调用这个接口的时候,把这几行代码放进去,也就相当于初始化的时候执行了这几行代码,开始操作:

如图,将这几行代码放在这个位置,在本地尝试了一下没有什么问题,于是乎,在服务器代码执行了相同的操作,开启服务,跑,跑,跑,没有报错!

查看nvidia-smi:GPU显存占用率果然只占了40%!!!解决了我心头大患!!

写这篇随笔没有什么其他想法,只是记录一下自己的坑!记录一下自己的知识盲点,如果有朋友遇到这样的问题,可以作为参考,不足的地方望指正批评!

OOM when allocating tensor of shape [] and type float [[node conv2d_224/kernel/Initializer/random_uniform/min (defined at ./intances/utils.py:19) ]]的更多相关文章

  1. 【tf.keras】Resource exhausted: OOM when allocating tensor with shape [9216,4096] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

    运行以下类似代码: while True: inputs, outputs = get_AlexNet() model = tf.keras.Model(inputs=inputs, outputs= ...

  2. Resource exhausted: OOM when allocating tensor with shape[3,3,384,384] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0。。。。。

    报错信息: OP_REQUIRES failed at assign_op.h:111 : Resource exhausted: OOM when allocating tensor with sh ...

  3. tensorflow报错 tensorflow Resource exhausted: OOM when allocating tensor with shape

    在使用tensorflow的object detection时,出现以下报错 tensorflow Resource exhausted: OOM when allocating tensor wit ...

  4. 显存不够----ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[4096]

    ResourceExhaustedError (see above for traceback): OOM when allocating tensor with shape[4096] 类似问题 h ...

  5. TensorFlow OOM when allocating tensor with shape[5000,384707]

    在session范围内不要进行eval()或者convert_to_tensor()操作, 否则会造成OOM,或者报出错误:GraphDef cannot be larger than 2GB usi ...

  6. ''tensorflow.python.framework.errors_impl.ResourceExhaustedError: OOM when allocating tensor with shape[?]'' 错误分析

    这是tensorflow 一个经常性错误,错误的原因在于:显卡内存不够. 解决方法就是降低显卡的使用内存,途径有以下几种措施: 1 减少Batch 的大小 2 分析错误的位置,在哪一层出现显卡不够,比 ...

  7. OP_REQUIRES failed at conv_ops.cc:386 : Resource exhausted: OOM when allocating tensor with shape..

    tensorflow-gpu验证准确率是报错如上: 解决办法: 1. 加入os.environ['CUDA_VISIBLE_DEVICES']='2' 强制使用CPU验证-----慢 2.'batch ...

  8. ValueError: Argument must be a dense tensor:... got shape [6, 60, 160, 3], but wanted [6].

    在将 列表或元组 数据转换成 dataset类型时 import numpy as np import tensorflow as tffrom sklearn.cross_validation im ...

  9. Format specifies type 'int' but the argument has type 'struct node *'

    /Users/Rubert/IOS/iworkspace/LineList/LineList/main.c::: Format specifies type 'int' but the argumen ...

随机推荐

  1. SGD/BGD/MBGD使用python简单实现

    算法具体可以参照其他的博客: 随机梯度下降: # coding=utf-8 ''' 随机梯度下降 ''' import numpy as np # 构造训练数据 x = np.arange(0., 1 ...

  2. HTTP Status 400,400 (Bad Request)

    400 (Bad Request) 点击添加按钮转跳没反应,控制台没报错,然后在Chrome上检查发现报错了 百度了一下,发现http Status 400这个错误大多是因为,jsp的form表单提交 ...

  3. vue实现动态绑定class--多个按钮点击一个有一个

    <template> //v-for循环出来多个按钮,便于获取index         <span v-for="(item,index) in list" : ...

  4. Create Collection Type with Class Type Constraints

    Create Collection Type with Class Type Constraints: new TypeToken<ArrayList<ClassType>>( ...

  5. Markdown 语法手册

    1. 斜体和粗体 使用 和 * 表示斜体和粗体. 示例: 这是 斜体,这是 粗体. 2. 分级标题 使用 === 表示一级标题,使用 - 表示二级标题. 示例: 1234567 这是一个一级标题=== ...

  6. poj 1659 Frog's Neighborhood

    未名湖附近共有N个大小湖泊L1, L2, -, Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居.现在已知每只 ...

  7. navisworks卸载/完美解决安装失败/如何彻底卸载清除干净navisworks各种残留注册表和文件的方法

    在卸载navisworks重装navisworks时发现安装失败,提示是已安装navisworks或安装失败.这是因为上一次卸载navisworks没有清理干净,系统会误认为已经安装naviswork ...

  8. Linux上部署Tomcat+Nginx负载均衡

    前提:配置好了JDK. 我这里是vm上的linux虚拟机,可能不适用于所有情况. 一.Linux上配置Tomcat 1.下载地址:https://tomcat.apache.org/download- ...

  9. 使用JS-SDK自定义微信分享效果

    前言 刚进入一家新公司,接到的第一个任务就是需要需要自定义微信分享的效果(自定义缩略图,标题,摘要),一开始真是一脸懵逼,在网上搜索了半天之后大概有了方案.值得注意的是一开始搜索到的解决方案全是调用微 ...

  10. mvn -v报java.lang.ClassNotFoundException

    Tips: 比如要下载版本3.2.5的,请选择binaries下的apache-maven-3.2.5-bin.zip. binaries 指的是可以执行的. source 指的源码. 下载地址:ht ...