【发布时间】:2018-03-09 15:04:46
【问题描述】:
我正在使用如下所示的代码子集测试我更大的图像识别模型。理想情况下,它应该能够加载 imagenet 模型,然后显示“hello world”,但它会在 graph = K.get_session().graph 行抛出错误,即 RuntimeError: The Session graph is empty。在调用 run() 之前向图形添加操作。 我尝试更改线条的位置,但它不起作用。我想在我的主代码中使用with.graph as default()。我正在使用 keras 2.09。
import dlib
import requests
import numpy as np
from skimage import io
from skimage.transform import resize
from keras import backend as K
from keras.models import Sequential
from keras.layers import Dropout, Flatten, Dense
from keras import applications
from flask import Flask, jsonify, request, abort, make_response
app = Flask(__name__)
auth_token = 'WyIxYSDFg467YT.A3MmJlODcyODkzOGQzZjk4YzUiXQ.B5e5SgsDcaMgiRqx21Ydf8M'
top_model_weights_ethnicity = 'ethnicity.071217.23-0.28.hdf5'
img_width, img_height = 139, 139
confidence_ethnicity = '0.59'
detector = dlib.get_frontal_face_detector()
graph = K.get_session().graph
def get_pretrained_model():
with graph.as_default():
pretrained_model = applications.InceptionResNetV2(include_top=False, weights='imagenet',
input_shape=(img_width, img_height, 3))
return pretrained_model
with graph.as_default():
pretrained_model = get_pretrained_model()
@app.route("/")
def hello():
return "<h1 style='color:blue'>Hello There!</h1>"
if __name__ == "__main__":
app.run(host='0.0.0.0')
【问题讨论】:
-
您是否有理由要使用会话图?使用 Keras,您通常不需要显式设置它或使用 graph.as_default() 等调用。但是,有一个相关的 bug report 影响了您的 Keras 版本,并且似乎已在以后的版本中得到解决,所以有机会升级 Keras 会有所帮助。
-
@KiraMichiru 谢谢。是的,错误与版本有关。我转移到一个更新的版本,它得到了解决。我用的是 2.1.3 keras
标签: python tensorflow keras