TensorlFlow中的一些坑
model saver
- 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)