婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Keras多線程機制與flask多線程沖突的解決方案

Keras多線程機制與flask多線程沖突的解決方案

熱門標簽:小蘇云呼電話機器人 北京電銷外呼系統加盟 北瀚ai電銷機器人官網手機版 儋州電話機器人 地圖標注面積 市場上的電銷機器人 朝陽手機外呼系統 所得系統電梯怎樣主板設置外呼 佛山400電話辦理

在使用flask部署Keras,tensorflow等框架時候,經常出現

FailedPreconditionError: Attempting to use uninitialized value batchnormalization_

或者

Tensor Tensor("crf_1/cond/Merge:0", shape=(?, ?, 260), dtype=float32) is not an element of this graph.

使用keras.backend.clear_session()可能會導致前后兩處預測結果不一樣,因為圖發生了變化。以下是解決方案。

graph = tf.get_default_graph()
sess = tf.Session(graph=graph) 
 
def modelpredict(content):
    #keras.backend.clear_session()
    global graph
    global sess
    with sess.as_default():
        with graph.as_default():
            keras.model.predict()

補充:Flask與keras結合的幾個常見錯誤

1、 ValueError: Tensor Tensor(“dense_1/Sigmoid:0”, shape=(?, 1), dtype=float32) is not an element of this graph.

在Flask中使用tensorflow的model,一在界面中調用 model.predict() 就報下面這個錯誤,不過在單獨的 .py 文件中使用卻不報錯。

ValueError: Tensor Tensor("dense_1/Sigmoid:0", shape=(?, 1), dtype=float32) is not an element of this graph.

添加如下代碼可以解決:

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.
[[{{node dense_1/BiasAdd/ReadVariableOp}}]]

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

方法一:

在調用前加載model和graph,但是這樣會導致程序每次調用都需要重新加載model,然后運行速度就會很慢,不過這種修改方式是最簡單的。

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…… 的錯誤即第二點,不過估摸著這個是個例,應該是程序問題。

2、RuntimeError: The Session graph is empty. Add operations to the graph before calling run().

graph = tf.get_default_graph()
    with graph.as_default():
        # 相關代碼
        # 本次測試中是需要把調用包含model.predict()方法的方法的代碼放到這里

3、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.[[{{node dense_1/BiasAdd/ReadVariableOp}}]]

這個錯誤呢,也是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(...)
————————————————

4、 Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice. This may result in compilation or runtime failures, if the program we try to run uses routines from libdevice

設置一下XLA_FLAGS指向你的cuda安裝目錄即可

os.environ["XLA_FLAGS"]="--xla_gpu_cuda_data_dir=/usr/local/cuda-10.0"

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • flask開啟多線程的具體方法
  • python進階之多線程對同一個全局變量的處理方法
  • windows安裝TensorFlow和Keras遇到的問題及其解決方法
  • 解決python多線程報錯:AttributeError: Can''t pickle local object問題

標簽:金融催收 寧夏 定西 龍巖 云南 江蘇 商丘 酒泉

巨人網絡通訊聲明:本文標題《Keras多線程機制與flask多線程沖突的解決方案》,本文關鍵詞  Keras,多,線程,機制,與,flask,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Keras多線程機制與flask多線程沖突的解決方案》相關的同類信息!
  • 本頁收集關于Keras多線程機制與flask多線程沖突的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 贡觉县| 乌兰察布市| 视频| 宜丰县| 舟曲县| 长岭县| 阜南县| 株洲市| 沁源县| 大丰市| 卓资县| 江山市| 额敏县| 南充市| 东兴市| 白城市| 余姚市| 依兰县| 北碚区| 正蓝旗| 维西| 万荣县| 崇文区| 河西区| 乃东县| 岳普湖县| 内丘县| 汉阴县| 新营市| 全州县| 长乐市| 乐山市| 嘉鱼县| 泰宁县| 资溪县| 平阳县| 三明市| 沙湾县| 镇坪县| 盈江县| 满洲里市|