training SyntaxNet from parser_trainer_test.sh (ImportError: cannot import name tf_logging)

training SyntaxNet from parser_trainer_test.sh (ImportError: cannot import name tf_logging)

我是 python 和 SyntaxNet 的新手,我正在尝试从 SyntaxNet Tutorial 训练 SyntaxNet。 为了训练模型,我更新了 parser_trainer_test.sh based on 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

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

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 文件。如果我错了,这很可能,请帮助我解决这个问题。

我怀疑问题是您正在尝试直接 运行 脚本,并且它期望由 Bazel 调用(以便正确设置环境、路径等)。请尝试以下命令:

$ bazel test //syntaxnet:parser_trainer_test