欢迎

Theano是一个Python库,让你可以定义、优化和有效地求值涉及多维数组的数学表达式。Theano的功能:

  • 与NumPy紧密集成 —— 在Theano编译的函数中使用numpy.ndarray
  • 透明使用GPU —— 执行数据密集型计算的速度比CPU快140倍。(float32 only)
  • 高效符号微分 —— Theano为具有一个或多个输入的函数计算导数。
  • 速度和稳定性优化 —— 即使x真的很小,也能得到正确的log(1+x)结果。
  • 动态C代码生成 —— 求值表达式更快。
  • 广泛的单元测试和自我验证 —— 检测和诊断许多类型的错误。

Theano has been powering large-scale computationally intensive scientific investigations since 2007. 但它在课堂上也足够用(蒙特利尔大学深度学习/机器学习课程)。

新闻

_images/talk2010.png

你可以通过在线(或下载)视频观看一个快速(20分钟)的介绍,它是在SciPy 2010上的一个talk:

Transparent GPU Computing With Theano.James Bergstra, SciPy 2010, June 30, 2010.

下载

Theano现在在PyPI上可以访问,并且可以通过easy_install Theanopip install Theano或通过下载和解压缩tarball并输入python setup.py install安装。

Those interested in bleeding-edge features should obtain the latest development version, available via:

git clone git://github.com/Theano/Theano.git

然后可以在你的$PYTHONPATH上放置checkout目录,或使用python setup.py develop.pth安装到你的site-packages目录中,以便当你通过Git提取更新时,它们将自动反映“已安装”的版本。For more information about installation and configuration, see installing Theano.

状态

 Latest PyPI version Number of PyPI downloads 

引用Theano

如果你使用Theano进行学术研究,强烈鼓励你(虽然不是必须的)引用以下最近的文章:

Theano is primarily developed by academics, and so citations matter a lot to us. 作为一个额外的好处,你增加了Theano的曝光率和潜在的用户(和开发人员)基础,这将为Theano的所有用户带来好处。Thanks in advance!

See our Theano Citation Policy for details.

文档

大致按照你想要查看的顺序:

你可以下载最新的PDF文档,而不用在线阅读。

Check out how Theano can be used for Machine Learning: Deep Learning Tutorials.

Theano在SciPy 2010上的推荐。

社区

“Thank YOU for correcting it so quickly. 我希望所有与我合作的包将有这样一个积极的维护 —— 它应该得到:-)“

(theano-users, Aug 2, 2010)

  • 如果你想要随时了解theano(low volume)的重要变化,请注册theano-announce
  • 如果你想与所有Theano用户交谈,请注册并发布到theano-users
  • Register and post to theano-dev if you want to talk to the developers.
  • 如果你想要接收有关GitHub存储库的所有更改的电子邮件,请注册到theano-github
  • 如果你想要接收我们的每日buildbot电子邮件,请注册到theano-buildbot
  • Ask/view questions/answers at StackOverflow
  • 我们使用Github tickets跟踪问题(但是,仍然可以在Assembla上找到一些旧的门票)。
  • Come visit us in Montreal! 大多数开发人员是蒙特利尔大学LISA组的学生。

帮助!

如何寻求帮助

The appropriate venue for seeking help depends on the kind of question you have.

  • How do I? theano-users mailing list or StackOverflow
  • I got this error, why? theano-users mailing list or StackOverflow (please include the full error message, even if it’s long)
  • I got this error and I’m sure it’s a bug – Github ticket
  • I have an idea/request – post the suggestion to theano-dev or, even better, implement the idea and submit a GitHub pull request!
  • Why do you? theano-users mailing list (not appropriate for StackOverflow)
  • When will you? theano-dev mailing list (not appropriate for StackOverflow)

Please do take some time to search for similar questions that were asked and answered in the past. If you find something similar that doesn’t fully answer your question, it can be helpful to say something like “I found X but it doesn’t address facet Y” and link to the previous discussion.

When asking questions on StackOverflow, please use the theano tag, so your question can be found, and follow StackOverflow’s guidance on asking questions. Consider also using the python and numpy tags, especially if you are unsure which library your problem relates to.

在你的问题中包含以下详细信息通常很有帮助:

  • 如果你有错误,提供完整的错误消息,即使它很长
  • 你使用的哪个版本的Python和Theano
  • Whether you’re using a CPU or GPU device
  • 你的Theano配置设置的详细信息(你可以通过print theano.config在Python中打印此设置)

Spending the time to create a minimal specific example of a problem is likely to get you to an answer quicker than posting something quickly that has too much irrelevant detail or is too vague. A minimal example may take you a bit more time to create but the first response is more likely to be the answer you need than, rather than a frustrated request for clarification.

如何提供帮助

如果你在theano-users邮件列表或StackOverflow上看到一个问题,你认为自己知道答案,请通过帮助他人来支持社区。

我们都曾经是Theano的新手,一旦社区扩展,就有不断涌现的Theano新用户寻求帮助。Perhaps you asked a question when you were first starting out? Now you can pay it forward by helping others. It’s also a good way to reinforce your own Theano knowledge.

Often it’s easiest to answer a question directly but sometimes it may be better to refer people to a good answer that was provided in the past. Pointing people to relevant sections in the documentation, or to a Theano tutorial, can also be helpful.

回答问题时,请友好一些(要一如既往地好!)并且,如果是在StackOverflow上,请遵循他们的回答问题指南。