Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-preserve会话中的Keras序列模型?_Python_Django_Tensorflow_Keras - Fatal编程技术网

Python Django-preserve会话中的Keras序列模型?

Python Django-preserve会话中的Keras序列模型?,python,django,tensorflow,keras,Python,Django,Tensorflow,Keras,我不知道如何在作为服务器运行的Django应用程序中“保存”Keras模型的图形/会话 我已经构建了Keras顺序模型DeepModel,它作为一个独立的Python模块运行良好。但现在我想将其嵌入到Django应用程序中,在该应用程序中,我为模型定义了以下处理程序: # instantiated by Django app class DeepModelManager: def __init__(self, params): self.graph = tf.Graph()

我不知道如何在作为服务器运行的Django应用程序中“保存”Keras模型的图形/会话

我已经构建了Keras顺序模型
DeepModel
,它作为一个独立的Python模块运行良好。但现在我想将其嵌入到Django应用程序中,在该应用程序中,我为模型定义了以下处理程序:

# instantiated by Django app
class DeepModelManager:

def __init__(self, params):

    self.graph = tf.Graph()
    self.sess = tf.Session()
    K.set_session(self.sess)
    with self.sess.as_default():
        self.instance = DeepModel(params)
        self.model = self.instance.build()

        optimizer = Adam()
        loss = "categorical_crossentropy"
        metrics = ["accuracy"]
        self.model.compile(loss=loss, optimizer=optimizer, metrics=metrics)

def train(self):
    X = ...
    y = ...

    K.set_session(self.sess)
    with self.sess.as_default():
        H = self.model.fit(X, y, epochs=20)
该过程的工作方式如下:

  • 首先Django应用程序等待来自外部客户端的初始化请求,然后它实例化
    DeepModelManager
    (作为
    views
    模块变量),该变量实例化/构建/编译Keras
    DeepModel
  • 然后Django应用程序等待列车请求,该请求应触发上述
    列车
    功能,即模型拟合
但每当运行
train
方法时,我总是会出错

ValueError:Tensor(“training/Adam/Const:0”,shape=(),dtype=float32)必须来自与Tensor(“sub:0”,shape=(),dtype=float32”)相同的图形。

我怀疑这是由于TensorFlow会话(或图形)在模型初始化和训练之间以某种方式被清除。这就是为什么我尝试使用
tf.Session()
tf.Graph()
(在独立
DeepModel
版本中,我没有接触它),但它没有帮助