ОБНОВЛЕНИЕ синтаксиса - ошибка в синтаксическом анализаторе re syntaxnet::CoNLLSyntaxFormat::ConvertFromString (первоначально "Помогите построить фактические инструкции")

MacOS High Sierra.

После компиляции синтаксис работает правильно по этому предложению: echo "This took a long time" | syntaxnet/demo.sh

Но это сбивает питона в этом предложении: echo "This took a long time" | syntaxnet/demo.sh --conll

Файл журнала сбоев показывает, что один поток обрабатывал конвертер conll и умер. Наиболее важные строки из отчета о сбое яблока:

Thread 11 Crashed:
0   libsystem_kernel.dylib          0x00007fff7d102fce __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff7d240150 pthread_kill + 333
2   libsystem_c.dylib               0x00007fff7d05f30a abort + 127
3   _pywrap_tensorflow_internal.so  0x000000011267edc0 tensorflow::internal::LogMessageFatal::~LogMessageFatal() + 32
4   _pywrap_tensorflow_internal.so  0x000000011267edd0 tensorflow::internal::LogMessageFatal::~LogMessageFatal() + 16
5   parser_ops.so                   0x0000000118d87468 syntaxnet::CoNLLSyntaxFormat::ConvertFromString(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::vector<syntaxnet::Sentence*, std::__1::allocator<syntaxnet::Sentence*> >*) + 2776
6   parser_ops.so                   0x0000000118d7b740 syntaxnet::TextReader::Read() + 400
7   parser_ops.so                   0x0000000118da6cfd syntaxnet::SentenceBatch::AdvanceSentence(int) + 61
8   parser_ops.so                   0x0000000118d94a0f syntaxnet::BeamState::AdvanceSentence() + 63
9   parser_ops.so                   0x0000000118d94876 syntaxnet::BeamState::Reset() + 38
10  parser_ops.so                   0x0000000118d93ebd syntaxnet::BatchState::ResetBeams() + 189
11  parser_ops.so                   0x0000000118d8fe55 syntaxnet::BeamParseReader::Compute(tensorflow::OpKernelContext*) + 69
12  _pywrap_tensorflow_internal.so  0x00000001123bf83c tensorflow::ThreadPoolDevice::Compute(tensorflow::OpKernel*, tensorflow::OpKernelContext*) + 348

Весь файл журнала сбоя Apple находится ниже. Скрипт, используемый для того, чтобы попытаться скомпилировать синтакснет обычным управляемым способом на Mac, приведен ниже. Вывод этого скрипта также ниже.

Кто-нибудь есть какие-либо идеи, как решить эту ошибку синтаксис-Python?

Компиляция и запуск синтаксической сети на Mac по-прежнему остается сложной задачей для большинства людей и невозможной для многих, за исключением файла Docker, который ограничивает гибкость. Дайте мне знать, если кто-нибудь может решить эту конкретную проблему. Спасибо!

--- оригинальный вопрос ниже ---

Многие, много умных людей потратили много-много часов, пытаясь скомпилировать синтакснет на Mac, и отказались. Я попытаюсь начать с нуля, и если мы сможем выявить ошибки, возможно, мы сможем получить лучший набор инструкций, чем приведенные здесь крайне неполные:

https://github.com/tensorflow/models/tree/master/research/syntaxnet

НОВЫЙ СТАРТ

Таким образом, эти инструкции, судя по общественным комментариям, вводят в заблуждение не полностью. Давайте запустим скрипт оболочки, чтобы сделать это, вытирая все чисто. Это не для общего исполнения - оно сложено и очень неразумно написано - просто люди могут помочь, взглянув на результат.

Вот с чем я работаю:

#!/usr/bin/env bash

# SYNTAXNET INSTALLER TEST FOR MAC (mac only!)

# DO NOT RUN THIS UNLESS YOU KNOW WHAT YOU ARE DOING.
# DO NOT RUN THIS UNLESS YOU UNDERSTAND EACH LINE OF THE CODE BELOW.
# THIS CAN DELETE IMPORTANT FILES AND CHANGE YOUR SYSTEM CONFIGURATION.

# to run this, put the shell script in the location you want syntaxnet files to go
# make sure your pwd is that directory, and then:
#    bash -x ./syxnt.sh
# or, to both view stdout and save to a file:
#    bash -x ./syxnt.sh 2>&1 | tee syxnt.out

echo "STOP NOW."
echo "YOU PROBABLY DONT KNOW WHAT YOURE DOING."
echo "DONT RUN THIS."
echo "HIT CTRL-C."

date ; read -t 60 -p "Hit ENTER or wait sixty seconds to begin; Hit Ctrl-C to stop." ; echo ; date

echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"

echo "#########################################################################"
echo "starting ################################################################"
echo "#########################################################################"

pwd

# xcode-select --install

rm -rf models

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
export PATH="/usr/local/bin:/usr/local/lib:$PATH"

echo $PATH
echo $PYTHONPATH

echo "STEP 0 ################################################################"
echo "not listed in instructions; helpful for fresh start"
echo "only include these if you are finding errors with permissions"
echo "these are overbroad deletions, but desperate times..."
sudo rm -rf /usr/local/lib/python2.7/site-packages/tensorboard*
sudo rm -rf /usr/local/lib/python2.7/site-packages/tensorflow*
sudo rm -rf /usr/local/lib/python2.7/site-packages/mock*
sudo rm -rf /usr/local/lib/python2.7/site-packages/funcsigs*
sudo rm -rf /usr/local/lib/python2.7/site-packages/six*
sudo rm -rf /usr/local/lib/python2.7/site-packages/pbr*

pip freeze | grep tensorflow
pip uninstall -y tensorflow
pip uninstall -y tensorflow-tensorboard
pip freeze | grep tensorflow

rm -rf /private/var/tmp/_bazel*
rm -rf /tmp/syntaxnet_pkg*
rm ./bazel-0.5.4-installer-darwin-x86_64.sh
rm -fr ~/.bazel ~/.bazelrc ~/.cache/bazel

echo "brew stuff ################################################################"
brew upgrade
brew cleanup
brew doctor
brew prune

echo "STEP 1 ################################################################"
type python
which python
python --version

echo "STEP 2 ################################################################"
# brew install bazel
# cant use the above line: installs most recent version, not the required 0.5.4

which bazel
rmb="$(which bazel)"
rm $rmb
rmb="$(which bazel)"
rm $rmb
which bazel
brew uninstall bazel --force
which bazel
mdfind -name bazel

curl -L -o ./bazel-0.5.4-installer-darwin-x86_64.sh 'https://github.com/bazelbuild/bazel/releases/download/0.5.4/bazel-0.5.4-installer-darwin-x86_64.sh'
chmod +x bazel-0.5.4-installer-darwin-x86_64.sh
./bazel-0.5.4-installer-darwin-x86_64.sh --user
export PATH="$PATH:$HOME/bin"
type bazel
which bazel
bazel version

echo "STEP 3 ################################################################"
type swig
which swig
brew uninstall swig --force
which swig
brew install swig
type swig
which swig
swig -version

echo "STEP 4 ################################################################"
pip freeze | grep protobuf
pip uninstall -y protobuf
# do we need --upgrade --force-reinstall here?
pip freeze | grep protobuf
pip install -U protobuf==3.3.0
pip freeze | grep protobuf

echo "STEP 5 ################################################################"
pip freeze | grep mock
pip uninstall -y mock
pip freeze | grep mock
pip install --upgrade --force-reinstall mock
pip freeze | grep mock

echo "STEP 6 ################################################################"
pip freeze | grep asciitree
pip uninstall -y asciitree
pip freeze | grep asciitree
pip install --upgrade --force-reinstall asciitree
pip freeze | grep asciitree

echo "STEP 7 ################################################################"
pip freeze | grep numpy
pip uninstall -y numpy
pip freeze | grep numpy
pip install --upgrade --force-reinstall numpy
pip freeze | grep numpy

echo "STEP 8 ################################################################"
pip freeze | grep autograd
pip uninstall -y autograd
pip freeze | grep autograd
# do we need --upgrade --force-reinstall here?
pip install autograd==1.1.13
pip freeze | grep autograd

echo "STEP 9 ################################################################"
# note that this was probably uninstalled above as part of killing autograd
# so dont worry about it not showing up in freeze or the initial error re uninstall
pip freeze | grep pygraphviz
pip uninstall -y pygraphviz
pip freeze | grep pygraphviz
pip install pygraphviz --install-option="--include-path=/usr/include/graphviz" --install-option="--library-path=/usr/lib/graphviz/"

pip freeze | grep pygraphviz

################################################################################
################################################################################
################################################################################

pwd
mdfind -name tensorflow
mdfind -name bazel

echo "STEP A ################################################################"
git clone --recursive https://github.com/tensorflow/models.git

echo "STEP B ################################################################"
cd models/research/syntaxnet/tensorflow

echo "STEP C ################################################################"
# youll need to push RETURN ten or eleven times here, depending on where your files are located
# feed return times 11 to this via echo pipe
# cleaning is not listed in the steps, but it might help
bazel clean
bazel clean --expunge
./configure

echo "STEP D ################################################################"
cd ..

echo "STEP E ################################################################"
echo "not done -- only for windows/linux"

date

echo "STEP F ################################################################"
# should probably verify mutex-thread warnings etc are not of interest here and suppress them
bazel test --linkopt=-headerpad_max_install_names dragnn/... syntaxnet/... util/utf8/...

date

################################################################################
################################################################################
################################################################################

echo "STEP I ################################################################"
mkdir /tmp/syntaxnet_pkg

echo "STEP II ################################################################"
bazel-bin/dragnn/tools/build_pip_package --output-dir=/tmp/syntaxnet_pkg

echo "STEP III ################################################################"
tswhl="$(ls /tmp/syntaxnet_pkg/syntax*.whl)"
# sudo pip install /tmp/syntaxnet_pkg/syntaxnet-x.xx-none-any.whl
sudo pip install $tswhl

################################################################################
################################################################################
################################################################################

echo "STEP TESTING ################################################################"

chmod u+x syntaxnet/demo.sh

echo "This took a long time" | syntaxnet/demo.sh
echo "This took a long time" | syntaxnet/demo.sh --conll

################################################################################
################################################################################
################################################################################

popd

Это работает, ТОЛЬКО ДЛЯ МЕНЯ, до --conll строка (самая последняя исполняемая строка над popd, выше). Примечательно, что он выполняет простой тест без форматирования conll; тогда форматирование conll вылетает в python. Сокращенный и полный отчет о сбое слишком много информации выглядит следующим образом:

сокращенно: https://pastebin.com/AUvFQiEJ

полный TMI: https://pastebin.com/FQrLLKY1

Полный файл stdout это; только последние несколько строк, плюс все настройки в самом верху, действительно представляют большой интерес:

https://pastebin.com/d6GmXyiD

Если кто-то может либо (i) идентифицировать этот сбой Pyll Conll, либо (ii) предложить какие-либо предложения относительно других способов принудительной очистки системы, сброса настроек и получения надежной процедуры компиляции, это будет приветствоваться.

Если есть запросы или запросы о диагностике или очистке (например, повторный запуск с отключенными предупреждениями мьютекса), я рад вам помочь.

[Отредактировано для использования pastebin вместо file.io.]

0 ответов

Другие вопросы по тегам