TensorlFlow中的一些坑

model saver

  1. issue link:Saving and Restoring a trained LSTM in Tensor Flow
    问题描述:在保存TensorFlow中的RNN/LSTM模型的时候,需要在LSTM模型建立之后再定义saver如:
### Model Training and Saving code
### define the LSTM model code here
saver = tf.train.Saver()
### train process here
saver.saver(sess, saver_path) 
### Model Predict and Restore code
### define the LSTM model code here
saver = tf.train.Saver()
saver.restore(sess. saver_path)

事实上,如果是保存一般的variables也需要在定义了variable,如tf.get_variable()或者tf.Variable()中定义了之后,才能create Saver不然的话也会保存失败。下面就是一个例子

    saver = tf.train.Saver()
    tf.Variable([1], tf.float32)
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        saver.save(sess, path)

这样运行将会报错:

ValueError: No variables to save

而将Saver的定义位置换一下,就可以解决问题了。

    tf.Variable([1], tf.float32)
    saver = tf.train.Saver()
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        saver.save(sess, path)
posted @ 2017-10-02 11:47  FesianXu  阅读(62)  评论(0编辑  收藏  举报