2018年11月6日 星期二

Flask + Keras = builtins.ValueError

Flask + Keras = builtins.ValueError

tags: flask keras python deep learning builtins.ValueError

在翻譯完Building a simple Keras + deep learning REST API我就馬上拿著公司的案子來測試,一切似乎都順利,因為專案啟動之後沒有任何的錯誤訊息,當我call api之後就出現異常訊息,如下:

builtins.ValueError
ValueError: Tensor Tensor("dense_3/Softmax:0", shape=(?, 6), dtype=float32) is not an element of this graph.

我在初始化的時候載入模型,在另外的module引入該模型使用model.predict,順著錯誤訊息去詢問谷狗大神得到不少解決問題的方式,但是沒有一個可以解決我的問題。我很納悶,為何我依著自己翻譯的文件執行是可以的但是實際專案卻失敗。

因此我試著不在另外的module使用該模型,而是初始化的時候就直接使用model.predict,這種方式反而可以正常的執行,然後我忘了註解掉初始化的時候所執行的model.predict又回頭去module測試model.predict,正常了:scream:

沒錯,正常了。:weary::weary::weary::weary::weary:

就這麼歪打正著,我發現只要在初始化的時候model.predict一筆,後面就正常了,所以在load_model之後我加入model.predict(np.ones((1, ???, ???, ?))),專案就順利執行了。(???,???,?再請依著自己模型的dimension與channel調整即可。)

這個坑大概花了三個小時爬出來,也算值得了:smiley: