我使用 Docker 在本地安装了 TensorFlow API(对象检测)。我如何在 Jupyter Notebook 中使用这个包?

I installed a TensorFlow API (Object Detection) locally using Docker. How can I use this package in a Jupyter Notebook?

我正在尝试将 Tensorflow 的对象检测库用于学生项目。我按照 Tensorflow 团队的说明在 Docker 上本地安装(参见这些链接:Tensorflow Team's Instructions and Medium Article with the Same Instructions)。我能够在 Docker 上成功获取图像并 运行ning,即我成功安装了 API。

但我缺少有关 Docker 的背景信息,无法了解如何以及在何处导入和使用对象检测功能(例如:from object_detection.utils import label_map_utilfrom object_detection.utils import dataset_util 等)

  1. 当我在本地 Anaconda Jupyter Notebook 中尝试时,出现 ModuleNotFound 错误,大概是因为 object_detection API 位于 Docker 容器中。
  2. 我尝试使用 Docker 按照 this article 打开一个单独的 Jupyter Notebook。这是我在 models/research 文件夹下的 Powershell(命令提示符)中输入的内容: $ docker run -p 8888:8888 -v $(pwd):/home/jovyan/work jupyter/minimal-notebook。 我能够使用 Docker 打开一个单独的 Jupyter Notebook,但这创建了一个与安装了 object_detection 的容器完全不同的容器。所以这也返回了 ModuleNotFound 错误。
  3. 我尝试 运行 在正确容器中的 bash shell 中使用相同的命令(我使用 docker exec -it [container_name] /bin/bash)。但是,当我尝试在那个 bash shell 中输入任何 'docker' 或 'sudo' 命令时,它 returns 一个错误,通常说在 bash shell.

我想我对 Docker 的了解还不够,无法知道如何以及在何处可以将 object_detection 导入到我的 Python 代码中。任何资源、链接或提示都将不胜感激。

经过多次尝试,对于那些在使用 Docker 安装模块后可能遇到类似问题的人,我有了一个答案。我相信在解决这个问题的过程中,我至少遇到了以下两个问题之一:

  1. 错误的环境:我在位于 Anaconda 基地的 Jupyter Notebook 中编码。对于 tensorflow 或依赖于 tensorflow 的 API,您必须使用 Anaconda Navigator 中的“Applications on:”下拉框并切换到 tensorflow (tf) 环境。我相信我已经为大部分故障排除选择了这个环境,但有时在重新启动和安装之间会混淆一些东西,所以请检查一下。

  2. 系统环境变量需要手动更新:这是最重要也是最复杂的问题,让我无法导入object_detection. Python 使用系统路径搜索模块,但有时模块可能位于不包含在“Path”环境变量中的目录中。我根据解决方案更改了我的环境变量。您唯一需要注意的是 Python 文件夹的名称。 这取决于您的 Python 程序文件的名称。 我的 Python 文件夹名为“Python”,而不是“Python36” ”。但无论如何,感谢上述解决方案的合作者,因为它确实帮助了我。