在使用flask部署Keras,tensorflow等框架时候,经常出现
或者
使用keras.backend.clear_session()可能会导致前后两处预测结果不一样,因为图发生了变化。以下是解决方案。
?
1 2 3 4 5 6 7 8 9 10 |
|
补充:Flask与keras结合的几个常见错误
在Flask中使用tensorflow的model,一在界面中调用 model.predict() 就报下面这个错误,不过在单独的 .py 文件中使用却不报错。
添加如下代码可以解决:
?
1 2 3 4 5 6 7 8 9 10 |
|
但是我当时测试时又报了另一个bug,但是这个bug也不好解决,试了很多方法也没解决,当然最终还是可以解决的,具体解决方式参考第三点。
后来经过N遍测试后找到了以下两种解决方式,仅供参考:
方法一:
在调用前加载model和graph,但是这样会导致程序每次调用都需要重新加载model,然后运行速度就会很慢,不过这种修改方式是最简单的。
?
1 2 3 4 |
|
方法二:
在创建model后,先使用一遍 model.predict(),参数的大小和真实大小一致,这个是真正解决之道,同时不影响使用速率。
?
1 2 3 4 5 6 7 8 9 |
|
但是在使用后又遇到了 The Session graph is empty…… 的错误即第二点,不过估摸着这个是个例,应该是程序问题。
?
1 2 3 4 |
|
这个错误呢,也是TensorFlow和Flask结合使用时的常见错误,解决方式如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
设置一下XLA_FLAGS指向你的cuda安装目录即可
?
1 |
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_40939578/article/details/100154100
本文链接:https://my.lmcjl.com/post/16917.html
4 评论