Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.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 从Keras保存初始化的tensorflow图_Python_C++_Tensorflow_Keras - Fatal编程技术网

Python 从Keras保存初始化的tensorflow图

Python 从Keras保存初始化的tensorflow图,python,c++,tensorflow,keras,Python,C++,Tensorflow,Keras,我试图在KLAS中创建一个TysFooRoad模型,初始化它,然后保存它,以便以后在C++中使用它。我不想用Keras来训练它,因为我有一个C++训练的自定义方法,我想使用。 我试图通过以下方式实现这一点: def reset_weights(model): session = K.get_session() for layer in model.layers: if hasattr(layer, 'kernel_initializer'):

我试图在KLAS中创建一个TysFooRoad模型,初始化它,然后保存它,以便以后在C++中使用它。我不想用Keras来训练它,因为我有一个C++训练的自定义方法,我想使用。 我试图通过以下方式实现这一点:

def reset_weights(model):
    session = K.get_session()
    for layer in model.layers:
        if hasattr(layer, 'kernel_initializer'):
            layer.kernel.initializer.run(session=session)


inputs = Input(shape=(2,), name="inputs")
hidden_l = Dense(5, activation='relu', name="hidden_1", kernel_initializer="glorot_normal")(inputs)
hidden_l = LeakyReLU(alpha=0.3, name="hidden_leakyrelu_1")(hidden_l)
outputs = Dense(2, activation='softmax', name="outputs", kernel_initializer="glorot_normal")(hidden_l)
model = Model(inputs=inputs, outputs=outputs)

reset_weights(model)
K.set_learning_phase(0)
sess = K.get_session()
f = "graph_def_for_reference.pb.ascii"
tf.train.write_graph(sess.graph.as_graph_def(), "./", f, as_text=True)
但是
graph\u def\u for_reference.pb.ascii
文件似乎仍然包含一组初始化节点,而不仅仅是图形结构


如何运行初始化并保存图和初始化的权重,以便我可以在TysFoeSoC+C++中使用/< P> > P> TF图包含在SSENSC.Run.Runn调用中从未执行过的所有节点。初始化节点将始终存在,但您不必运行它们


不过,为了实现您的目的,我建议您查看tf savedmodel库,它允许您保存图形、一些变量,一组签名,这样C++代码就可以知道传递给SESSION的值。运行以获得训练。

如果你<代码>模型。用虚构的数据预测,应该运行包括初始化在内的整个图。然后您可以提取并保存权重,我知道您可以
model.save
,但不确定是否可以将其加载到TensorFlow中。不幸的是,即使在运行model.predict之后,tf.train.write\u graph仍会保存包含所有初始化节点的图