在工作中借鉴了此项目,实践中发现有内存泄漏的情况,追踪发现在service/InferALBERT类中inferArr方法进行推理后没有关闭创建的Tensor对象,导致的内存泄漏。需要调整的代码部分如下,在推理结束后需要将Tensor关闭。
Tensor result = loadALBERT.getSession().runner() .feed("Input-Token", Tensor.create(inputToken2D)) .feed("Input-Segment", Tensor.create(inputSegment2D)) .fetch("output_1") .run().get(0); float[] ret = new float[loadALBERT.getVectorDim()];
在工作中借鉴了此项目,实践中发现有内存泄漏的情况,追踪发现在service/InferALBERT类中inferArr方法进行推理后没有关闭创建的Tensor对象,导致的内存泄漏。需要调整的代码部分如下,在推理结束后需要将Tensor关闭。
Tensor result = loadALBERT.getSession().runner() .feed("Input-Token", Tensor.create(inputToken2D)) .feed("Input-Segment", Tensor.create(inputSegment2D)) .fetch("output_1") .run().get(0); float[] ret = new float[loadALBERT.getVectorDim()];