如何在 Theano 中更新扫描 Cython 代码?

how to update scan Cython code in Theano?

当我使用以下方式更新时,出现了一些问题,系统告诉我“缺少 header for unified diff at line 1 of patch

cd theano/scan_module/
cython scan_perform.pyx
patch scan_perform.c numpy_api_changes.diff

顺便说一句,我想更新的原因是我在windows anaconda环境下使用theano时,系统告诉我"UserWarning: The file scan_perform.c is not available. This donot happen normally." 我在:https://github.com/Theano/Theano/blob/master/theano/scan_module/scan_perform_ext.py找到了上面的方法 然后使用以下方式安装补丁命令

conda install patch 

如何解决这个问题?

我可以通过以下步骤禁用此警告:

  1. 转到releases page of Theano, click on the commit hash corresponding to the version of Theano you have installed, and then on "Browse Files". In my case, since I have Theano 1.0.3, I used the hash 65fefc3
  2. 导航到 github 存储库中的 theano/scan_module/c_code(在我的例子中对应于 this URL),然后下载文件的内容scan_perform.c 到同名文件中。

  3. 转到 Theano 源文件在您的计算机中的任何位置。就我而言,因为我使用的是 anaconda,所以它们位于:

    /home/<username>/miniconda3/envs/<env_name>/lib/python2.7/site-packages/theano
    
  4. 在那里,导航到 scan_module 目录,创建一个名为 c_code 的目录,然后将 cd 放入其中。

  5. 将刚刚下载的scan_perform.c文件粘贴到该目录下。

再次执行 Theano 时,您应该不会再看到警告。

我遇到了同样的问题。升级到 theano 1.0.5 解决了这个问题。