2016-08-26 3 views
2

TensorFlow에 포함 된 word2vec의 데모 프로그램을 실행했는데 이제 파일에서 사전 모델을 복원하려고했지만 작동하지 않습니다.tensorflow에서 pretrained 모델을 복원하는 데 문제가 발생했습니다.

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

는 다음을 시도해보십시오

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) 

checkpoint_dir가이 검사 점 파일, 메타 또는 검사 점 파일에없는 전체 경로를 포함하는 폴더의 경로입니다. Tensorflow는 지정된 폴더에서 최신 검사 점 자체를 선택합니다.

+0

첫 번째 줄에 "ValueError : 저장할 변수가 없습니다"와 함께 실패합니다. –

2

나는 혼자 해결했다. 나는 'Skipgram'이라는 키가 어디에서 왔는지 궁금해하고 소스 코드를 파헤 쳤다. 이 문제를 해결하기 위해, 바로 상단에 다음을 추가합니다

from tensorflow.models.embedding import gen_word2vec 

난 아직도 내가 뭐하는 거지 정확히 이해하지 않는다, 그러나 C++로 작성된 관련 라이브러리를로드 할 필요가 있기 때문에 어쩌면 이것이다.

감사합니다.