Я пытаюсь использовать API-интерфейс обнаружения объектов tenorflow, и получаю и импортирую ошибку сразу после вызова model_main.py.

ImportError: cannot import name 'feature_column_v2' from 'tensorflow.python.tpu'

Это происходит сразу после того, как я позвоню:

python model_main.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config

Полный возврат:

Traceback (most recent call last):
  File "model_main.py", line 26, in <module>
    from object_detection import model_lib
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\object_detection-0.1-py3.7.egg\object_detection\model_lib.py", line 28, in <module>
    from object_detection import eval_util
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\object_detection-0.1-py3.7.egg\object_detection\eval_util.py", line 35, in <module>
    slim = tf.contrib.slim
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\util\lazy_loader.py", line 62, in __getattr__
    module = self._load()
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\util\lazy_loader.py", line 45, in _load
    module = importlib.import_module(self.__name__)
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\contrib\__init__.py", line 33, in <module>
    from tensorflow.contrib import compiler
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\contrib\compiler\__init__.py", line 22, in <module>
    from tensorflow.contrib.compiler import xla
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\contrib\compiler\xla.py", line 22, in <module>
    from tensorflow.python.estimator import model_fn as model_fn_lib
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\estimator\__init__.py", line 26, in <module>
    from tensorflow_estimator.python import estimator
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\python\estimator\__init__.py", line 25, in <module>
    import tensorflow_estimator.python.estimator.estimator_lib
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\python\estimator\estimator_lib.py", line 69, in <module>
    from tensorflow_estimator.python.estimator.tpu.tpu_estimator import TPUEstimator
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\python\estimator\tpu\tpu_estimator.py", line 83, in <module>
    from tensorflow_estimator.python.estimator import estimator as estimator_lib
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\__init__.py", line 8, in <module>
    from tensorflow_estimator._api.v1 import estimator
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\_api\v1\estimator\__init__.py", line 11, in <module>
    from tensorflow_estimator._api.v1.estimator import tpu
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\_api\v1\estimator\tpu\__init__.py", line 8, in <module>
    from tensorflow_estimator._api.v1.estimator.tpu import experimental
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\_api\v1\estimator\tpu\experimental\__init__.py", line 8, in <module>
    from tensorflow_estimator.python.estimator.tpu._tpu_estimator_embedding import EmbeddingConfigSpec
  File "C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_estimator\python\estimator\tpu\_tpu_estimator_embedding.py", line 32, in <module>
    from tensorflow.python.tpu import feature_column_v2 as tpu_fc_v2
ImportError: cannot import name 'feature_column_v2' from 'tensorflow.python.tpu' (C:\Users\Rodolfo\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\tpu\__init__.py)

Внутри моей обучающей папки находится карта меток и файл конфигурации, а записи tf правильно указаны в файле конфигурации.

Пути в файле конфигурации конвейера:

train_input_reader: {
  tf_record_input_reader {
    input_path: "data/train.record"
  }
  label_map_path: "training/object-detection.pbtxt"
}

eval_input_reader: {
  tf_record_input_reader {
    input_path: "data/test.record"
  }
  label_map_path: "training/object-detection.pbtxt"
  shuffle: false
  num_readers: 1
}

Я запускаю все на Windows 10, используя Python 3.7, и API, по-видимому, работает нормально, так как я запустил тестовый файл, и тесты запустились без каких-либо проблем. Я также запустил пример обнаружения объектов на ноутбуке Jupyter, который также работал.

5
Rodolfo Donã Hosp 9 Июл 2019 в 14:45

3 ответа

Лучший ответ

Обновите версию tenorflow до версии 1.14.

2
Ghanem 23 Авг 2019 в 09:24

сделать хаб feature_column совместимым с FeatureColumnV2 (FeatureColumn в отличие от _FeatureColumn) является относительно новым Эта важная часть реализована здесь .

Причина, по которой он не работает, заключается в том, что функция не получила в бета-версию TF2.0. Попытка с !pip install tf-nightly-2.0-preview должна работать.

Цитируется здесь

0
Dlutwy 7 Ноя 2019 в 07:48

В python 3.7 все еще есть проблема с тензорным потоком, попробуйте понизить версию до 3.6.x или даже 3.5.x в вашей среде env.

РЕДАКТИРОВАТЬ: Что с отрицательными голосами? В то время, когда это было так, информация пришла с форумов tenorflow, и это решило проблему для меня.

-1
Frederik Steinmetz 26 Дек 2019 в 17:00