当前位置: 首页 > 知识库问答 >
问题:

ImportError:无法导入名称“input\u reader\u pb2”

屈浩波
2023-03-14

使用win10 64位

当我试图通过E:\projectx\model master\models master训练我的模型时

出现此错误

文件“train.py”,第49行,来自对象检测。生成器导入数据集生成器文件“C:\Users\DELL\AppData\Local\Programs\Python36\lib\site packages\object\u detection-0.1-py3.6.egg\object\u detection\builders\dataset\u builder.py”,第27行,来自对象检测器。数据解码器导入tf示例解码器文件“C:\Users\DELL\AppData\Local\Programs\Python\Python36\lib\site packages\object\u detection-0.1-py3.6.egg\object\u detection\data\u decoders\tf\u example\u decoder.py”,第27行,来自对象检测。protos导入输入\读卡器\ pb2导入错误:无法导入名称“input\读卡器\ pb2”

我确实运行了Protoc3.4protoc对象检测/protos/*。proto——python_out= 但是错误仍然存在,我检查了所有的东西,它应该可以正常工作,这让我很生气!!

请帮忙。。。。谢谢


共有3个答案

宰父夕
2023-03-14

也许您还没有将模块slim添加到PYTHONPATH。可以通过在models/research目录中运行下面的代码来完成。

export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
越风史
2023-03-14

object\u detection文件夹中:

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

此命令将生成一个*\u pb2。每个的py。proto文件,位于对象检测/protos/文件夹中。

注意:重要的是要在object_detection上面指定一个路径,否则将发生错误,最有可能:

对象检测/protos/ssd锚定发生器。proto:找不到文件。

protos/anchor_发生器。proto:8:1:未找到导入的“object\u detection/protos/ssd\u anchor\u generator.proto”或存在错误。

原型/anchor_generator.proto:17: 5:"FlexibleGridAnchorGenerator"未定义。

如果错误仍然存在,可能是您在错误的文件夹中,请查看输出消息,查看它试图从何处导入文件并在正确的目录中执行命令。

作为最后手段:从https://github.com/tensorflow/models/tree/master/research下载object_detection模块,将其放在您的工作目录中,输入并重新执行上面的命令。它肯定会工作,因为本地模块具有导入优先于sys.path

否则,错误消息可能与报告的消息不同,问题在于tensorflow安装或protobuf编译器;这里的问题是由protoc版本引起的。

孔和畅
2023-03-14

因为您已经编译了所有。对象检测/protos/中的proto文件。您应该会看到python文件中有像eval_pb2这样的“_pb2”。如果您可以看到这些,请转到models/research目录并逐个运行这些代码:

python setup.py build
python setup.py install
 类似资料:
  • 问题内容: 我有两个文件, app.py mod_login.py 而python返回此错误: 如果删除from app import app,代码将起作用,但是如何访问? 问题答案: 问题是你有一个循环导入:在app.py中 在mod_login.py中 这在Python中是不允许的。有关更多信息,请参见Python中的循环导入依赖项。简而言之,解决方案是 要么将所有内容收集到一个大文件中 使用

  • 问题内容: 我正在尝试运行以下简单代码 但我收到以下错误 我正在Windows 10下使用python 2.7。 我已经安装了,但是似乎无法解决问题 任何帮助表示赞赏。 问题答案: 如果查看引起错误的行,则会看到以下内容: 该行注释将依赖项声明为(对于 Intel Math Kernel Library )。这意味着您已经安装了by ,但是the是由预编译的存档安装的,其期望值为。 通过从此处的w

  • 问题内容: 我没有找到解决方案,有人可以帮忙吗? 问题答案: 1. 尝试更新 2. 尝试重新安装 以下代码段将打印到控制台什么?

  • 问题内容: 我正在尝试使用ttk模块为tkinter中的GUI应用程序为Windows创建可执行文件。我使用cx_freeze制作了一个exe,但是当我在控制台中运行该应用程序时,出现以下错误: 这是我的代码中的第14和15行: 问题答案: 看起来cx_freeze没有意识到它应该包含该模块,该模块有条件地由导入。您可以告诉它在命令行参数或关键字参数to中明确包含该模块。

  • 问题内容: 我无法使ffprobe软件包在Python 3.6中工作。我使用pip安装了它,但是当我输入时说 init.py文件仅包含一行。 包括“ C:\ Python \ Python36 \ lib \ site-packages”,这是ffprobe目录所在的位置。 安装和导入软件包在Python 2.7中都可以正常工作。但是我想在Python 3中使用它,即使这意味着对.py文件进行手动

  • 问题内容: 我将Jupyter笔记本从旧版本更新为最新的5.3.1。但是,当我尝试从anaconda启动笔记本电脑时,它引发了导入错误:我尝试删除并安装Jupyter软件包,但问题仍然存在。 问题答案: 您需要从终端手动更新jupyter_core和jupyter_client: