J'essaie d'utiliser l'API de détection d'objets de tensorflow et j'obtiens et importe une erreur juste après avoir appelé model_main.py
.
ImportError: cannot import name 'feature_column_v2' from 'tensorflow.python.tpu'
Cela se produit juste après que j'appelle:
python model_main.py --logtostderr --train_dir=training/ --pipeline_config_path=training/ssd_mobilenet_v1_pets.config
Traceback complète:
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)
À l'intérieur de mon dossier de formation se trouve le labelmap et le fichier de configuration, et les enregistrements tf sont correctement spécifiés dans le fichier de configuration.
Chemins dans le fichier de configuration du pipeline:
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
}
J'exécute tout sur Windows 10, en utilisant Python 3.7 et l'API fonctionne apparemment bien, car j'ai exécuté le fichier de test et les tests se sont déroulés sans aucun problème. J'ai également exécuté l'exemple de détection d'objet cahier jupyter, qui a également fonctionné.
rendre le hub feature_column compatible avec FeatureColumnV2 (FeatureColumn par opposition à _FeatureColumn) est une fonctionnalité relativement nouvelle, une partie cruciale est implémentée ici .
La raison pour laquelle cela échoue pour vous est simplement que la fonctionnalité n'est pas entrée dans la version bêta de TF2.0. Essayer avec
!pip install tf-nightly-2.0-preview
devrait marcher.