在Flask使用TensorFlow的幾個常見錯誤

2021-09-25 04:28:31 字數 2686 閱讀 8686

在flask中使用tensorflow的model,一在介面中呼叫model.predict()就報下面這個錯誤,不過在單獨的.py檔案中使用卻不報錯。

valueerror: tensor tensor(

"dense_1/sigmoid:0"

, shape=

(?,1

), dtype=float32)

isnot an element of this graph.

這個bug真的很是糾心,網上一般說是新增如下**

import tensorflow as tf

graph = tf.get_default_graph(

)model = models.load_model(…………)

# 使用處新增:

global graph

global model

with graph.as_default():

model.predict(

)# 執行**函式

但是我當時測試時又報了另乙個bug,但是這個bug也不好解決,試了很多方法也沒解決,當然最終還是可以解決的,具體解決方式參考第三點。

tensorflow.python.framework.errors_impl.failedpreconditionerror: error while reading resource variable dense_1/bias from container: localhost. this could mean that the variable was uninitialized. not found: resource localhost/dense_1/bias/

class

tensorflow

::var does not exist.[[

}]]

後來經過n遍測試後找到了以下兩種解決方式,僅供參考:

graph = tf.get_default_graph(

) model = models.load_model(

'./static/my_model2.h5'

)with graph.as_default():

result = model.predict(tokens_pad)

方法二:在建立model後,先使用一遍 model.predict(),引數的大小和真實大小一致,這個是真正解決之道,同時不影響使用速率。

# 使用前:

model = models.load_model(

'./static/my_model2.h5'

)# a 矩陣大小和 tokens_pad 一致

a = np.ones((1

,220))

model.predict(a)

# 使用時:

global model

result = model.predict(tokens_pad)

但是在使用後又遇到了the session graph is empty……的錯誤即第二點,不過估摸著這個是個例,應該是程式問題。

在相關**使用前新增graph即可。

graph = tf.get_default_graph(

)with graph.as_default():

# 相關**

# 本次測試中是需要把呼叫包含model.predict()方法的方法的**放到這裡

這個錯誤呢,也是tensorflow和flask結合使用時的常見錯誤,解決方式如下:

from tensorflow.python.keras.backend import set_session

# 程式開始時宣告

sess = tf.session(

)graph = tf.get_default_graph(

)# 在model載入前新增set_session

set_session(sess)

model = models.load_model(…………)

# 每次使用有關tensorflow的請求時

# in each request (i.e. in each thread):

global sess

global graph

with graph.as_default():

set_session(sess)

model.predict(..

.)

參看文章:at runtime : 「error while reading resource variable softmax/kernel from container: localhost」 #28287

構建圖 graph

tensor tensor(「dense_2/softmax:0」, shape=(?, 192), dtype=float32) is not an element of this graph

flask專案中呼叫keras神經網路模型的乙個坑

機器學習 keras+flask(或者django)問題

keras + flask 提供介面服務的坑~~~

在windows環境下搭建TensorFlow

安裝python python 3.6.1 amd64.exe 加入python.exe pip pip3加入環境變數 在cmd下執行 pip3 install upgrade tensorflow import tensorflow as tf hello tf.constant hello,te...

在 Flask 應用中使用 gevent

from flask import flask def hello return hello world if name main 然而 flask 是單執行緒執行,如果在某個頁面中執行了一些耗時的工作,那麼程式就會在這裡等待,無法響應其他的請求。也就是說,如果乙個路由響應函式中有阻塞 那麼其他使用...

在win10 安裝cuda和tensorflow

因為自己的筆記本也有gpu,加上tensorflow 增加了windows的支援,所以打算裝乙個tf。打算裝python版的tf,首先當然是裝python了。python 3.6 1 anaconda 4.4 0 64 bit default,may 11 2017,13 25 24 msc v.1...