一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Keras多線程機制與flask多線程沖突的解決方案

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

2021-11-17 10:18king的江鳥 Python

這篇文章主要介紹了Keras多線程機制與flask多線程沖突的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

在使用flask部署Keras,tensorflow等框架時候,經(jīng)常出現(xiàn)

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()可能會導(dǎo)致前后兩處預(yù)測結(jié)果不一樣,因為圖發(fā)生了變化。以下是解決方案。

?
1
2
3
4
5
6
7
8
9
10
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結(jié)合的幾個常見錯誤

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

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

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

添加如下代碼可以解決:

?
1
2
3
4
5
6
7
8
9
10
import tensorflow as tf
graph = tf.get_default_graph()
model = models.load_model(…………)
 
# 使用處添加:
global graph
global model
with graph.as_default():
    model.predict()
    # 執(zhí)行預(yù)測函數(shù)

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

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}}]]

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

方法一:

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

?
1
2
3
4
graph = tf.get_default_graph()
    model = models.load_model('./static/my_model2.h5')
    with graph.as_default():
        result = model.predict(tokens_pad)

方法二:

在創(chuàng)建model后,先使用一遍 model.predict(),參數(shù)的大小和真實大小一致,這個是真正解決之道,同時不影響使用速率。

?
1
2
3
4
5
6
7
8
9
# 使用前:
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…… 的錯誤即第二點,不過估摸著這個是個例,應(yīng)該是程序問題。

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

?
1
2
3
4
graph = tf.get_default_graph()
    with graph.as_default():
        # 相關(guān)代碼
        # 本次測試中是需要把調(diào)用包含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結(jié)合使用時的常見錯誤,解決方式如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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(…………)
 
# 每次使用有關(guān)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

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

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

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/weixin_40939578/article/details/100154100

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内永久第一免费福利视频 | 国内自拍视频在线观看 | 暖暖的免费观看高清视频韩国 | 精品国产原创在线观看视频 | 妹妹骑上来蹭着蹭着就射了 | 日韩二三区 | 国产成人久久 | 福利国模私拍视频在线观看 | 美女禁区视频无遮挡免费看 | 国产亚洲精品福利在线 | 久久久久激情免费观看 | 好男人资源免费播放在线观看 | 贤妻良母电影日本 | 99精品国产美女福到在线不卡 | 骚虎网站在线观看 | 韩国日本香港毛片免费 | 国产日产欧产精品精品软件 | 亚洲视频免费在线看 | 免费xxxx日本大片在线观看 | 青草娱乐极品免费视频 | 91精品国产麻豆国产自产在线 | 国产精品短视频 | 王雨纯羞羞| 好大好硬好深好爽想要吃奶 | 午夜国产理论 | 91赵邦贺 | 娇喘嗯嗯 轻点啊视频福利 九九九九在线精品免费视频 | 99热精品在线免费观看 | 亚洲免费黄色网 | 98pao强力打造高清免费 | 国产精品极品 | 亚洲香蕉视频 | 嫩模被黑人粗大挺进 | 好大用力深一点女公交车 | 玩50岁四川熟女大白屁股直播 | 91麻豆精品国产91久久久 | 毛片在线网址 | 欧美一区二区日韩一区二区 | 被老外玩爽的中国美女视频 | 国产午夜亚洲精品理论片不卡 | 日本乱中文字幕系列在线观看 |