从parser_trainer_test.sh训练SyntaxNet(ImportError:无法导入名称tf_logging)

时间:2016-06-01 18:25:06

标签: python-2.7 tensorflow syntaxnet

我是python和SyntaxNet的新手,我正在尝试从SyntaxNet Tutorial训练SyntaxNet。 为了训练模型,我根据parser_trainer_test.sh更新了The Tutorial。然后运行如下:

ubuntu@ubuntu-VirtualBox:~/models/syntaxnet$ syntaxnet/parser_trainer_test.sh

它给了我这个错误:

syntaxnet/parser_trainer_test.sh: line 36: /home/ubuntu/models/syntaxnet/syntaxnet/parser_trainer: No such file or directory

然后我将parser_trainer_test.sh第35行中的"$BINDIR/parser_trainer" \更新为"$BINDIR/parser_trainer.py" \并再次运行。

它给了我这个错误:

File "/home/ubuntu/models/syntaxnet/syntaxnet/parser_trainer.py", line 25,in <module>
from tensorflow.python.platform import tf_logging as logging
ImportError: cannot import name tf_logging

我浏览了syntaxnet/tensorflow/python/platform中的tf_logging.py和所有其他python文件 我认为这就是错误所在。但如果你愿意,我可以发布更多。

parser.trainer.py

import os
import os.path
import time

import tensorflow as tf
from tensorflow.python.platform import tf_logging as logging # this is where error happens
from tensorflow.python.platform import gfile

tf_logging.py:

import logging
import os
import sys
import time
from logging import DEBUG
from logging import ERROR
from logging import FATAL
from logging import INFO
from logging import WARN   

有一些我很怀疑的事情(如果它看起来很愚蠢,我不是很有抱负,所以很抱歉)。我在路径tensorflow/tensorflow/core/platform中找到了一个名为logging.h的文件,它定义了DEBUG,ERROR,FATAL,..,我很困惑模型的目标是来自python还是这个logging.h文件的日志包。如果错了,这很可能,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我怀疑问题是你正在尝试直接运行脚本,并且它期望被Bazel调用(以便适当地设置环境,路径等)。请改为尝试以下命令:

$ bazel test //syntaxnet:parser_trainer_test