CS231n A2-4-cnn: name 'col2im_6d_cython' is not defined详细解决方法

1.笔者写cs231n的作业的环境:

win10+ananconda 5.1+python 3.6在spyder里面写的

2.问题:NameError: name 'col2im_6d_cython' is not defined(如图所示)

CS231n A2-4-cnn: name 'col2im_6d_cython' is not defined详细解决方法

3.网上的解决方式:

大都一两句说了,感觉对初学者不友好(好吧,极有可能是我比较菜)

比如博客1博客2博客3

其实在代码提示中有这句话“The fast convolution implementation depends on a Cython extension; to compile it you need to run the following from the cs231n directory:python setup.py build_ext --inplace”快速卷积实现取决于Cython扩展; 编译它,你需要从cs231n目录运行以下命令:python setup.py build_ext --inplace。我试过cmd中和anaconda prompt中都不行(最后证明是我打开的姿势不对,哦,方式不对)

4.解决方式详细过程:

1)打开Anaconda Prompt

2)输入:cd /d  (加代码路径)例如:G:\AI\deeplearning\spring1718_assignment2_v2\spring1718_assignment2_v2\cs231n

CS231n A2-4-cnn: name 'col2im_6d_cython' is not defined详细解决方法

3)输入:python setup.py build_ext --inplace 。此时会增加一个build文件夹和名为im2col_cython.c、im2col_cython.cp36-win_amd64.pyd的两个文件( 结果图如下)

CS231n A2-4-cnn: name 'col2im_6d_cython' is not defined详细解决方法

4)删除那几个文件,重启spyder, 然后就好了。(为啥编译了又删除?在spyder里面不删除会报错,不知道他们在jupyter上做的需不需要删除)


补充一点,如果上述步骤操作完了还是报错,那么就要看一下你代码里面的路径是否正确了,举个栗子:

我把所有.py文件都放在cs231n的文件夹下,而fast_layers.py里面的代码为CS231n A2-4-cnn: name 'col2im_6d_cython' is not defined详细解决方法

而在该文件夹文件夹下没有另一个cs231n文件夹,所以两个import实际都没有成功,我这里就应该删掉“cs231n. ”然后成功。

好吧,对于我自己的问题貌似就是那个路径问题。

知道真相的我眼泪掉下来CS231n A2-4-cnn: name 'col2im_6d_cython' is not defined详细解决方法一天多时间就这么浪费了