Я использую предварительно подготовленную модель keras, и при попытке получить предсказания возникла ошибка. У меня есть следующий код в колбах сервере:ValueError: Tensor: (...) не является элементом этого графика
from NeuralNetwork import *
@app.route("/uploadMultipleImages", methods=["POST"])
def uploadMultipleImages():
uploaded_files = request.files.getlist("file[]")
getPredictionfunction = preTrainedModel["VGG16"]
for file in uploaded_files:
path = os.path.join(STATIC_PATH, file.filename)
result = getPredictionfunction(path)
Это то, что я в моем NeuralNetwork.py файл:
vgg16 = VGG16(weights='imagenet', include_top=True)
def getVGG16Prediction(img_path):
model = vgg16
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
pred = model.predict(x) #ERROR HERE
return sort(decode_predictions(pred, top=3)[0])
preTrainedModel["VGG16"] = getVGG16Prediction
Однако выполнение этого кода ниже, не создают какие-либо ошибки:
if __name__ == "__main__":
STATIC_PATH = os.getcwd()+"/static"
print(preTrainedModel["VGG16"](STATIC_PATH+"/18.jpg"))
Любые комментарии или предложения очень ценятся. Спасибо.
В моем случае проблема заключалась в том, что колба загружала тензорный поток дважды. Когда я изменил app.run (debug = False), тогда он работает, но я не знаю почему. Вот ссылка на этот вопрос: http://stackoverflow.com/questions/42015797/is-tensorflow-loading-twice-in-pycharm. Я не уверен, что в вашем случае это то же самое, но я надеюсь, что это поможет. Благодарим за ваше предложение :) – matchifang