Tensorflow seq2seq_model(https://www.tensorflow.org/versions/r0.9/tutorials/seq2seq/index.html)の使い方を学んでいます。私は、バケットが大にそれをリストアップするので、トレーニング中に、Tensorflowのseq2seq_modelに新しいバケットを追加する
seq2seq_model.Seq2SeqModel(..., listOfBuckets, ...)
への呼び出しは永遠にかかるという問題を抱えています。各バケットの境界を延長してリストを小さくしようとすると、model.step(..)
への呼び出しには永遠の時間がかかります。
私の解決策は、すべての反復で新しいSeq2SeqModelを作成し、次の反復でSeq2SeqModelを初期化するために使用するファイルにパラメータを保存するループを作成することでした。それはそのようなことになります。
While cond:
with tf.Session() as sess:
model=seq2seq_model.Seq2SeqModel(..., listOfBuckets, ...)
ckpt = tf.train.get_checkpoint_state(training_dir)
if ckpt and tf.gfile.Exists(ckpt.model_checkpoint_path):
print("Reading model parameters from %s" %ckpt.model_checkpoint_path)
model.saver.restore(session, ckpt.model_checkpoint_path)
doSomething()
checkpoint_path = os.path.join(training_dir, "model.ckpt")
model.saver.save(sess, checkpoint_path,global_step=model.global_step)
listOfBuckets = someNewlistOfBuckets
をしかし、これは私の質問は、(それが既に作成された後に)何度もそれを作成することなく、モデルに新しいバケットを追加する方法があるかどうかであるように、貧しいソリューションのようです再び。
ありがとうございました。