导入错误:无法导入名称为'string_int_label_map_pb2'的模块。

7
我使用以下命令编译文件。
protoc object_detection/protos/*.proto --python_out=.

因此,代码被编译成.py文件。

然而,我收到了以下错误代码。

~/Documents/imgmlreport/inception/classification_inception/models/research/object_detection/utils/label_map_util.py in ()

 20 import tensorflow as tf
 21 from google.protobuf import text_format
---> 22 from object_detection.protos import string_int_label_map_pb2
 23 
 24 

ImportError: cannot import name 'string_int_label_map_pb2'

我查看了utils文件夹,发现已经有了string_int_label_map_pb2.py文件。

为什么无法导入string_int_label_map_pb2.py文件?


1
当我尝试在ML ENGINE中运行训练作业时,出现了相同的错误。 我遵循了https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md上给出的完整说明。 - Hassan Kamal
你修好了吗? - BJC
是的,它绝对有效。遵循完整的说明。谢谢。 - Piyal George
2个回答

2

您是否正在使用conda环境?

如果是的话,指向protoc文件夹的路径应该是C:\Users\xx\anaconda3\envs\xx\Lib\site-packages\protos。

您应该将Models\reserach中的protoc内容复制到此位置。


0

对我有效的解决方案如下:

如果您正在创建一个虚拟环境

在创建环境后运行以下命令,将Google文件.protp更改为.py

protoc object_detection/protos/*.proto --python_out=.

但是,如果您仍然遇到错误,您可以简单地在Google Colab笔记本上运行代码:

Protos转换为Python %%cd /content/drive/MyDrive/TFOD1.x/models/research

!protoc object_detection/protos/*.proto --python_out=.

获取protoc文件夹中的文件,然后将其复制到>models>research>protoc中 并(导入步骤): 将该文件夹复制到您的环境路径中:

例如:

C:\Users\x04xx18\Anaconda3\envs\tfod1.x\libs\protos

这应该能为您解决错误!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接