我尝试在git url
下的object_detection中训练https://github.com/tensorflow/models/tree/master/research/object_detection
但是,会发生以下错误。
ModuleNotFoundError:没有名为'object_detection'的模块
所以我尝试通过编写以下代码来解决问题。
import sys
sys.path.append('/home/user/Documents/imgmlreport/inception/models/research/object_detection')
from object_detection.builders import dataset_builder
此问题尚未解决。
目录结构如下所示。
~/object_detection/train.py
~/object_detection/builders/dataset_bulider.py
这里是完整的错误按摩
/home/user/anaconda3/lib/python3.6/site-packages/h5py/ init .py:34:FutureWarning:从
float
转换issubdtype的第二个参数不推荐使用np.floating
。将来,它将被视为
np.float64 == np.dtype(float).type
。 从._conv import register_converters as _register_converters追踪(最近一次呼叫最后一次):
文件“train.py”,第52行,in 进口培训师
文件“/home/user/Documents/imgmlreport/inception/models/research/object_detection/trainer.py”,第26行,在 来自object_detection.builders import optimizer_builder
ModuleNotFoundError:没有名为'object_detection'的模块
我如何导入模块?
答案 0 :(得分:12)
尝试安装已打包的Tensorflow对象检测库
pip install tensorflow-object-detection-api
答案 1 :(得分:0)
object_detection文件夹中有许多模块,我在父目录(研究文件夹)中创建了setup.py来导入所有模块。
Result( "\n Create Image... ")
image img := RealImage( "test", 4, 100, 100 )
Result( "\n Get it's ImageDocument... ")
imageDocument doc = img.ImageGetOrCreateImageDocument()
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
Result( "\n Clean it!" )
doc.ImageDocumentClean()
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
Result( "\n Make it dirty by setting the first pixel value to the value it has..." )
img.SetPixel(0,0,img.GetPixel(0,0))
Result( "\n Is it dirty? --> " + (doc.ImageDocumentIsDirty()?"Yes, dirty":"No, clean"))
答案 2 :(得分:0)
每次在该环境中打开新终端时,都需要导出环境变量。
请注意,命令中每个pwd都有反引号,因为以下命令中可能未显示。反引号与波浪号键相同,但不按Shift键(美国键盘)。
来自tensorflow / models / research /
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
答案 3 :(得分:0)
此错误的原因是安装了object_detection库,因此可行的解决方案之一是在model / research内部运行以下命令
sudo python setup.py install
如果这样的解决方案不起作用,请在目录“ model / research”中一一执行以下命令
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim sudo python setup.py install
我希望这会起作用。从export_inference_graph.py创建模型时,我也面临相同的问题。它对我有用。
答案 4 :(得分:0)
尝试: python setup.py构建 python setup.py install
答案 5 :(得分:0)
在导入对象检测之前,您确实具有“ sys.path.append()”,因此令您惊讶的是,您遇到此错误!
请检查您在sys.path.append()中使用的路径是否正确。
好吧,唯一的错误答案是模块的路径没有正确添加。
除了这里提到的各种方法之外,这是一种可以将“ object_detection”路径永久添加到PYTHONPATH变量的方法。
如果您使用的是Linux系统,请按以下步骤操作:
转到主目录。按Ctrl + H显示隐藏的文件。您将看到一个名为“ .bashrc”的文件。使用代码编辑器(我使用Visual Studio)打开此文件。
在.bashrc文件的最后一行中,添加以下行:
export PYTHONPATH=/your/module/path:/your/other/module/path:your/someother/module/path
然后在代码编辑器中按“保存”。由于“ .bashrc”是“只读”文件,因此编辑器将抛出一个弹出窗口,提示相同。同样在弹出窗口中,将显示一个选项:“尝试sudo”。点击此按钮,现在您可以开始了。
您所有的模块现在都已永久添加到了PYTHONPATH中。这意味着您不必在每次打开终端并开始会话时都运行sys.path.append!
下面是我按照上述步骤操作时没有错误的屏幕截图:
尝试一下。希望对您有所帮助。
答案 6 :(得分:0)
我不得不这样做:
sudo pip3 install -e .
(ref)
sudo python3 setup.py install
系统:
操作系统:Ubuntu 16.04、Anaconda(我想这就是为什么我需要使用 pip3
和 python3
,即使我使用 Pyehon 3.8 创建了虚拟环境)