TF预测服务接口上线后内存泄漏'std::bad_alloc'等问题集锦

楼主环境:

	python3.6.8
	centos 7.2
	tensorflow 1.14.0

一 泄漏位置查找方法:

报错部分原文:

	 terminate called after throwing an instance of 'std::bad_alloc'

工具:pympler

from pympler import tracker,summary,muppy

在web主程序添加:
memory_tracker = tracker.SummaryTracker()

在接口返回前添加:
memory_tracker.print_diff()

反人类办法:把怀疑的模块一个一个替换着注释掉,找到内存泄漏模块,
然后再进行代码排查

二 由tf.train.Saver()引起的

在session开始前进行模型的重新设置,
tf.reset_default_graph()

解决办法:

在with tf.Session() as sess: 之后同时也要在with的范围以外(注意),添加

tf.reset_default_graph()

代码来重置默认的图,这样就能解决下一步执行代码
self.sess = tf.Session()
self.saver = tf.train.import_meta_graph(’./Model/model.ckpt.meta’)
self.saver.restore(self.sess, tf.train.latest_checkpoint(’./Model/’))

三 OOM问题

报错原文:

tensorflow:OOM when allocating tensor with shape[225,256,256,36] and type float on /job:localhost/re

原因是GPU OOM内存不够,因此可尝试改成批处理。即将训练的数据块调小。

参考链接:
https://stackoverflow.com/questions/39076388/tensorflow-deep-mnist-resource-exhausted-oom-when-allocating-tensor-with-shape

https://github.com/tensorflow/tensorflow/issues/609

四 编码问题

报错部分原文:

SyntaxError: Non-UTF-8 code starting with '\xe5' in file

原因:编码格式不对

把相应Python程序文件的编码转成UTF-8格式
1、在文件第一行添加# encoding:utf-8

或2.在文件第一行添加# -- coding: gbk --

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值