2016-08-26 32 views
2

TensorFlowに含まれているword2vecのデモプログラムを実行しましたが、現在は事前に訓練されたモデルをファイルから復元しようとしていますが、テンソルフローで事前に訓練されたモデルを復元する際のトラブル

Traceback (most recent call last): 
    File "word2vec_restore.py", line 16, in <module> 
    main() 
    File "word2vec_restore.py", line 11, in main 
    saver = tf.train.import_meta_graph(FILENAME_META) 
    File "/home/kato/.pyenv/versions/3.5.1/lib/python3.5/site-packages/tensorflow/python/training/saver.py", line 1431, in import_meta_graph 
    return _import_meta_graph_def(read_meta_graph_file(meta_graph_or_file)) 
    File "/home/kato/.pyenv/versions/3.5.1/lib/python3.5/site-packages/tensorflow/python/training/saver.py", line 1321, in _import_meta_graph_def 
    producer_op_list=producer_op_list) 
    File "/home/kato/.pyenv/versions/3.5.1/lib/python3.5/site-packages/tensorflow/python/framework/importer.py", line 247, in import_graph_def 
    op_def = op_dict[node.op] 
KeyError: 'Skipgram' 

は私が考えて、私は理解していることは、次のエラーメッセージで失敗し

#!/usr/bin/env python 

import tensorflow as tf 

FILENAME_META = "model.ckpt-70707299.meta" 
FILENAME_CHECKPOINT = "model.ckpt-70707299" 


def main(): 
    with tf.Session() as sess: 
     saver = tf.train.import_meta_graph(FILENAME_META) 
     saver.restore(sess, FILENAME_CHECKPOINT) 


if __name__ == '__main__': 
    main() 

:私はこのファイルを実行しようとした後 https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/models/embedding/word2vec.py

私はこのスクリプトファイルを実行しましたTensorFlowのAPIドキュメントを参照してください。上に書かれているコードを実装しました。 Saverオブジェクトを間違った方法で使用していますか?

答えて

0

次のことを試してみてください。

checkpoint_dirは、チェックポイントファイルを含むフォルダへのパスではなく、メタまたはチェックポイントファイルへのフルパスです
saver = tf.train.Saver() 
with tf.Session() as sess: 
    checkpoint = tf.train.get_checkpoint_state(checkpoint_dir) 
    if checkpoint and checkpoint.model_checkpoint_path: 
     saver.restore(sess, checkpoint.model_checkpoint_path) 

。 Tensorflowは、指定されたフォルダから最新のチェックポイント自体を選択します。

+0

"ValueError:保存する変数がありません"という最初の行で失敗します。 –

2

私はこれを自分で解決しました。キーの「スキップグラム」がどこから来たのか疑問に思って、ソースコードを掘りました。問題を解決するには、ちょうど上に次の行を追加します。

from tensorflow.models.embedding import gen_word2vec 

を私はまだ私がやっている正確に理解していないが、C++で書かれた、関連するライブラリをロードする必要があるので、多分これがあります。

ありがとうございました。

関連する問題