一份不太簡短的latex教程pdf 有誰試過在ipad上看代碼嗎?
有誰試過在ipad上看代碼嗎?用iPad閱讀源代碼當然所需,Retina屏幕閱讀理解文字太爽。只不過iPad上沒有開發(fā)工具,只不過都能夠讓你潛下心思考,就跟讀論文似的。具體大致有兩種:1.PDF首先你
有誰試過在ipad上看代碼嗎?
用iPad閱讀源代碼當然所需,Retina屏幕閱讀理解文字太爽。只不過iPad上沒有開發(fā)工具,只不過都能夠讓你潛下心思考,就跟讀論文似的。具體大致有兩種:
1.PDF首先你要安裝doxygen,然后把運行doxywizard。把輸出系統(tǒng)設(shè)置為latex模式,另外選上LATEX_SOURCE_CODE,等生成完了,到作為輸出目錄里take幫一下忙,就得到了帶目錄、調(diào)用關(guān)系圖(矢量),這些源碼(可跳轉(zhuǎn)到)的PDF。
這個方案我就不進入正題了,程序員有能力自己慢慢出來。但是一般會用到opengrok的話,肯定還是PC瀏覽器比較好更方便。
沒有大數(shù)據(jù),我們該如何將機器學習的想法制成原型?
從研究思想的提出到實驗的詳細實現(xiàn)是工程中的基礎(chǔ)環(huán)節(jié)。只不過這一過程常常被一些的確的小瑕疵所影響。在學術(shù)界,研究生不需要受苦的科研——大量的編寫代碼,編寫書籍那就證明和論文創(chuàng)作。新的工程項目偶爾會是需要全新的代碼庫,并且大多很容易把過去應(yīng)用過的代碼然后伸延到這些新項目當中去。
設(shè)計和實現(xiàn)此種情況,哥倫比亞大學計算機科學博士生及OpenAI研究者DustinTran從其個人角度概要了從研究思想到實驗過程的步驟。其中最最重要的的步驟是給出新觀點,這來講要大量時間;而且最起碼對作者來說,實驗環(huán)節(jié)不但是怎么學習,更是能解決無法預知的問題的關(guān)鍵所在。另,作者還明確只能證明:這個工作流程僅范圍問題于實驗方面的研究,理論研究則要不違背另外的流程,事實上這兩者也有一些約定點。
找對問題
在完全開始一個項目之前,該如何讓你的想法「落地之前」曾經(jīng)的更臨時的議題是太重要的。有時它很簡單的——看上去像導師會給你分配任務(wù);或者一次性處理一個某種特定的數(shù)據(jù)集或?qū)嶋H問題;又或是和你的合作者參與談話來確定工作內(nèi)容。
更為常見的是,研究其實是一系列想法(idea)不斷迭代所再產(chǎn)生的結(jié)果,這些想法大多數(shù)是按照平時要注意談話、近期工作、閱讀什么專業(yè)內(nèi)和專業(yè)外領(lǐng)域文獻和反復研讀超經(jīng)典論文所才能產(chǎn)生的。
我發(fā)現(xiàn)到了一種方法相當有用嗎——即達到一個同一類的主文檔(masterdocument),這正常情況需要很多工作。
簡單,它有一個項目列表來排序所有的研究想法、問題和題目。有時侯它們是可以是比較高層面的問題,那像「應(yīng)用于強化學習的貝葉斯/生成方法」、「幫忙解決機器學習領(lǐng)域的公平性問題」;也也可以是一些很詳細的議題,諸如「全面處理EP中記憶古怪度的推理網(wǎng)絡(luò)」、「規(guī)模偏置的與中心對稱的Dirichlet先驗的分析」。我偶爾會努力把項目列表寫得更加簡捷:子內(nèi)容實際一些鏈接參與展開攻擊。
然后,根據(jù)接下來的事情要做的工作來對idea清單并且分類。這通常會給我的妖軍研究指明方向。我也可以依據(jù)什么其方向是否是和我的研究觀點完全不同、其必要性和有效性即將直接修改這些項目的優(yōu)先級。更重要的是的是,這個列表清單不只是是關(guān)於情報營觀點的,更是關(guān)與接下來的事情我更很樂意想研究什么內(nèi)容的。從長遠的打算角度來考慮,這這對能找到最重要問題和給出很簡單新穎的解決方法是有重要貢獻的。我經(jīng)常ftp連接這個清單,新的安排好事務(wù),先添加新想法,刪出不必要的議題。終于當我也可以詳細的說明一個idea的時候,它就也可以曾經(jīng)的一篇比較正式的論文了。一般來說,我突然發(fā)現(xiàn)在同一個位置(同一個格式)迭代idea的過程可以不使開始論文寫作中的銜接和實驗過程都變的越來越流暢。
管理呀一個項目
我們?yōu)榻诘腶rXiv預印本壘建的repository
最近喜歡在GitHub存儲庫中維護研究項目。反正一個「單元」的研究是多少,我都會將其定義成另外一種相對自我暗示乾坤二卦的東西;諸如,它很可能會直接連接到一篇某一特定的論文、一個已被應(yīng)用到的數(shù)據(jù)分析或目前一個某一特定主題。
GitHub存儲庫不僅可作用于跟蹤代碼,并且還可主要是用于監(jiān)視就像的研究進程、論文寫作進度或一段時間其它合作項目。但項目的組織一直以來都是一個痛點。我比較好不喜歡以下的結(jié)構(gòu),該結(jié)構(gòu)充斥Dave Blei,可戊戌變法檔案史料:~blei/seminar/2016_discrete_data/notes/week_01.pdf
為自己和合作者盡量了一個是需要去做的事的列表,這讓面臨的問題和前進的方向變得異常必須明確。
doc/包涵所有的記錄事項,每個子目錄都乾坤二卦一個會議紀要又或者文獻重新提交,main.tex是要注意文檔,每一章節(jié)大都有所不同文件,如introduction.tex,讓每個章節(jié)在一起可以不讓多人同樣如何處理完全不同的章節(jié),盡量避免合并。有些人比較喜歡在主要實驗?zāi)芡瓿珊笠淮螌懗鐾暾撐?,但我更就是喜歡把論文才是目前想法的記錄,并且讓它和想法本身一般,緊接著實驗的進展不斷地后撤。
etc/是其他與前面的目錄沒什么關(guān)系的內(nèi)容。我大多數(shù)用它來存儲項目中商討帶走的白板內(nèi)容的圖片。有時,我在日常工作中額外了一些靈感,我會將它們都資料記錄在Markdown文檔中,它都是三個用于隨意處置對于工作的各種評論的目錄,如合作者對于論文內(nèi)容的反饋。
src/是匯編語言所有代碼的位置??蓡拥哪_本都是真接寫在src/上的,類和實惠程序?qū)懺诹薱odebase/上。下面我將具體說明幫一下忙(另外另一個是腳本輸出目錄)。
編寫代碼
我現(xiàn)在寫所有代碼的工具都是Edward,我發(fā)現(xiàn)它是急速實驗古代和現(xiàn)代概率模型和算法的最佳的方法框架。
Edward鏈接:
在概念層面上,Edward的吸引力取決于人語言不能違背數(shù)學:模型的生成過程被被轉(zhuǎn)化為4行Edward代碼;緊接著希望寫出了什么的算法被被轉(zhuǎn)化為下一行……這種極純的轉(zhuǎn)換過程免掉了在未來試圖將代碼拓展為自然研究問題時的麻煩:的或,在之前在用了相同的方法,的或調(diào)整了梯度估值,或一段時間了有所不同的神經(jīng)網(wǎng)絡(luò)架構(gòu),或者在大數(shù)據(jù)幾乎全部應(yīng)用形式了其他方法等等。
在實踐層面上,我我總是從Edward的可以做到模型示例(在edward/examples或edward/notebooks)中獲益,我將自定義設(shè)置算法源代碼(在edward/inferences)另外一個新文件粘貼到我的項目中的codebase/目錄中,后再進行調(diào)整。這樣零起步就變的更加簡單的了,我們也可以不盡量的避免很多低級細節(jié)上的缺失。
在編寫代碼時,我一直遵循PEP8(我尤其不喜歡prep8軟件包:),隨后接觸從腳本互相訪問的類和函數(shù)定義中分離的過程每個腳本;前者被放在codebase/中以備導入。從最先又開始維護代碼質(zhì)量時總好是的選擇,這個過程非常重要,畢竟項目會隨著時間不斷地再次膨脹,而其他人也會漸漸一并加入。
Jupyter記事本。許多人在可以使用Jupyter記事本(鏈接:)用作可可視化代碼開發(fā)的方法,它也貼入可視化和LaTeX的很簡單方法。對于我來說,我完全沒有將它整合到自己的工作流中。我喜歡將自己所有的代碼寫入文件Python腳本中,后再運行腳本。但Jupyter等工具的交互性值得稱贊。
實驗管理
在好的工作站或云服務(wù)商做投資是必要的事。GPU這樣的的特性基本都普片可用,而我們應(yīng)該要有權(quán)限并行不運行許多工作。
我在本地計算機成功腳本c語言程序之后,我主要注意的工作流是:
1.運行rsync離線我本地計算機的GithubRepository(包涵未授權(quán)文檔)到服務(wù)器的directory。
到服務(wù)器。
3.正在tmux并運行腳本。眾事駁雜,tmux能讓你超脫此進程,進而不需要靜靜的等待它的結(jié)束才與服務(wù)器再度用戶交互。
在腳本看似可行之后,我正在用多個超參數(shù)配置苦練實驗。這里有三個有幫助的工具tf.flags,它可以使用命令行嚴謹?shù)恼撟C提高一個Python腳本,得象下面那樣的話為我的腳本增強一些東西:
然后,你這個可以運行下面這樣的終端命令:
這也讓遞交超參數(shù)更改后的服務(wù)器任務(wù)變的很難。
到最后,頓了頓管理實驗時輸出的任務(wù),回想再看看前文中src/目錄的結(jié)構(gòu):
我們詳細解釋了每個腳本和codebase/。其他三個目錄被主要是用于組織實驗輸出:
checkpoints/記錄信息在訓練中保存的模型參數(shù)。當算法每固定次數(shù)迭代時,不使用來保存參數(shù)。這可促進血液循環(huán)魔獸維護長時間的實驗——你很有可能會取消后一些任務(wù),當時還得可以恢復參數(shù)。每個實驗的輸出都會讀取在checkpoints/中的一個子目錄下,如20170524_192314_batch_size_25_lr_1e-4/。第一個數(shù)字是日期(YYYYMMDD),第二個是時間(HMS),其余的是超參數(shù)。
log/讀取作用于可視化學習的記錄。你每次實驗應(yīng)該有一類自己的和checkpoints/中不對應(yīng)的子目錄??梢允褂肊dward的一個好處只在于,對此日志,你這個可以簡單點地傳達一個參數(shù)(logdirlog/subdir)。被探查的默認TensorFlow包括題目是可以用TensorBoard可視化。
out/記錄訓練結(jié)束了后的探索性輸出;.例如能生成的圖片或matplotlib圖,每個實驗應(yīng)該有自己的和checkpoints/中填寫的子目錄。
軟件容器。virtualenv是管理Python按裝環(huán)境的必備軟件,也可以增加直接安裝Python的困難程度。要是你不需要更強橫的工具,Dockercontainers可以滿足你的需要。
Virtualenv鏈接:
Dockercontainers鏈接:
TensorBoard是可視化和深入模型訓練的一種杰出工具。畢竟TensorBoard具備良好的交互性,你就會發(fā)現(xiàn)它的很不容易損壞,畢竟這意味著不要配置大量matplotlib函數(shù)來知道一點訓練。我們只不需要在代碼的tensor上參加。
Edward系統(tǒng)默認記錄信息了大量摘要,以便于可視化訓練迭代中損失的函數(shù)值、漸變和參數(shù)的變化。TensorBoard還以及經(jīng)時間的比較,也為充分修飾的TensorFlow代碼庫提供了很好的計算圖。是對無法只用TensorBoard并且確診的傷腦筋問題,我們可以不在太out/目錄中輸出內(nèi)容并系統(tǒng)檢查這些結(jié)果。
調(diào)試出現(xiàn)了錯誤信息。我的調(diào)試工作流的很糟糕。對于,我在代碼中導進可以打印語句并消去過程來尋找錯誤。這種方法太遠古時期。確實還就沒接觸過,但我好像聽說TensorFlow的debugger功能相當強大無比。
進階研究再理解
不??鐚I(yè)考研你的模型與算法,大多數(shù),學習過程只會你對自己的研究和模型有更好的了解。這是可以讓你回到制圖板上,需要重新審視自己所處地點,跪求一系列提升到的方法。假如方法對準完成,我們這個可以從簡單的配置慢慢的擴大規(guī)模,借著解決的辦法高維度的問題。
從更高層級上看,工作流在本質(zhì)上就是讓科學方法應(yīng)用形式到虛無飄渺世界中。在實驗過程中的每當?shù)?,拋棄主要注意想法是不必要的。但再者,這一切的理論基礎(chǔ)需要穩(wěn)固。
在這個過程中,實驗并并非孤立排擠的。合作、與其他領(lǐng)域的專家溝通和交流、閱讀什么論文、基于短期和常期角度決定問題、參加學術(shù)會議都可促進血液循環(huán)拓寬你看待事情問題的思路并能幫助能解決問題。