python - 模块未找到错误: No module named 'nets' on Google Colab

标签 python tensorflow google-colaboratory pythonpath

我正在尝试在 Google Colab 上运行 TensorFlow 对象检测 API,以在自定义数据集上训练 SSD-Mobilenet 模型。但我面临着这个NoModuleError。它没有找到模块'nets'。我已经发现有人面临类似的问题,尽管他们没有在 Google Colab 中运行 Trining。以下是一些链接:

ImportError: No module named 'nets'

ModuleNotFoundError: No module named 'nets' (TensorFlow)

在上面的所有地方,我都发现了添加 slimresearch 文件夹的 PYTHONPATH 的建议,并且我全部完成了。以下是我已经添加的路径:

! echo $PYTHONPATH

import os
os.environ['PYTHONPATH'] += ":/models"
os.environ['PYTHONPATH'] += ":/models/research"
os.environ['PYTHONPATH'] += ":/models/research/slim"
# I copied the `nets` folder inside models folder and 
# additionally here adding this folder to python path such that it becomes available to `faster_rcnn_inception_resnet_v2_feature_extractor.py` file for importing.
os.environ['PYTHONPATH'] += ":/models/nets" 

! echo $PYTHONPATH

%cd '/content/gdrive/My Drive/Computer_vision_with_deep_learning/TFOD/models/research/'
!python setup.py build
!python setup.py install
%cd '/content/gdrive/My Drive/Computer_vision_with_deep_learning/TFOD'

但仍然出现此错误。以下是我在 Colab 上遇到的错误:

Traceback (most recent call last):
  File "training/train.py", line 26, in <module>
    from object_detection import model_lib
  File "/content/gdrive/My Drive/Computer_vision_with_deep_learning/TFOD/training/object_detection/model_lib.py", line 28, in <module>
    from object_detection import exporter as exporter_lib
  File "/content/gdrive/My Drive/Computer_vision_with_deep_learning/TFOD/training/object_detection/exporter.py", line 23, in <module>
    from object_detection.builders import model_builder
  File "/content/gdrive/My Drive/Computer_vision_with_deep_learning/TFOD/training/object_detection/builders/model_builder.py", line 59, in <module>
    from object_detection.models import faster_rcnn_inception_resnet_v2_feature_extractor as frcnn_inc_res
  File "/content/gdrive/My Drive/Computer_vision_with_deep_learning/TFOD/training/object_detection/models/faster_rcnn_inception_resnet_v2_feature_extractor.py", line 30, in <module>
    from nets import inception_resnet_v2
ModuleNotFoundError: No module named 'nets'

正如我注意到的,错误产生行是文件faster_rcnn_inception_resnet_v2_feature_extractor.pyfrom nets import inception_resnet_v2。因此,我另外将 nets 文件夹复制到其范围内,以便它可以找到该模块。但它仍然说同样的话,尽管现在没有必要找不到这个模块。这里还可能出了什么问题?

最佳答案

我遇到了同样的错误,但我找到了可能的解决方案。 您需要在 slim 目录中运行上面的代码。

%cd drive/My\ Drive/<path to slim>/slim

!python setup.py build
!python setup.py install

此代码运行 slim 的 setup.py,实际上它设置了所需的所有模块。

您可能还需要将 slim 路径添加到环境变量中。

os.environ['PYTHONPATH'] = '/env/python/drive/My Drive/slim'

或者

! export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim

以下是对我有用的链接。

https://github.com/tensorflow/models/issues/1842

https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10/issues/150

希望这会有所帮助。

关于python - 模块未找到错误: No module named 'nets' on Google Colab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61934198/

相关文章:

python - Jupyter 笔记本中的 TensorFlow 变量重用错误

python - 添加到函数中定义的列表

python - YOLO在YOLO 9000中如何计算P(Object)

python - tensorflow -对象检测.pbtxt;没有这样的文件或目录

python - OSError : SavedModel file does not exist at:/content\model\2016/{saved_model. pbtxt|saved_model.pb}

python - Django 小部件覆盖模板

python - 来自 csv python 的分层 JSON

python - 将 Tensor 作为输入传递给 Keras api 功能模型

python - 如何检查 TPU 设备类型是 v2 还是 v3?

python - GPT-2 从检查点继续训练