python - 挤压喀拉斯

标签 python keras importerror

我正在尝试运行以下对象检测器, https://github.com/omni-us/squeezedet-keras

文件夹层次结构如下:

挤压-keras

   -> experiments
        -> kitti

   -> scripts
        -> train.py

   -> main
        -> model
            -> squeezeDet
            -> imagenet.h5

现在,我从squeezedet-keras/experiments/kitti 运行命令:

>>python ../../scripts/train.py --init ../../main/model/imagenet.h5

“train.py”文件以此行开头:

from main.model.squeezeDet import  SqueezeDet

这给出了错误:

Traceback (most recent call last):

File "../../scripts/train.py", line 9, in

from main.model.squeezeDet import SqueezeDet

ModuleNotFoundError: No module named 'main'

我从 virtualenv 运行它,我的默认 python 是 3.7.2,在 Windows 10 笔记本电脑上。

最佳答案

Python 解释器很难加载项目的模块。

模块加载器将仅识别以下文件夹:

  • 位于 {venv_folder}/lib/python{version}/site-packages/ 内 --- 它们可能是通过 pip install ... 安装的>python setup.py install
  • 位于当前工作目录
  • PYTHONPATH env var 指向

解决这个问题最简单的方法是设置环境变量:

cd working_dir/
source /path/to/my/venv/
export PYTHONPATH=/path/to/squeezedet-keras
python ../../scripts/train.py --init ../../main/model/imagenet.h5

另一种方法是在执行脚本之前导航到项目的文件夹:

cd /path/to/squeezedet-keras
source /path/to/my/venv/
python scripts/train.py --init main/model/imagenet.h5

关于python - 挤压喀拉斯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54979109/

相关文章:

python - 任何 keras 层中的 dropout 层和 dropout 参数有什么区别

keras - 属性错误 : module 'theano' has no attribute 'ifelse'

python - 如何在 ImportError 上区分 "module not found"和 "module threw exception"?

python - 在 Sublime Text 中使用 Pylinter 时出现导入错误

python - Python 中生成器为空时最优雅的分支方法

python - 在任何条件下返回 true 的值?

logging - Keras,附加到回调日志

python - 引发包含 unicode 文字 (u"\u0410") 的异常时没有输出以赢得控制台

python - 编写一个将十六进制转换为十进制的函数

python - 导入错误:无法从 'metadata' 导入名称 'importlib'