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教程,也可以是有幫助的。