ImportError: невозможно импортировать имя 'delf_config_pb2' - PullRequest
0 голосов
/ 30 ноября 2018

Установлен DELF через терминал Ubuntu на экземпляре Google Cloud для распознавания изображений с использованием следующих инструкций: https://github.com/tensorflow/models/blob/master/research/delf/INSTALL_INSTRUCTIONS.md

В последнем шаге для проверки установки написано «должен просто вернуться без жалоб. Это означает, что пакет DELFзагружен успешно. "Я запускаю это, но это дает мне

"/home/shared/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
WARNING:tensorflow:From /home/shared/anaconda3/lib/python3.6/site-packages/tensorflow/contrib/learn/python/learn/datasets/base.py:198: retry (from tensorflow.contrib.learn.python.learn.datasets.base) is deprecated and will be removed in a future version.
Instructions for updating:
Use the retry module or similar alternatives."

Итак, я не уверен, что это означает, что DELF был успешно установлен или нет.

Затем, при попытке примера запустить delf (https://github.com/tensorflow/models/blob/master/research/delf/EXTRACTION_MATCHING.md) когда я запускаю

python extract_features.py \
  --config_path delf_config_example.pbtxt \
  --list_images_path list_images.txt \
  --output_dir data/oxford5k_features

, он возвращает ошибку

"Traceback (most recent call last):
  File "extract_features.py", line 34, in <module>
    from delf import delf_config_pb2
ImportError: cannot import name 'delf_config_pb2'" 

Таким образом, он импортирует delf, но не delf_config_pb2.

Это работало, когда я следовалточно такие же инструкции на моем локальном Ubuntu, но на экземпляре google cloud ubuntu происходит сбой.

Кроме того, когда я останавливаю экземпляр и затем перезапускаю его, он говорит, что delf не установлен и не может даже импортировать delf, поэтомуЯ должен каждый раз повторять инструкции по установке.

1 Ответ

0 голосов
/ 11 января 2019

Protoc complier генерирует delf_config_pb2 файл

, поэтому убедитесь, что вы установили его правильно

wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip
unzip protoc-3.3.0-linux-x86_64.zip
echo 'export PATH=/path/to/protoc/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

или посмотрите здесь, как установить компилятор protoc

[http://google.github.io/proto-lens/installing-protoc.html][1]

проверьте, установлен ли Proto Complier.

введите protoc на терминале и посмотрите, работает ли команда.

После установки protoc введите эту команду

# From tensorflow/models/research/delf/
protoc delf/protos/*.proto --python_out=.

и вы можете добавить путь в файл .bashrc в облаке Google, чтобы не переустанавливать delf.

В облаке Google.(проверьте расположение установленной папки с моделью tenorflow)

echo 'export PYTHONPATH=$PYTHONPATH:tensorflow/models/research' >> ~/.bashrc 
...