欢迎¶
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. 但它在课堂上也足够用(蒙特利尔大学深度学习/机器学习课程)。
新闻¶
- 2016/05/09: New technical report on Theano: Theano: A Python framework for fast computation of mathematical expressions. This is the new preferred reference.
- 2016/04/21:发布Theano 0.8.2,添加支持CuDNN v5。
- 2016/03/29:发布Theano 0.8.1,修复了在MacOS X与XCode 7.3上的一个编译问题。
- 2016/03/21:发布Theano 0.8。Everybody is encouraged to update.
- Multi-GPU.
- We added support for
CNMeM
to speed up the GPU memory allocation. - Theano 0.7 was released 26th March 2015. Everybody is encouraged to update.
- We support cuDNN if it is installed by the user.
- Open Machine Learning Workshop 2014 presentation.
- Colin Raffel tutorial on Theano.
- Ian Goodfellow did a 12h class with exercises on Theano.
- New technical report on Theano: Theano: new features and speed improvements.
- HPCS 2011 Tutorial. We included a few fixes discovered while doing the Tutorial.
你可以通过在线(或下载)视频观看一个快速(20分钟)的介绍,它是在SciPy 2010上的一个talk:
Transparent GPU Computing With Theano.James Bergstra, SciPy 2010, June 30, 2010.
下载¶
Theano现在在PyPI上可以访问,并且可以通过easy_install Theano
、pip 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.
引用Theano ¶
如果你使用Theano进行学术研究,强烈鼓励你(虽然不是必须的)引用以下最近的文章:
- Theano Development Team.“Theano: A Python framework for fast computation of mathematical expressions”.(
short BibTeX
,full BibTeX
)
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.
文档¶
大致按照你想要查看的顺序:
- Installing Theano – How to install Theano.
- Theano at a Glance – What is Theano?
- Tutorial – Learn the basics.
- Troubleshooting – Tips and tricks for common debugging.
- API Documentation – Theano’s functionality, module by module.
- Frequently Asked Questions – A set of commonly asked questions.
- Optimizations – Guide to Theano’s graph optimizations.
- Extending Theano – Learn to add a Type, Op, or graph optimization.
- Developer Start Guide – How to contribute code to Theano.
- Theano Design and Implementation Documentation – Primarily of interest to developers of Theano
- Internal Documentation – How to maintain Theano and more...
- Release – How our release should work.
- Acknowledgements – What we took from other projects.
- Related Projects – link to other projects that implement new functionalities on top of Theano
你可以下载最新的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上,请遵循他们的回答问题指南。