predict()函数不能释放内存。循环的每一个语句都会占用越来越多的内存。我正在Ubuntu 22.04的Conda env上尝试。
Keras模型是通过谷歌的teachablemachine创建的。
谢谢!
下面是我的代码:
import keras # TensorFlow is required for Keras to work
import cv2 # Install opencv-python
import numpy as np
np.set_printoptions(suppress=True)
model = keras.models.load_model('ml_files/model_lid.h5',compile=False)
camera = cv2.VideoCapture(2)
while True:
ret, image = camera.read()
image = cv2.resize(image, (224, 224), interpolation=cv2.INTER_AREA)
cv2.imshow("Webcam Image", image)
image = np.asarray(image, dtype=np.float32).reshape(1, 224, 224, 3)
image = (image / 127.5) - 1
model.predict(image)
keyboard_input = cv2.waitKey(1)
if keyboard_input == 27:
break
del image
keras.backend.clear_session()
camera.release()
cv2.destroyAllWindows()
当我注解model.predict()时,RAM是稳定的,甚至keras.backend.clear_session()
也无法清除它。
1条答案
按热度按时间xoshrz7s1#
这对我来说也是一场斗争。有几件事你可以试试:
1.每次使用
gc.collect()
调用后使用垃圾回收1.使用
model(image, training=False)
调用预测