如何保存和恢复使用Keras制作的Tensorflow模型

时间:2017-07-13 21:42:26

标签: tensorflow keras

我目前正在开展一个项目,我在Keras中建立一个网络,如下所示:

 inputstuff = Input(shape=(32,), name='main_input')
 encoded = Dense(16, activation='relu',init='he_normal',  activity_regularizer=regularizers.l1(0.01))(inputstuff)
 [other layers...]
 decoded = Dense(32, activation='relu',init='he_normal', name='main_output')(decoded)
 autoencoder = Model(input=inputstuff, output=decoded)

接下来将此文件另存为张量流模型,执行以下操作:

 sessK=K.get_session() 
 saver = tf.train.Saver()
 model_path = "/tmp/KerasGlobalAEModel.ckpt"
 save_path = saver.save(sessK, model_path)

接下来我想从另一个程序加载文件:

 model_path = "/tmp/KerasGlobalAEModel.ckpt"
 tf.train.NewCheckpointReader(model_path)
 with tf.Session() as sess:
 # Initialize variables
     init = tf.initialize_all_variables()
     sess.run(init)

     saver = tf.train.import_meta_graph('/tmp/KerasGlobalAEModel.ckpt.meta')

    # Restore model weights from previously saved model
     saver.restore(sess, model_path)



     test = [some data]
     graph = tf.get_default_graph()

     MyAnswers = sess.run(Y*, feed_dict={X*: test})    

如果这是我可以使用的相同文件:

 X* = model.input
 Y* = model.output

但是,我和其他所有尝试都失败了。

这是一个不起作用的清单。

  • Y = graph.get_tensor_by_name(" main_output")
  • Y = model.output
  • Y = autoencoder.output

我意识到自己是一个noobie,这可能是一个愚蠢的问题,但我会感谢任何指导。

谢谢,

0 个答案:

没有答案