ImportError:没有名为' nets'

时间:2017-09-04 04:57:56

标签: python python-3.x tensorflow tensorflow-gpu

我正在尝试从tensorflow / models中提供的export_inference_graph.py脚本将trained_checkpoint转换为最终冻结模型,但会出现以下错误结果。 是的,我已经设置了$ PYTHONPATH到" models / slim"但我仍然得到这个错误,有人可以帮助我吗?

$ echo $PYTHONPATH
:/home/ishara/tensorflow_models/models:/home/ishara/tensorflow_models/models/slim

********问题***************** ************************************************** *********

$sudo python3 object_detection/export_inference_graph.py  --input_type image_tensor  --pipeline_config_path = "ssd_inception_v2_pets.config"  --trained_checkpoint_prefix="output/model.ckpt-78543"  --output_directory="birds_inference_graph.pb"

Traceback (most recent call last):
  File "object_detection/export_inference_graph.py", line 74, in <module>
    from object_detection import exporter
  File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/exporter.py", line 28, in <module>

  File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/builders/model_builder.py", line 30, in <module>
  File "/usr/local/lib/python3.5/dist-packages/object_detection-0.1-py3.5.egg/object_detection/models/faster_rcnn_inception_resnet_v2_feature_extractor.py", line 28, in <module>
ImportError: No module named 'nets'

我几天来一直在努力解决这个问题,试过很多解决方案都没有用 我正在使用带有tensorflow-gpu版本的Ubuntu 16.04。

9 个答案:

答案 0 :(得分:7)

看一下Protobuf编译 https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md 并正确设置PYTHONPATH,这就是我为Windows解决这个问题的方法

对于Windows:

来自tensorflow / models / research /

第1步:protoc object_detection/protos/*.proto --python_out=.

第2步:

set PYTHONPATH= <Path to 'research' Directory> ; <Path to 'slim' Directory>

例如:

set PYTHONPATH=C:\Users\Guy\Desktop\models\research;C:\Users\Guy\Desktop\models\research\slim

答案 1 :(得分:3)

我确实得到了同样的错误,因为我错过了将slim包装放入tensorflow / models文件夹。纤薄的包装打开了 https://github.com/tensorflow/models

答案 2 :(得分:2)

TF-Slim可通过TensorFlow 1.0作为tf.contrib.slim获得,因此如果您使用pip install tensorflow,则不需要另外安装它。您仍然需要做以下三件事:

  1. 安装模型库

    $ cd
    $ git clone https://github.com/tensorflow/models/
    
  2. PYTHONPATH添加到.bashrc

    $ cd
    $ vi .bashrc
    
    export PYTHONPATH="$PYTHONPATH:/home/${YOUR_USERNAME}/models/research/slim"
    
  3. 将模型路径添加到脚本中

    $ vi ${YOUR_SCRIPT}.py
    
    import sys
    sys.path.append('/home/${YOUR_USERNAME}/models/research/slim/')
    

完成这三个步骤后,您便已准备就绪。现在,您可以像这样导入TF网络:

import tensorflow as tf
from tensorflow.contrib import slim
from nets import inception_resnet_v2

答案 3 :(得分:1)

这是在较新版本的tensorflow上修复的,如果你只是更新你的张量流版本。

答案 4 :(得分:1)

对于MacOS:

export PYTHONPATH=/home/username/models/research/slim:$PYTHONPATH

解决问题。

答案 5 :(得分:0)

这是PYTHONPATH问题。

我想添加到现有答案中,如果它仍然不适合您并且您使用Anaconda环境,请使用发行版随附的Anaconda Prompt(以管理员模式),而不要使用操作系统的系统提示符。 。在Anaconda提示中设置PYTHONPATH并从那里运行命令。

此外,每次停用anaconda环境(包括重新启动机器)时,都会重置PYTHONPATH。因此,请记住再次进行设置。

答案 6 :(得分:0)

遇到了Windows上的苗条错误,这解决了我的问题

。我要做的是,将整个nets文件夹从苗条目录复制到C:\ Python \ Python \ Lib \ site-packages \ object_detection-0.1-py3.5.egg(安装了object_detection API的位置)。然后错误完全消失了。

答案 7 :(得分:0)

Ubuntu 18物理GPU(设备:0,名称:Tesla K80,pci总线ID:0000:00:1e.0,计算能力:3.7)强文本

cd models/research/slim/;
python setup.py build
python setup.py install

以防万一您已经下载或克隆了您的模型目录。

答案 8 :(得分:0)

如果您正在使用Jupyter Notebook和Linux sys

下载tensorflow-models

然后将其写在笔记本上

sys.path.append("/home/Roy/Downloads/models-master/research/slim/")

我为此解决了问题

希望有帮助