Theano 中文文档 0.9 - 1. 欢迎
1. 欢迎
译者:Python 文档协作翻译小组,原文:Welcome。
本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处。
Python 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。
Theano是一个Python库,允许你定义、优化和有效地求值涉及多维数组的数学表达式。Theano的功能:
- 与NumPy紧密集成 —— 在Theano编译的函数中使用
numpy.ndarray
。 - 透明使用GPU —— 执行数据密集型计算的速度比CPU快140倍。(仅限float32)
- 高效符号微分 —— Theano为具有一个或多个输入的函数计算导数。
- 速度和稳定性优化 —— 即使
x
真的很小,也能得到正确的log(1+x)
结果。 - 动态C代码生成 —— 求值表达式更快。
- 广泛的单元测试和自我验证 —— 检测和诊断许多类型的错误。
自2007年以来,Theano一直致力于大规模计算密集型科学研究。但它在课堂上也足够用(蒙特利尔大学深度学习/机器学习课程)。
新闻
- 2016/05/09:Theano的新技术报告:Theano:快速计算数学表达式的Python框架。这是新的首选参考。
- 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。鼓励每个人更新。
- 多GPU。
- 我们添加了对
CNMeM
的支持,以加快GPU内存分配。 - Theano 0.7于2015年3月26日发布。鼓励每个人更新。
- 如果用户安装cuDNN,我们支持。
- 开放机器学习研讨会2014 演示。
- The Colin Raffel 教程。
- Ian Goodfellow做了一个12小时的课程,练习Theano。
- 关于Theano的新技术报告:Theano:新功能和速度改进。
- HPCS 2011教程。我们在做教程时发现了一些修复。
你可以通过在线(或下载)视频观看一个快速(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
安装。
对于前沿功能感兴趣的用户应该获得最新的开发版本,可以通过:
git clone git://github.com/Theano/Theano.git
然后可以在你的$PYTHONPATH
上放置checkout目录,或使用python setup.py develop
将.pth
安装到你的site-packages
目录中,以便当你通过Git提取更新时,它们将自动反映“已安装”的版本。有关安装和配置的详细信息,请参阅installing Theano。
状态
引用Theano
如果你使用Theano进行学术研究,强烈鼓励你(虽然不是必须的)引用以下最近的文章:
- Theano Development Team.“Theano: A Python framework for fast computation of mathematical expressions”.(
short BibTeX
,full BibTeX
)
Theano主要是由学者开发的,所以引文对我们很重要。作为一个附加的好处,你增加了Theano的曝光和潜在的用户(和开发人员)基础,这是所有的用户的Theano的利益。提前致谢!
有关详情,请参阅我们的Theano Citation Policy。
文档
大致按照你想要查看的顺序:
- Installing Theano - 如何安装Theano。
- Theano at a Glance - 什么是Theano?
- Tutorial - 了解基本知识。
- Troubleshooting - 常见调试的提示和技巧。
- API Documentation - Theano的功能,按模块。
- Frequently Asked Questions - 一组常见问题。
- Optimizations - Theano的图表优化指南。
- Extending Theano - 了解如何添加类型,运算或图表优化。
- Developer Start Guide - 如何向Theano提供代码。
- Theano Design and Implementation Documentation - 主要对Theano的开发人员感兴趣
- Internal Documentation - 如何维护Theano和更多…
- Release - 我们的发布应该如何工作。
- Acknowledgements - 我们从其他项目中得到的。
- 相关项目 - 链接到在Theano顶部实现新功能的其他项目
您可以下载最新的PDF文档,而不是在线阅读。
查看Theano如何用于机器学习:深度学习教程。
Theano在SciPy 2010上推荐。
社区
“谢谢你纠正这么快。我希望所有与我合作的包将有这样一个积极的维护 —— 它应该得到:-)“
(theano-users,2010年8月2日)
- 如果你想要随时了解theano(low volume)的重要变化,请注册theano-announce。
- 如果你想与所有Theano用户交谈,请注册并发布到theano-users。
- 如果你想和开发人员交谈,请注册并发布到theano-dev。
- 如果你想要接收有关GitHub存储库的所有更改的电子邮件,请注册到theano-github。
- 如果你想要接收我们的每日buildbot电子邮件,请注册到theano-buildbot。
- 在StackOverflow上询问/查看问题/答案
- 我们使用Github门票跟踪问题(但是,仍然可以在Assembla上找到一些旧的门票)。
- 来蒙特利尔参观我们!大多数开发人员是位于University of Montreal的LISA小组的学生。
帮助!
如何寻求帮助
寻求帮助的适当场所取决于你有什么问题。
- 我如何?- theano-users邮件列表或StackOverflow
- 我得到这个错误,为什么?- theano-users邮寄名单或StackOverflow(请包含完整错误讯息,
- 我得到这个错误,我确定这是一个错误 - Github ticket
- 我有一个想法/请求 - 发布建议到theano-dev或者,更好地实现这个想法,并提交一个GitHub拉请求!
- 你为什么?- theano-users邮件列表(不适用于StackOverflow)
- 什么时候会?- theano-dev邮件列表(不适用于StackOverflow)
请花一些时间搜索过去提出和回答的类似问题。如果你发现类似的东西不能完全回答你的问题,那么说“我发现X但它不解决方面Y”是有帮助的,并链接到前面的讨论。
当在StackOverflow上提出问题时,请使用theano标签,这样可以找到您的问题,并按照StackOverflow对提问问题的指导。也考虑使用python和numpy标签,特别是如果你不确定哪个库你的问题涉及到。
在你的问题中包含以下详细信息通常很有帮助:
- 如果你有错误,提供完整的错误消息,即使它很长
- 你使用的哪个版本的Python和Theano
- 你是否使用CPU或GPU设备
- 你的Theano配置设置的详细信息(你可以通过print theano.config在Python中打印此设置)
花时间创造一个最小的问题的具体例子很可能让你得到一个答案更快比张贴一些有太多不相关的细节或太模糊的东西。一个最小的例子可能会花更多的时间来创建,但第一个响应更有可能是你需要的答案,而不是一个沮丧的要求澄清。
如何提供帮助
如果你在theano-users邮件列表或StackOverflow上看到一个问题,你认为自己知道答案,请通过帮助他人来支持社区。
我们都曾经是Theano的新手,一旦社区扩展,就有不断涌现的Theano新用户寻求帮助。也许你问一个问题,当你第一次出发?现在你可以通过帮助别人来支付它。这也是加强你自己的Theano知识的好方法。
通常最容易直接回答问题,但有时可能会更好地将人们提到过去提供的一个好的答案。将人员指向文档中的相关部分,或者指向Theano教程,也可以是有帮助的。
回答问题时,很好(一如既往!)并在StackOverflow上按照他们对回答问题的指导。
如何寻求帮助
寻求帮助的适当场所取决于你有什么问题。
- 我如何?- theano-users邮件列表或StackOverflow
- 我得到这个错误,为什么?- theano-users邮寄名单或StackOverflow(请包含完整错误讯息,
- 我得到这个错误,我确定这是一个错误 - Github ticket
- 我有一个想法/请求 - 发布建议到theano-dev或者,更好地实现这个想法,并提交一个GitHub拉请求!
- 你为什么?- theano-users邮件列表(不适用于StackOverflow)
- 什么时候会?- theano-dev邮件列表(不适用于StackOverflow)
请花一些时间搜索过去提出和回答的类似问题。如果你发现类似的东西不能完全回答你的问题,那么说“我发现X但它不解决方面Y”是有帮助的,并链接到前面的讨论。
当在StackOverflow上提出问题时,请使用theano标签,这样可以找到您的问题,并按照StackOverflow对提问问题的指导。也考虑使用python和numpy标签,特别是如果你不确定哪个库你的问题涉及到。
在你的问题中包含以下详细信息通常很有帮助:
- 如果你有错误,提供完整的错误消息,即使它很长
- 你使用的哪个版本的Python和Theano
- 你是否使用CPU或GPU设备
- 你的Theano配置设置的详细信息(你可以通过print theano.config在Python中打印此设置)
花时间创造一个最小的问题的具体例子很可能让你得到一个答案更快比张贴一些有太多不相关的细节或太模糊的东西。一个最小的例子可能会花更多的时间来创建,但第一个响应更有可能是你需要的答案,而不是一个沮丧的要求澄清。
如何提供帮助
如果你在theano-users邮件列表或StackOverflow上看到一个问题,你认为自己知道答案,请通过帮助他人来支持社区。
我们都曾经是Theano的新手,一旦社区扩展,就有不断涌现的Theano新用户寻求帮助。也许你问一个问题,当你第一次出发?现在你可以通过帮助别人来支付它。这也是加强你自己的Theano知识的好方法。
通常最容易直接回答问题,但有时可能会更好地将人们提到过去提供的一个好的答案。将人员指向文档中的相关部分,或者指向Theano教程,也可以是有帮助的。