未定义全局名称“col2im_6d_cython”,CS231n

问题描述 投票:0回答:6

我正在关注CS231n,在做作业2时遇到问题:ConvolutionalNetworks:

global name 'col2im_6d_cython' is not defined

我认为问题是由于从使用 cython 的

im2col_cython.pyx
导入函数失败。

我已经安装了Xcode 7.3.1,如下图,但问题仍然没有解决。

我正在 Anaconda 的 Jupyter 中运行 ipynb 文件。 reddit 上有一个相关的 discussion ,但不幸的是这里的解决方案是针对 Windows 的,而不是 Mac OS X。

感谢您的宝贵时间。

python-2.7 cython anaconda deep-learning jupyter
6个回答
4
投票

我想添加我的意见作为评论,但没有足够的声誉点来这样做。

当我关闭 jupyter 笔记本并再次打开它时,问题已解决。我在收到导入错误后编译了 cython 扩展,并且可能必须在 .so 文件可用时重新启动它。


2
投票

我通过两个简单的步骤解决了这个问题:

  1. 在终端中,在cs231n目录中运行

    python setup.py build_ext --inplace

  2. 然后重新打开笔记本(如有必要,关闭笔记本,然后再次打开);


Ps.:我也使用

!python ./cs231n/setup.py build_ext --inplace
通过笔记本尝试了这一点。 这不起作用!您必须使用终端在笔记本之外进行操作。


0
投票

我最近遇到了这个问题。我用谷歌搜索了很多,也尝试了卸载/重新安装 Anaconda。然而,它确实可以进一步发挥作用。所以我使用“which python”来找出正在使用哪个python。事实证明,默认使用 Anakonda 目录中包含的 python。然后我在我的 macOS 中尝试了 python2.7,它位于 /usr/bin/python2.7 中。虽然我收到了一些警告,但现在它的效果就像魅力一样。也许这是版本问题。在 macOS Sierra 10.12.4 中已解决。

enter image description here

我对比了两次编译结果,发现包含文件完全不同。 Anaconda中包含了python3.6中的所有头文件。相反,我们需要 python2.7 中的相应头文件(我想)。正如红色圆圈所指出的那样。

enter image description here


0
投票

Python 3 及以上版本支持。转到 setup_googlecloud.sh 并更改行 虚拟环境.env 到 virtualenv -p python3 .env 并再次运行设置,如分配1设置中所述。 之后效果很好..


0
投票

我也想到了。

我的问题:

我看到创建的扩展文件名为“im2col_cython.cp37-win_amd64.pyd”,并且导入正在单独查找im2col_cython,因此我将文件名更改为“im2col_cython.pyd”并再次运行安装脚本。 现在,当我在笔记本中运行代码时,它找到了该模块,但它说该 dll 是使用不同的 python 版本编译的。我使用 Anaconda envs,事实证明,自从我从 cmd 运行设置脚本以来,它使用了与环境不同的 python 版本。我从 cs231n 目录(im2col_cython.cp37-win_amd64.pyd 和 im2col_cython.c)中删除了创建的文件,并再次运行设置脚本,这次是从 env Anaconda Prompt 运行,它起作用了。

解决方案:

  • 删除已创建的文件(.c 和 .pyd 文件)
  • 运行安装程序 来自环境提示符的脚本(不是普通的 cmd)
  • 更改.pyd 文件名放入 im2col_cython.pyd

享受吧!


0
投票

我终于解决了这个问题!!请注意,重点是确保 python 版本一致。

要检查笔记本的版本:输入 jupyter 笔记本

from platform import python_version python_version()

并且版本要与setup.py生成的pyd文件相同。

例如我的 pyd 文件是 im2col_cython.cp36-win_amd64.pyd。那么jupyter笔记本中的python版本必须是3.6,如果不是,请尝试在anaconda提示符下运行jupyter笔记本

我个人认为这么多人出现这个问题的主要原因是:anaconda env 和 system env 中的 python 版本不同

© www.soinside.com 2019 - 2024. All rights reserved.