欢迎

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

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

自2007年以来,Theano一直致力于大规模计算密集型科学研究。但它在课堂上也足够用(蒙特利尔大学深度学习/机器学习课程)。

新闻

_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安装。

对于前沿功能感兴趣的用户应该获得最新的开发版本,可以通过:

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

然后可以在你的$PYTHONPATH上放置checkout目录,或使用python setup.py develop.pth安装到你的site-packages目录中,以便当你通过Git提取更新时,它们将自动反映“已安装”的版本。有关安装和配置的详细信息,请参阅installing Theano

状态

 Latest PyPI version Number of PyPI downloads 

引用Theano

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

Theano主要是由学者开发的,所以引文对我们很重要。作为一个额外的好处,你增加了Theano的曝光率和潜在的用户(和开发人员)基础,这将为Theano的所有用户带来好处。提前致谢!

有关详情,请参阅我们的Theano Citation Policy

文档

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

你可以下载最新的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上找到一些旧的门票)。
  • 来蒙特利尔参观我们!大多数开发人员是蒙特利尔大学LISA组的学生。

帮助!

如何寻求帮助

寻求帮助的适当场所取决于你有什么问题。

  • 我如何? - theano-users邮件列表或StackOverflow
  • 我得到这个错误,为什么? - theano-users邮寄名单或StackOverflow(请包含完整错误讯息,
  • 我得到这个错误,我确定这是一个错误 - Github ticket
  • 我有一个想法/请求 - 发布建议到theano-dev或者,更好地实现这个想法,并提交一个GitHub拉请求!
  • 你为什么? - theano-users邮件列表(不适用于StackOverflow)
  • 什么时候会? - theano-dev邮件列表(不适用于StackOverflow)

请花一些时间搜索过去提出和回答的类似问题。如果你发现类似的东西不能完全回答你的问题,那么说“我发现X但它不解决方面Y”是有帮助的,并链接到前面的讨论。

当在StackOverflow上提出问题时,请使用theano标签,这样可以找到您的问题,并按照StackOverflow对提问问题的指导也考虑使用pythonnumpy标签,特别是如果你不确定哪个库你的问题涉及到。

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

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

花时间创造一个最小的问题的具体例子很可能让你得到一个答案更快比张贴一些有太多不相关的细节或太模糊的东西。一个最小的例子可能会花更多的时间来创建,但第一个响应更有可能是你需要的答案,而不是一个沮丧的要求澄清。

如何提供帮助

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

我们都曾经是Theano的新手,一旦社区扩展,就有不断涌现的Theano新用户寻求帮助。也许你问一个问题,当你第一次出发?现在你可以通过帮助别人来支付它。这也是加强你自己的Theano知识的好方法。

通常最容易直接回答问题,但有时可能会更好地将人们提到过去提供的一个好的答案。将人员指向文档中的相关部分,或者指向Theano教程,也可以是有帮助的。

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