2017-07-12 25 views
5

Tôi đang quay lên một API 3 của Python bằng cách sử dụng keras để tính toán vectơ cho hình ảnh, khá đơn giản.Cố gắng thiết lập lại biểu đồ lưu lượng khi sử dụng keras, thất bại

Làm cách nào để đặt lại dữ liệu được lưu trữ trong bộ nhớ cho từng yêu cầu? Từ từ theo thời gian các yêu cầu tăng lên trong thời gian cần để trả lời. Tôi đã chạy một profiler và nó đặc biệt dòng này trong tensorflow (cũng sử dụng bộ nhớ đi lên chậm theo thời gian cho mỗi quá trình):

#tensorflow/python/framework/ops.py:2317:_as_graph_def 
graph.node.extend([op.node_def]) 

Mất nhiều dữ liệu hơn trong nút. Đây là mã tôi thực hiện:

# We have 11439MiB of GPU memory, lets only use 2GB of it: 
config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.22 
sess = tf.Session(config=config) 
set_session(sess) 
sess.graph.as_default() 

# Get the vector for the image 
img_size = (224,224) 
vgg = VGG16(include_top=False, weights='imagenet') 
img = kimage.load_img(tmpfile.name, target_size=img_size) 
x = kimage.img_to_array(img) 
x = np.expand_dims(x, axis=0) 
x = preprocess_input(x) 
pred = vgg.predict(x) 
vectors = pred.ravel().tolist() 

Tôi nghĩ as_default() sẽ giúp ích, nhưng không. Tôi cũng đã cố gắng đóng phiên sau khi tôi nhận được danh sách các vectơ, và điều đó không thành công.

Trả lời

8
from keras import backend as K 
K.clear_session() 
Các vấn đề liên quan