如何将 theano 网络编译成独立的可执行文件?

How do I compile a theano network into an self-contained executable?

我们想参加一场比赛,我们需要以可执行文件的形式提交我们的网络。在其中一个分赛中,网络将由评委进行训练,例如

案例 1:

./train-my-network-script trainingdata.dat  #call script to train
./run-my-network input.dat      #script to run our trained network input

案例 2: 在另一种情况下,我们将提交一个训练有素的网络,该网络将只接收一个输入文件,例如

./run-my-trained-net -i input.dat -o output.dat

如何将我们的 theano 构建网络(无论是 RBM 还是其他变体)编译成可以以这种方式打包的东西,而不需要另一端的人实际安装 theano?

法官可以安装一个 VM 或一个 Docker 图像,其中安装了 Theano 和你的东西吗?这在短期内会更容易。

我们不完全掌握您的要求,但可以为 Theano 函数生成共享库。这还没有合并到 Theano 本身。我开始了这个,Alberto Orlandi 正在继续这个。他在一个分支上有一个工作版本。查看此分支:

https://github.com/AlOa/Theano/commits/embed_theano

还有这个邮件列表讨论:

https://groups.google.com/d/topic/theano-users/JtxIequsHNg/discussion

他正在为此做一个 PR。但是当前版本并没有完全按照您的要求进行操作,需要您为共享变量做一些工作才能使其正常工作。

这个分支所做的是生成一个依赖 Python 和 NumPy 而不是 Theano 的 C++ 共享库。