【发布时间】:2018-05-16 23:43:13
【问题描述】:
我是张量流和神经网络的新手。我开始了一个关于检测波斯文本错误的项目。我使用了this address 中的代码并开发了here 中的代码。请检查代码,因为我不能把所有的代码都放在这里。
我想做的是给模型几个波斯语句子进行训练,然后看看模型是否可以检测到错误的句子。该模型适用于英文数据,但当我将它用于波斯数据时,我遇到了这个问题。
代码太长,无法在此处编写,因此我尝试指出我认为可能导致问题的部分。我在train.py 中使用了这些行,它们可以正常工作并存储词汇表:
x_text, y = data_helpers.load_data_labels(datasets)
# Build vocabulary
max_document_length = max([len(x.split(" ")) for x in x_text])
vocab_processor = learn.preprocessing.VocabularyProcessor(max_document_length)
x = np.array(list(vocab_processor.fit_transform(x_text)))
但是,当我在eval.py 中尝试此代码时经过培训:
vocab_path = os.path.join(FLAGS.checkpoint_dir, "..", "vocab")
vocab_processor = learn.preprocessing.VocabularyProcessor.restore(vocab_path)
x_test = np.array(list(vocab_processor.transform(x_raw)))
发生此错误:
vocab_processor = learn.preprocessing.VocabularyProcessor.restore(vocab_path)
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\contrib\learn\python\learn\preprocessing\text.py", line 226, in restore
return pickle.loads(f.read())
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 118, in read
self._preread_check()
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 78, in _preread_check
compat.as_bytes(self.__name), 1024 * 512, status)
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\contextlib.py", line 66, in __exit__
next(self.gen)
File "C:\WinPython-64bit-3.5.2.3Qt5\python-3.5.2.amd64\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 466, in raise_exception_on_not_ok_status
pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.NotFoundError: NewRandomAccessFile failed to Create/Open: ..\vocab : The system cannot find the file specified.
我认为问题在于它无法读取训练后存储的词汇,因为数据是 unicode 且不是英文的。谁能帮帮我
【问题讨论】:
-
您确定该文件存在于预期目录中吗?您可以尝试使用绝对路径而不是相对路径吗?
-
该代码适用于英文数据集。它也适用于极性数据集。所以我想相对目录在这里没有任何问题。
-
感谢您的调查和建议@mrry
-
有人知道任何适用于 tensorflow 和 unicode 数据的示例代码吗?我可以利用它来解决我的问题吗?我想知道tensorflow是否可以保存unicode词汇。
-
NotFound错误最可能的解释是文件不在请求的位置。您是否设置了--checkpoint_dir标志? (从错误消息看来,标志的值是空的。)
标签: python tensorflow python-unicode